Struts2工作原理
struts2框架是SSH框架集中的框架之一,是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,struts2作为控制器层(Controller)来建立模型与视图的数据交互。
在使用struts2框架的过程中,要配置两个文件web.xml和struts.xml,服务器一启动就加载web.xml的配置,web.xml启动时,在StrutsPrepareAndExecuteFilter的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作;struts2读取到struts.xml后,以javabean形式存放在内存中,以后struts2对用户的每次请求处理都将使用内存中的数据,而不是每次都读取struts.xml文件。
访问流程
- 1.客户端提交请求
- 2.请求被提交到一系列过滤器(先ActionContentCleanUp,然后其他过滤器,最后FilterDispatcher)
- 3.FilterDispatcher咨询ActionMapper是否需要调用某个Action来处理这个请求,如果ActionMapper决定调用某个Action,FilterDispatcher则把请求的处理交给ActionProxy
- 4.ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类
- 5.ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action,但在调用之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)
- 6.一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result
参考:
1.Struts2工作原理解析
2.Struts2架构解析