Struts 2 的Interceptor配置 | |||||||||||||||
interceptors是一个拦截器,指可以定义一段代码可以在另一个方法执行之前或者之后被执行。(Filter 式样)。 当开发应用时interceptors可以成为一个强有力的工具。 | |||||||||||||||
有很多种情况下可以用到interceptors,包括验证,属性封装,安全机制,日志,性能分析 | |||||||||||||||
验证 | 对输入做正确性测验 | ||||||||||||||
属性封装 | 将输入参数传输和转换成类的属性 | ||||||||||||||
日志 | 记录关于每个action的信息 | ||||||||||||||
性能分析 | 统计action的吞吐量,寻找性能瓶颈 | ||||||||||||||
多个interceptor能够链接在一起来形成一个栈。如果一个action需要去check客户端的证书,对action进行记录, 对action计时,记录整个执行时间等等, | |||||||||||||||
可以用一个相同的interceptor栈来完成。 | |||||||||||||||
interceptor使用java类实现的,所以每一个拦截器有一个对应的类名。为了使引用一个拦截器变得容易,每一个类可以在框架里面注册, 分配一个唯一的,简单的名字 | |||||||||||||||
注册拦截器 | |||||||||||||||
<interceptors>
| |||||||||||||||
<interceptor name="security" class="com.company.security.SecurityInterceptor"/>
| |||||||||||||||
<interceptor-stack name="secureStack">
| |||||||||||||||
<interceptor-ref name="security"/>
| |||||||||||||||
<interceptor-ref name="
defaultStack"/>
| |||||||||||||||
</interceptor-stack>
| |||||||||||||||
</interceptors>
| |||||||||||||||
说明1:当定义一个拦截器栈的时候,个别拦截器和拦截器栈可以在任何顺序下混合配对。 | |||||||||||||||
说明2:在框架中会按照在拦截器栈里面定义拦截器的顺序进行逐一调用 | |||||||||||||||
补充说明: 补充一下此defaultStack在struts的默认配置文件中最下面有,以及默认的对应拦截器类,此拦截器类(ActionSupport) 正好是定义各种action的父类 | |||||||||||||||
大部分应用会定义一个缺省的拦截器栈,如下: | |||||||||||||||
<default-interceptor-ref name="secureStack"/> | |||||||||||||||
但是任何一个action也可以定义他自己的本地栈 | |||||||||||||||
本地拦截器栈 | |||||||||||||||
<actionname="VelocityCounter" class="org.apache.struts2.example.counter.SimpleCounter">
| |||||||||||||||
<resultname="success">...</result>
| |||||||||||||||
<interceptor-refname="defaultComponentStack"/>
| |||||||||||||||
</action>
| |||||||||||||||
默认的配置文件(struts-default.xml)建立了一个默认的拦截器栈,这个拦截器栈对于大部分应用都是有用的。 | |||||||||||||||
翻译自http://struts.apache.org/docs/interceptor-configuration.html | |||||||||||||||
更为详细说明http://struts.apache.org/docs/interceptors.html |
struts2的Interceptor配置说明(一)
最新推荐文章于 2023-04-30 00:38:07 发布