为什么需要拦截器:
- 早起MVC框架将一些通用操作写死在核心控制器中,致使框架灵活性不足,可扩展性降低。
- Struts2将核心功能放在多个拦截器中实现,拦截器可自由选择和组合,增强了灵活性,有利于系统的解耦。
什么是拦截器: - struts2大多数核心功能是通过拦截器实现的,每个拦截器完成某项功能;
- 拦截器方法在action执行之前或之后执行;
- 拦截器栈:从结构上看,拦截器栈相当于多个拦截器组合;在功能上看,拦截器栈也是拦截器。
- 拦截器与过滤器原理很相似。
这样,当为Action提供附加功能时,无需修改Action代码,使用拦截器来提供。
三阶段执行周期:
- 做一些Action执行前的预处理;
- 将控制交给后续拦截器或返回结果字符串;
- 做一些Action执行后的处理。