Struts2 拦截器
拦截器
Struts2大多数核心功能是通过拦截器实现的,每个拦截器完成某项功能(比如数据转移,类型转换,数据校验等)。
拦截器方法在Action执行之前或者之后执行。
拦截器栈
从结构上看,拦截器栈相当于多个拦截器的组合。
在功能上看,拦截器栈也是拦截器。
拦截器工作原理
拦截器的执行过程是一个递归的过程。
自定义拦截器
方式一:实现Interceptor接口
- void init():初始化拦截器所需资源
- void destroy():释放在init()中分配的资源
- String intercept(ActionInvocation ai) throws Exception
实现拦截器功能
利用ActionInvocation参数获取Action状态
返回result字符串作为逻辑视图
方式二:继承AbstractInterceptor类
- 提供了init()和destroy()方法的空实现
- 只需要实现intercept方法即可