上图提供了struts2的执行流程.如下: 1:从客户端发出请求(HTTPServletRequest). 2:请求经过各种过滤器(filter),注:一般情况下,如SiteMesh等其他过滤器要放在核心控制器FilterDispatcher之前,也就是web.xml中配置的filter-mapping在 StrutsPrepareAndExecuteFilter之前.  在执行完了所有的过滤器的doFilter方法之后,核心控制器FilterDispatcher会清空ActionContext…
一.struts2执行流程 二.架构图 只需要编写黄色部分的代码:…
入门框架学习避免不了的问题: 1. 什么是框架? 简单的说,框架就是模板,模子,模型.就是一个可重用的半成品. 2. 如何学习框架? 学习框架其实就是学习规则,使用框架就是遵循框架的规则,框架是可变的 和 不可变的部分组成,学习框架就需要把 什么可变什么不可变搞清楚. 3. 为什么使用 struts2 框架:聊这个问题先来聊一聊 Web的开发模式, model1 和 model2 模式. 4. model1模式:jsp+javaBean开发. 优点:执行效率高,代码比较少,开发效率比较高.适合小…
之前写过一篇struts2的执行流程的文章了,这里对struts2的流程就不做过多的分析,这篇文章主要分析spring-mvc的执行流程以 及struts2与spring-mvc的差别. 1.struts2执行流程图: 上篇文章链接:https://blog.csdn.net/qq_41907991/article/details/81161149 这里大致说一下流程: 1.用户发送请求,经过web.xml文件匹配后,发现是由sturts2框架的strutsPrepareAndExcuteFit…
struts2执行原理(执行流程) 一个请求在Struts2框架中的处理大概分为以下几个步骤: 1 客户端发送请求:(HttpServletRequest)2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要…
当Web容器收到 请求(HttpServletRequest) 1.它将请求传递给一个标准的的过滤链包括 (ActionContextCleanUp)过滤器 2.然后经过Other filters(SiteMesh ,etc), 3.接下来需要调用FilterDispatcher核心控制器, 4.然后它调用ActionMapper确定请求那个Action, ActionMapper返回一个收集Action详细信息的ActionMaping对象. 5.接下来FilterDispatcher将控制权…
在Struts2框架中的处理大概分为以下的步骤  1 用户发送请求: 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action : 4  如果需要处理,ActionMapper会通知Fil…
在Strut2中访问Servlet API有三种方式: 1.通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API. 步骤: 1).创建一个ActionContext ActionContext context=ActionContext.getContext(); 2).通过context对象获取Servlet API Map<String,Object> getApplication() 获取的是application…
前言 我们现在学习的是Struts2,其实Struts1和Struts2在技术上是没有很大的关联的.Struts2其实基于Web Work框架的,只不过它的推广没有Struts1好,因此就拿着Struts这个名气推出了Struts2框架. 因此,学习Struts2的时候,不了解Struts1是没有任何关系的. 在开山篇的时候,已经说明了为什么要引入Struts框架,其实就是为了提高开发效率- Struts2框架预先实现了一些功能: 请求数据自动封装 文件上传的功能 对国际化功能的简化 数据效验功…
Servlet 有以下四个阶段: 1.加载和实例化 Servlet容器负责加载和实例化Servlet. 当Servlet容器启动时,或者在容器检测到需要这个Servlet来响应第一个请求时,创建Servlet实例. 当Servlet容器启动后,它必须要知道所需的Servlet类在什么位置,Servlet容器可以从本地文件系统.远程文件系统或者其他的网络服务中通过类加载器加载Servlet类,成功加载后,容器创建Servlet的实例. 因为容器是通过Java的反射API来创建 Servlet实例,…
 Struts2是一套很优秀的Web应用框架,实现优雅.功能强大.使用简洁.能够说是Struts2是一款很成熟的MVC架构. 在我们学习Struts2时,最好是先学习它的执行流程.核心概念.从中得到启示.提升自己,而不不过学习怎么怎么使用它. 在网上看到这样一句话: 你千万不要成为一个仅仅会熟练使用框架的程序猿.那样.你会疲于奔命,你或许永远仅仅会使用 Hadoop ,而写不出一个 Hadoop ,你仅仅是一个 Hadoop程序猿,而不是一个分布式project师. 你或许永远仅仅会使用 Str…
