有关Struts2中的拦截器的配置

原创
2017/01/05 00:07
阅读数 21

好久没有使用struts了虽然说是一个比较强大的前端框架,但是现在Springmvc的火热导致现在的struts不是很理想;

struts的拦截器主要是对action的请求进行拦截,:

如何进行拦截器的配置呢?

首先需要编写一个拦截器的类:

       例如我们可以有好多方式进行实现,=但是我们最常用的是通过继承抽象拦截器类AbstractIntercepter
该类实现了 Interceptor 接口,并且提供了 init()方法和 destroy()方法的空实现,使用的时候我们只需要重写intercept方法,在这个方法中我们可以实现自己的业务逻辑;

 

public class HelloInterceptor extends AbstractInterceptor {

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        
        System.out.println("hello拦截器在到达action之前执行了!!!!!!!!");
        
        //让下一个拦截器继续执行
        String result = invocation.invoke();
        
        System.out.println("hello拦截器在访问action之后执行了!!!!!!!");
        
        return result;
    }

}

 

其次我们要对拦截器进行配置:

    在struts的核心配置文件中,我们需要在package标签中配置拦截器的相关信息:

            <package name="demo" extends="struts-default" namespace="/">
            <!-- 1.注册拦截器 -->
            <interceptors>

                    <interceptor name="HelloInterceptor1" class="com.itheima.a_hello.HelloInterceptor"></interceptor>

             </interceptors>
            
            
            <!-- 2.在action配置使用拦截器 -->
            <action name="demo1" class="com.itheima.a_hello.Demo1Action">
                <result>/success.jsp</result>
                
                <interceptor-ref name="HelloInterceptor1"></interceptor-ref>
                <!-- 使用默认的拦截器栈 -->
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </action>
        </package>

这样我们访问action的时候会首先执行拦截器中的操作;在做一些权限的过滤的时候我们可以使用拦截器进行操作

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部