一、什么是拦截器
拦截器是一个类,可以在Action被调用之前和之后执行代码,通常框架的很多功能都是拦截器实现的,如接收输入的参数、数据验证、文件上传等
二、工作方式
做一些Action执行前的预处理,将控制交给后续拦截器或返回结果字符串,做Action执行后的处理
三、拦截器栈
从结构上来看,拦截器栈是一组拦截器
从功能上来看,拦截器栈也是拦截器
四、使用拦截器
继承AbstractInterceptor,重写intercept
提示:
1、拦截器栈有多个<interceptor-ref>,谁在前,谁先起作用
2、拦截器起作用的顺序(先<action>,再本包,再父包)
五、拦截器和过滤器的区别
1、拦截器用于拦截Action请求,而过滤器几乎可以过滤所有请求
2、过滤器中可以获取Action的当前状态,而过滤器不可以
3、过滤器是Servlet中的概念,在web.xml中配置;而过滤器是Struts/Webwork中的概念,在struts.xml中配置