Struts2拦截器

Struts2 | 2018-05-16 22:36:08 | 阅读 152 次 | 评论(0)

        Struts 2将核心功能放倒多个拦截器中实现,拦截器可以自由选择和组合,增强了灵活性,有利于系统的解耦。

        Struts 2大多数核心功能是通过拦截器实现的,每个拦截器完成某项功能。

        拦截器方法在Action执行之前和之后执行。

        拦截器栈:

                >> 从结构上看,拦截器栈相当于多个拦截器的组合。

                >>在功能上看,拦截器栈也是拦截器

        拦截器与过滤器原理很相似。

        为Action提供附加功能时,无需修改Action代码,使用拦截器来提供。


使用:

        继承AbstractInterCeptor

        重写intercept(ActionInvocaton invocation)

               //预处理工作

               String result = invocation.invoke();//执行后续拦截器或Action

                //后续处理工作

                return result;//返回结果字符串

拦截器简单配置

<package name="default"    namespace="/"    extends="struts-default">

        <interceptors>//可以写多个拦截器,单个拦截器的话可以只写<interceptor>

                <interceptor name="myTimer"     class="类的全路径名"></interceptor>

        <interceptors>

        <action    name="index"    class="类的全路径名">

                <result>/index.jsp</result>

                <interceptor-ref name="myTimer"></interceptor-ref>    //拦截器引用

                <interceptor-ref name="defaultStack"></interceptor-ref>   

                 //默认拦截器,自定义以后会失效,所以要手动加入

        </action>

</package>


配置多个拦截器(拦截器栈)

        <interceptors>

                 <!--   定义拦截器 -->

                <interceptor name="myTimer"     class="类的全路径名"></interceptor>

                <!--   定义拦截器栈 -->

                <interceptor -stack   name="interceptorStackName">

                        <!--   指定引用的拦截器 -->

                        <interceptor-ref     name="myTimer | interceptorStackName"/>

                </interceptor -stack >

        </interceptors>

         <!--   默认拦截器 -->

        <default-interceptor-ref name="myTimer | interceptorStackName"/>

        



文章评论,共0条
游客请输入验证码
文章分类
文章归档
最新评论