Struts2流程:
1.发起请求
2.服务器接收请求并交给struts2的核心控制器
3.根据请求的url查看struts.xml中namespace+actionname
4.执行action所对应类的对应方法
5.根据方法的返回结果到action的结果集中进行匹配
6.响应结果
Struts2配置:
当初始的请求到达Servlet容器的时候,该请求:
首先要经过Struts2框架的核心控制器 StrutsPrepareAndExecuteFilter。
然后核心控制器依次查找ActionMapper来决定这个请求是否调用action。如果ActionMapper决定调用action,StrutsPrepareAndExecuteFilter就把请求的处理控制权委托给ActionProxy。
ActionProxy通过Configuration Manager查询Struts2框架的核心配置文件(struts.xml),找到所要调用的Action类。
接下来,ActionProxy创建一个ActionInvocation实例,该实例负责命令模式的实现,包括在激活action本身之前调用配置的任意拦截器。
在action执行完成之后,ActionInvocation实例负责根据action的返回结果码在struts.xml配置文件中查找要输出的结果(Result)。该结果通常是JSP或者FreeMarker模板,也可能是action。在输出的时候,模板可以使用框架提供的Struts2标签。
然后,为action配置的拦截器将被再次执行(顺序和action被调用之前执行顺序相反)。
最后,服务器的响应将通过web.xml文件中配置的Struts2框架核心控制器返回。