你的位置:首页 > 软件开发 > Java > Struts2执行过程解析

Struts2执行过程解析

发布时间:2016-09-06 18:00:04
说到Struts2执行过程就少不了一张图:1 客户端初始化一个指向Servlet容器的请求;2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:Si ...

Struts2执行过程解析

说到Struts2执行过程就少不了一张图:

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 (#换成@)。

可能感兴趣文章

我的浏览记录