单元测试在开发中是非常重要的一个环节程序员在写完代码时,相应的单元测试也应写完整,否则你的代码就是不能让人信服的Struts2将Action与Servlet的API进行解耦之后,就使得单元测试变得非常容易了比如HttpServletRequest对象,它是由Tomcat容器给我们提供的,我们自己产生不出来若Action中充斥者ServletAPI,哪怕仅一个,那么一般意义上的JUnit单元测试便无法进行若Action中耦合了ServletAPI,可以采用apache的Cactus对它进行测试,这…
Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFi…
1.struts2的执行流程 请求--->Tomcat(判读项目是否存在)--->项目的web.xml--->struts2的核心过滤器 --->判读请求的资源(hello.action-会将后缀去掉)与struts.xml中的所有action的name进行匹配看是否查到- -->根据action中配置的class去生成(反射)对应的Action处理对象--->调用对应的处理方法 ---->将处理方法中的响应结果和action配置中的result的name进行匹配…
执行流程: 访问前段页面,通过url访问action 访问xml中Struts2核心过滤器,并执行一组拦截器(这组拦截器在struts-default.xml中,实现了部分功能) 通过action配置找到Action类,执行方法Action类中的execute方法 struts.xml中配置Action类execute方法的return值,跳转到指定页面 当用户通过某一个action的时候,先经过核心过滤器,在核心过滤器中执行一组拦截器(这组拦截器实现部分功能) Struts2的配置文件的加载顺…
Servlet执行流程(GET方式为例) 首先用户客户端浏览器发出Get方式(点击超链接方式)向浏览器发出请求. 服务器接收到客户端点击超链接,接收到GET请求之后,服务器到WEB.xml中<servlet-mapping>标签中来寻找与之对应的URl地址,从而找到相对应的servlet名字,再根据该名字到标签中找与之相对应的处理类(继承至HttpServlet类),执行该类中的doget()[超链接方式,服务器可以自行分析]方法. Servlet的生命周期 调用构造方法创造servlet实例…
学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object get(Object key);可以获取request属性 Map getSession():可以得到session属性 Map getAppliction():可以得到ServletContext实例 2.action类实现 ServletContextAware,ServletRequestAwa…
servlet执行流程 客户端发出http请求,web服务器将请求转发到servlet容器,servlet容器解析url并根据web.xml找到相对应的servlet,并将request.response对象传递给找到的servlet,servlet根据request就可以知道是谁发出的请求,请求信息及其他信息,当servlet处理完业务逻辑后会将信息放入到response并响应到客户端.…
Servlet执行流程 Get方式请求HelloServlet ---> <a href="servlet/HelloServlet"> ↓ 服务器在配置文档中查找相对应的Servlet <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-parttern>/servlet/HelloServlet</url-pattern> &l…
一 .生命周期 servlet 声明周期可以分四个阶段: 类装载过程 init() 初始化过程 service() 服务过程,选择doGet \ doPost destroy() 销毁过程 servlet接口如下 public interface Servlet { void init(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); void service(ServletRequest…
Web应用中通常需要访问的Servlet API就是HttpServletRequest.HttpSession和ServletContext,这三个接口分别代表JSP内置对象中的request.session和application. 1.使用Struts2提供的ActionContext类来访问Servlet API.下面是ActionContext类中包含的几个常用方法. Object get(Object key):该方法类似于调用HttpServletRequest的getAttrib…
##Servlet生命周期 五个部分,从加载到卸载,如同人类的出生到死亡 加载:Servlet容器自动处理 初始化:init方法 该方法会在Servlet被加载并实例化后执行 服务:service抽象方法:具体实现是doGet(),doPost()方法 销毁:destroy(),Servlet被系统回收时执行 卸载:Servlet容器自动处理 init(): 默认第一次访问Servlet时会被执行(只执行这一次,可以修改为Tomcat启动时自动执行: 2.5:web.xml中<servlet>…
Tomcat与Servlet简介 Tomcat Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开发而成.由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范.因为Tomcat 技术先进.性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了…
struts2的框架结构图 工作流程 1.客户端请求一个HttpServletRequest的请求,如在浏览器中输入http://localhost: 8080/bookcode/Reg.action就是提交一个(HttpServletRequest)请求.2.这个请求经过一系列的过滤器(Filter)如(ActionContextCleanUp.其他过滤器(SiteMesh等). FilterDispatcher).注意:这里是有顺序的,先ActionContext CleanUp,再其他过滤…
struts2框架 什么是框架,框架有什么用? 框架 是 实现部分功能的代码 (半成品),使用框架简化企业级软件开发 ,提高开发效率. 学习框架 ,清楚的知道框架能做什么? 还有哪些工作需要自己编码实现 ? 什么是struts2框架,它有什么用? Struts 2是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架. 其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大.Struts 2以WebWork为核心 struts2=struts1+…
1.执行流程 服务器启动: 1. 加载项目web.xml 2. 创建Struts核心过滤器对象, 执行filter  →  init()   struts-default.xml,    核心功能的初始化 struts-plugin.xml,      struts相关插件 struts.xml                 用户编写的配置文件 访问: 3. 用户访问Action, 服务器根据访问路径名称,找对应的aciton配置, 创建action对象 4. 执行默认拦截器栈中定义的18个拦…
1.Struts2架构图  这是Struts2官方站点提供的Struts 2 的整体结构.  执行流程图 2.Struts2部分类介绍  这部分从Struts2参考文档中翻译就可以了. ActionMapper         ActionMapper其实是HttpServletRequest和Action调用请求的一个映射,它屏蔽了Action对于Request等 java Servlet类的依赖.Struts2中它的默认实现类是DefaultActionMapper,ActionMapper…
说到Struts2执行过程就少不了一张图: 1 客户端初始化一个指向Servlet容器的请求: 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin). 3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action.(注:在Struts2的被Stru…
Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器拦截请求,创建代理Action对象,执行方法,返回结果,界面跳转. 拦截器解析请求路径,获取Action的名称,到配置文件中查找action的完整类名,利用反射创建对象. 每请求一次,就创建一个对象,所以action是多例的,也是线程安全的. 2,关系 请求的路径和配置文件的对应关系: 配置文件中包…