首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Struts2——(六)拦截器组件

2013-10-30 
Struts2——(6)拦截器组件AOP:面向切面编程(通过配置文件来指定作用到目标对象)OOP:面向对象编程AOP具有很好

Struts2——(6)拦截器组件

AOP:面向切面编程(通过配置文件来指定作用到目标对象)

OOP:面向对象编程

AOP具有很好的可插拔特性,很灵活。

可用于封装共通的业务处理,之后可以通过配置作用到Action组件上。

共通的业务处理有:登录检查,日志记录,性能检测,事务处理。

1、拦截器规范

(1)必须实现Intercepter接口,实现interceptor方法。

(2)拦截器组件可以继承AbstractIntercepter类(实现了Intercepter接口)。

(3)拦截器组件可以继承MethodFilterIntercepter类(继承自AbstractIntercepter),增加了方法过滤功能(上面两种方式是拦截所有方法,这个方法可以拦截指定方法)。

2、拦截器相关配置(可参考struts-default.xml中的配置)

(1)声明

<interceptor name="拦截器名"  class="包名.类名"/>

(2)引用

<interceptor-ref name="拦截器名或拦截器栈名"/>

(3)注意:当为Action组件引用了拦截器后,需要将默认的defaultStack拦截器显式引入。

3、示例

(1)示例一:记录操作日志

<!DOCTYPE struts PUBLIC            "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"           "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><package name="pack1" extends="struts-default"><interceptors>            <interceptor name="mylogger" class="xsyu.intercepter.LoggerIntercepter"/>        </interceptors><global-results><result name="fail">/fail.jsp</result></global-results><action name="index"><result name="success" type="redirect">/add.jsp</result></action><action name="person" class="xsyu.action.PersonAction"><interceptor-ref name="mylogger"/><interceptor-ref name="defaultStack"/><result name="list">/index.jsp</result><result name="init">/update.jsp</result><result name="view">/view.jsp</result></action><action name="list" class="xsyu.action.ListAction"><result name="success">/list.jsp</result></action></package></struts>

注意:要添加默认拦截器。

一般是写两个拦截器,第一个拦截器先判断登录,第二个拦截器再记录日志。






热点排行