Struts2工作原理
2016-03-01 19:30
260 查看
转载自:/article/2750239.html
![](http://img.blog.csdn.net/20130904161742156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3V3ZW54aWFuZzkxMzIy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(1)客户端(Client)向Action发用一个请求(Request)
(2)Container通过web.xml映射请求,并获得控制器(Controller)的名字
(3)容器(Container)调用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在Struts2.1以前调用FilterDispatcher,Struts2.1以后调用StrutsPrepareAndExecuteFilter
(4)控制器(Controller)通过ActionMapper获得Action的信息
(5)控制器(Controller)调用ActionProxy
(6)ActionProxy读取struts.xml文件获取action和interceptor stack的信息。
(7)ActionProxy把request请求传递给ActionInvocation
(8)ActionInvocation依次调用action和interceptor
(9)根据action的配置信息,产生result
(10)Result信息返回给ActionInvocation
(11)产生一个HttpServletResponse响应
(12)产生的响应行为发送给客服端。
Struts2工作原理
Struts2请求响应流程:
在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller、ActionProxy、ActionMapping、Configuration Manager、ActionInvocation、Inerceptor、Action、Result等。下面我们来具体看看这些组件有什么联系,它们之间是怎样在一起工作的。(1)客户端(Client)向Action发用一个请求(Request)
(2)Container通过web.xml映射请求,并获得控制器(Controller)的名字
(3)容器(Container)调用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在Struts2.1以前调用FilterDispatcher,Struts2.1以后调用StrutsPrepareAndExecuteFilter
(4)控制器(Controller)通过ActionMapper获得Action的信息
(5)控制器(Controller)调用ActionProxy
(6)ActionProxy读取struts.xml文件获取action和interceptor stack的信息。
(7)ActionProxy把request请求传递给ActionInvocation
(8)ActionInvocation依次调用action和interceptor
(9)根据action的配置信息,产生result
(10)Result信息返回给ActionInvocation
(11)产生一个HttpServletResponse响应
(12)产生的响应行为发送给客服端。
相关文章推荐
- Javaweb入门20160301 ---xml入门
- JAVA压缩文件、解压文件、删除文件
- Spring工作原理
- Spring Web MVC架构
- 利用spring的aop实现事务管理步骤
- java并发编程lock
- eclipse+sdk+adk安卓开发环境部署(全程详解,适合小白)
- 庖丁解牛——Java反射解析一个类
- java/js的md5加密
- springMVC 返回json数据的方法
- Leetcode:169. Majority Element(JAVA)
- 分治法求最大子序列和问题
- 白话Spring(基础篇)---自动装配
- Java中的日期操作类
- java ArrayList源码分析参考文章
- CXF与Spring集成:自定义验证权限以及日志记录
- JAVA_反射
- Spring框架中SecurityContextHolder类的使用详解(未完待续)
- Java入门 一些概念及类
- [java] JNLP文件安装