ssm之Struts(拦截器)

来源:互联网 发布:mac恢复垃圾箱删除文件 编辑:程序博客网 时间:2024/06/17 17:14

、Struts2拦截器原理:

Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的    拦截器对象,然后串成一个列表,最后一个一个地调用列表中的拦截器。

比如:应用要求用户登陆,且必须为指定用户名才可以查看系统中某个视图资源;否则,系统直接转入登陆页面。对于上面的需求,可以在每个Action的执行实际处理逻辑之前,先执行权限检查逻辑,但这种做法不利于代码复用。因为大部分Action里的权限检查代码都大同小异,故将这些权限检查的逻辑放在拦截器中进行将会更加优雅。

1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.

2. 拦截器栈(Interceptor Stack)。Struts2拦截器栈就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,Struts2拦截器链中的拦截器就会按其之前定义的顺序被调用。


拦截器的基本使用顺序:

第一步:建立拦截器的继承类(继承 AbstractInterceptor重写里面的intercept方法)

在intercept方法里面写上需要拦截的代码;

通过 String re = invoke.invoke(); 获得对应action的返回值;



第二步:配置拦截器:


第三步:使用拦截器:(注意:在使用自己写的拦截器后默认的拦截器失效,有一些功能不能实现需要写上默认的拦截器 <interceptor-ref name="defaultStack"/>)



 拦截器栈:

拦截器栈 也是一个拦截器(多个拦截器组成的一个拦截器) 使用方法和拦截器一样



原创粉丝点击