最近在做项目时自定义了一些拦截器,发现顺序改变后会出现不同效果,struts2中默认拦截器堆栈如下,有时间分析下:
<interceptor-stack name="defaultStack">
<interceptor-ref name="exception"/>
<interceptor-ref name="alias"/>
<interceptor-ref name="servletConfig"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="i18n"/>
<interceptor-ref name="chain"/>
<interceptor-ref name="debugging"/>
<interceptor-ref name="profiling"/>
<interceptor-ref name="scopedModelDriven"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="checkbox"/>
<interceptor-ref name="staticParams"/>
<interceptor-ref name="params">
<param name="excludeParams">dojo\..*</param>
</interceptor-ref>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
</interceptor-stack>
分享到:
相关推荐
Struts2 Interceptor详解 Struts2作为一款流行的Java Web框架,其强大的功能之一就是拦截器(Interceptor)。拦截器在MVC模式中扮演着重要角色,它可以对请求进行预处理和后处理,提供了灵活的扩展机制,使得业务...
然而,在Struts1的原生设计中,并没有内置拦截器(Interceptor)这一概念,这与后来的Struts2框架有所不同。Struts2引入了拦截器,极大地增强了框架的灵活性和可扩展性。但是,由于Struts1的流行和项目需求,"saif...
总的来说,Struts2的源码分析涉及Action的创建与执行、Interceptor的调用链、FilterDispatcher的请求调度以及Result的展示机制。通过对这些关键组件的深入理解和代码研究,开发者可以更好地掌握Struts2框架,提高...
Struts2作为一款流行的Java Web框架,其核心机制之一就是拦截器(Interceptor)。拦截器是AOP(面向切面编程)思想在Struts2中的具体实现,它允许开发者在动作执行前后插入自定义的处理逻辑,提升了代码的可复用性和...
3. **拦截器执行顺序**:Struts2按照拦截器在配置文件中定义的顺序执行,从上到下,每个Interceptor的`intercept()`方法被调用。如果需要在Action执行后执行某些操作,可以将这些Interceptor放置在Action类下方。 4...
2. InterceptorStack:InterceptorStack维护了Interceptor链的执行顺序,每个Interceptor都有before和after两个方法,对应于调用Action前后的执行。 3. StrutsPrepareAndExecuteFilter:这是Struts2的过滤器,用于...
在Struts2中,拦截器是基于Java的动态代理机制实现的,它们按照配置的顺序形成一个拦截器链。每个拦截器都可以在Action执行之前或之后执行特定的任务,而无需修改Action本身。这遵循了“开闭原则”,使得代码更易于...
5. **拦截器(Interceptor)**:拦截器是Struts2的一个重要概念,它们按照预定义的顺序在Action执行前后进行干预,实现如日志记录、权限验证、异常处理等功能。常用的拦截器有params(处理参数)、i18n(国际化)、...
在Struts2中,每个拦截器的执行顺序是由`struts-default.xml`或自定义的配置文件中`<interceptor-stack>`元素定义的。默认情况下,Struts2提供了一些预定义的拦截器,如`params`(处理请求参数)、`exception`(处理...
- **Interceptor**(拦截器):拦截器是Struts2的核心组件,它们按照预定义的顺序对Action的调用进行拦截,实现如日志记录、权限验证、事务管理等功能。 2. **配置方式**: - **XML配置**:传统的Struts2配置通常...
3. 在执行动作类之前,Struts2会按照配置的顺序逐个调用Interceptor。 4. 每个Interceptor都可以在进入和离开Action方法前或后执行自定义逻辑。 5. 当所有Interceptor执行完毕后,Struts2会调用Action方法。 6. ...
2. **拦截**:当一个请求到达Action时,Struts2会根据配置的拦截器栈顺序,先调用每个拦截器的`intercept()`方法,然后才执行Action的业务逻辑。 3. **后处理**:Action执行完毕后,Struts2会逆序遍历拦截器栈,调用...
`xwork-2.0.4.jar`是Struts2依赖的一个重要库,XWork是Struts2的前身,它的许多功能被整合到了Struts2中,如动作(Action)处理和拦截器(Interceptor)机制。 描述中提到的"struts2-core-2.0.14.jar"是Struts2框架...
源码分析是提升编程技能和解决问题的关键,特别是对于复杂的框架如Struts2,理解其内部工作原理能够帮助我们优化应用性能,修复潜在问题,并进行定制化开发。 首先,Struts2的核心组件包括Action、Result、...
测试通常包括验证Action类的行为、结果的跳转、Interceptor的执行顺序、以及视图层的正确渲染。同时,考虑到Struts2的安全性问题,如著名的Struts2 OGNL注入漏洞,测试工具也可能包含安全相关的检查。 总的来说,...
(8)Action 执行完毕后,返回一个 result 字符串,此时再按相反的顺序通过 Interceptor 拦截器。 (9)最后 ActionInvocation 负责根据 struts.xml 中配置的 result 元素,找到与返回值对应的 result,决定进行下...