说到Struts2执行过程就少不了一张图:1 客户端初始化一个指向Servlet容器的请求;2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:Si ...
说到Struts2执行过程就少不了一张图:
1 客户端初始化一个指向Servlet容器的请求;
2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)。
3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action。(注:在Struts2的被StrutsPrepareAndExecuteFilter替换)
4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy。
5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类。
6 ActionProxy创建一个ActionInvocation的实例。
7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关**(Intercepter)的调用。
8 一旦Action执行完毕,ActionInvocation负责根据struts.
Then:
在之前说过的使用Struts2框架实现用户登录的功能,使用Struts2标签和OGNL表达式简化了视图的开发,并且利用Struts2提供的特性对输入的数据进行验证,以及访问Servlet API时实现用户会话跟踪,其简单的程序运行流程图
login.jsp>>StrutsPrepareAndExecuteFilter>>Action>>Result>>success.jsp
下面通过分析登录程序,带领大家深入了解Struts2.
分析登录程序
为了实现用户登录的功能,需要经过以下几个步骤:
(1)获取Struts2资源
(2)在应用程序中导入Struts2的类库
(3)在web.用于对框架进行初始化,以及处理所有的请求。
(4)编写Action类并进行配置。
(5)配置返回结果与物理视图资源的关系。
(6)编写返回视图
众所周知,Struts2框架是基于MVC模式的。基于MVC模式框架的核心就是控制器对所有请求进行统一处理。Struts2的控制器StrutsPrepareAndExecuteFilter由Servlet API中的Filter充当,当Web容器接收到登录的请求后,将请求交给在web.
我们首先来看看StrutsPrepareAndExecuteFilter的配置。
1.web.
<??><web-app ="http://www.w3.org/2001/ ="http://java.sun.com/ ="http://java.sun.com/ xsi:schemaLocation="http://java.sun.com/ version="2.5"> <display-name></display-name> <!-- --> <filter> <filter-name>struts2</filter-name> <!-- 使用Struts2的核心类库 --> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <!-- 拦截所有的action --> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list></web-app>
原标题:Struts2执行过程解析
关键词:Struts
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。