7 拦截器(Interceptors)介绍
• 拦截器(Interceptor)是Struts2的一个强有力的工具,有许多功能都是构建于它之上,如国际化、转换器,校验等。Interceptor是Struts2的一大特色,在执行action之前和之后可以使请求通过一个或多个Interceptor。多个连接器组合在一起实现某一个功能称为interceptor链(Interceptor Chain,在Struts2中称为拦截器栈Interceptor Stack)。interceptor链就是将interceptor按一定的顺序联结成一条链。在访问被拦截的方法或字段时,interceptor链中的interceptor就会按其之前定义的顺序被调用。
7.1 Interceptor的原理
• Struts2的interceptor实现相对简单。当请求到达Struts2的ServletDispatcher时,Struts2会查找配置文件,并根据其配置实例化相对的interceptor对象,然后串成一个列表(list),最后一个一个地调用列表中的拦截器,

7.2 内置拦截器介绍
• Struts2包含了许多内置的interceptor,它们提供了很多核心功能和可选的高级特性。interceptor在struts.default.xml文件中被定义,而一些默认的interceptor栈及interceptor的命名也被定义其中。框架中提供了很多实用的Interceptor,可以随时使用它们的名字来调用这些interceptor,
7.3 使用内置interceptor
• 本节将介绍几种常用interceptor的用法:
• 1.使用timer为action即时
• 2.使用logger 为aciton提供日志
• 3.使用校验
• 4.准备action
• 5.实现ModelDriven
• 6.token和token-session
