Struts2工作原理
前几天面试就有这个题目,所以今天整理一下.
Struts2框架内部是基于一种称为“过滤器”的机制运作,
可分为6个步骤如下:
1. 客户端提交一个请求
2. 请求被提交到一系列的过滤器。注意这里是有顺序的:先是ActionContextCleanUp,再是其它过滤器,最后是FilterDispatcher
3. FilterDispatcher接收到请求后,询问ActionMapper是否调用某个·Action来处理这个请求,如果ActionMapper决定调用哪个Action,FilterDispatcher就把请求处理交给ActionProxy
4. ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类
5. ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。在调用前,ActionInvocation会根据配置加载Action相关的所有拦截器
6. 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。然后结果反映到客户端的界面。