一个请求在Struts2框架中的处理大概分为以下几个步骤:
1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求.
2 这个请求经过一系列的过滤器(Filter).(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action.
4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy.
5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类.
6 ActionProxy创建一个ActionInvocation的实例。
7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper.
在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的.
分享到:
相关推荐
Struts2执行流程 1. web.xml 部署描述符 2. FilterDispatcher 实现StrutsStatics, Filter接口 (1)Filter:一个filter是一个对象用于执行过滤任务为每个请求资源(一个servlet或静态内容),或响应一个资源,或两者.过滤...
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,...
一个请求在Struts 2框架中的处理大概分为以下几个步骤。 客户端提交一个(HttpServletRequest)请求,如上文在浏览器中输入 http://localhost: 8080/bookcode/ch2/Reg.action就是提交一个(HttpServletRequest)...
Struts请求处理流程图,详细的说明了Struts从数据提交到结束的过程
Struts2请求处理流程及源码分析[整理].pdf
b)根据Web.xml配置,请求首先经过ActionContextCleanUp过滤器,其为可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助(SiteMeshPlugin),主要清理当前线程的ActionContext和Dispatcher;c)请求经过插件...
详细讲解Struts框架响应客户请求的工作流程
2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 3 接着FilterDispatcher被调用,...
1. 客户端发送一个请求,...2. ActionSevlet首先调用struts配置文件(struts-config.xml),如果有表单提交,需要自动填充ActionForm Bean(找struts配置文件的),根据请求分派给相应的Action(找struts配置文件的)。
struts2工作原理、请求响应流程。。。。。。。。。。。。。。。
Struts2 标签使用方法 Struts2 标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,Struts2 的主题、模板都提供了很好的扩展性。Struts2 允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂...
struts2执行顺序,清楚描述从处理请求到返回response的整个流程
指定Struts 2处理的请求后缀 Struts 2的处理流程与Action的管理方式 为应用指定多个配置文件 动态方法调用和使用通配符定义action 请求参数接收 自定义类型转换器 全局类型转换器 访问或添加几个属性 文件...
struts2的所有知识点 流程 原理 一个请求在Struts2框架中的处理大概分为以下几个步骤: 1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求; 2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个...
1、页面加载后,想后台发出生产验证码图片的请求,并在前台显示验证码图片,同时将验证码上的数字 通过ActionContext.getContext().getSession().put("random", randomNum.getRandomCode())将数字存放到session当中 2...
Struts开发指南之工作流程.doc下图是Struts的工作流程,前边我们提到,所有的请求都提交给ActionServlet来处理。
Struts开发指南之工作流程下图是Struts的工作流程,前边我们提到,所有的请求都提交给ActionServlet来处理。 ActionServlet是一个FrontController,它是一个标准的Servlet,它将request转发给RequestProcessor来...