struts2执行流程

1.struts2主要基于servlet之上通过过滤器拦截请求。

2.根据请求地址在ActionMapper匹配可调用的Action,如果不是Action请求则放行。

3. 把请求的处理交给通过配置文件创建的ActionProxy。

 4.ActionProxy创建一个ActionInvocation的实例。

 5.ActionInvocation在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用

 6.Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper。

 拦截器和过滤器的区别

 1. 拦截器实现原理是基于反射机制,过滤器则是接口回调。

 2.拦截器遍布Struts2中各个地方,过滤器只在web应用启动时加载。

 3.拦截器可以访问Action上下文以及值栈,过滤器不行。

 4.拦截器只对Action请求有效果,过滤器扫描请求都行。

 5.拦截器独立的,过滤器是基于Servlet。

原文地址:https://www.cnblogs.com/JaggerMan/p/5374559.html