`

Struts2的拦截器的使用详解

阅读更多

Struts2的拦截器:
    一,拦截器的使用:
        新建一个MyInterceptor拦截器类,实现com.opensymphony.xwork2.ActionInvocation接口中。
        public class MyInterceptor implements Interceptor {
            /**
             * 由xml中可以提定Action中的参数值
             */
            private String myparam;
       
            public String getMyparam() {
                return myparam;
            }
       
            public void setMyparam(String myparam) {
                this.myparam = myparam;
            }
       
            public void destroy() {
                System.out.println("服务器关闭执行销毁操作!");
            }
       
            public void init() {
                System.out.println("服务器启动时执行初始化操作!");
            }
       
            public String intercept(ActionInvocation invocation) throws Exception {
       
                System.out.println(myparam);
                /**
                 * 执行之前的操作
                 */
                String result = invocation.invoke();
                /**
                 * 执行之后操作
                 */
                return result;
            }
        }
    二,在strust.xml中配置拦截器
    `    <struts>
            <package name="mengya" extends="struts-default">
       
                <!-- 拦截器在struts2中的配置 -->
                <interceptors>
                    <interceptor name="myInterceptor"
                        class="com.mengya.interceptor.MyInterceptor">
                        <!-- param可以没有,向拦截器中的属性赋值 -->
                        <param name="myparam">mengya</param>
                    </interceptor>
                   
                    <!-- 配置自己的拦截器栈 -->
                    <interceptor-stack name="myStack">
                        <interceptor-ref name="myInterceptor"></interceptor-ref>
                        <interceptor-ref name="defaultStack"></interceptor-ref>
                    </interceptor-stack>
       
                </interceptors>
                <!--
                    为该package指定一个默认的拦截器栈,这样就可以不用为每个action指定一拦截器栈
                -->
                <default-interceptor-ref name="myStack"></default-interceptor-ref>
       
                <!--
                    郑重说明
                    当某个action中引用了某了interceptor之后就替换了原用的一个默认interceptor
                    即defaultStack,页defaultStack包含了很多完成sturs2一些基本功能的拦截器。
                    故当某个action中引用了某了interceptor之后还要引用defaultStack这个拦截器栈。
                -->
       
                <action name="login" class="com.mengya.action.LoginAction">
                    <result name="success">/show.jsp</result>
                    <result name="input">/index.jsp</result>
                    <!--
                        <interceptor-ref name="myInterceptor"></interceptor-ref>
                        <interceptor-ref name="defaultStack"></interceptor-ref>
                    -->
                    <!--
                        也可以在action中引用自己的拦截器栈
                    -->
                    <!--
                        <interceptor-ref name="myStack"></interceptor-ref>
                    -->
                </action>
       
            </package>
        </struts>
   
    三,对于Struts2中拦截器栈里的拦载器执行的顺序:
        Struts2中的拦截器中的拦截器最上面的最先执行,即进入拦截器的顺序是按照拦截栈中配置的顺序,出拦截器
        是先配置的后执行,即与进入拦载器的顺序相反。
   
    四,Struts2的拦截器除了实现ActionInvocation接口外还可以继承com.opensymphony.xwork2.interceptor.AbstractInterceptor
        AbstractInterceptor抽象器实现了ActionInvocation接口,空实现了init和destroy方法。因此继承了AbstractInterceptor类我们只需重写它的intercept即可。
       
    五,    Struts2的方法过滤拦截器:
        1,继承com.opensymphony.xwork2.interceptor.MethodFilterInterceptor类重写doIntercept方法
        2,方法过滤拦截器的配置:
            <interceptors>
                <!-- 声明方法过滤拦截器 -->
                <interceptor name="myMethodFilterInterceptor" class="com.mengya.interceptor.MyMethodFilterInterceptor"></interceptor>
            </interceptors>
            <!-- 在action配置方法过滤拦截器 -->
            <action name="login" class="com.mengya.action.LoginAction">
                <result name="success">/show.jsp</result>
                <result name="input">/index.jsp</result>
                <interceptor-ref name="defaultStack"></interceptor-ref>
                <interceptor-ref name="myMethodFilterInterceptor">
                    <!-- 不拦截的方法,即,号隔开 -->
                    <param name="excludeMethods">execute,test</param>
                    <!-- 要拦截的方法,即,号隔开 -->
                    <param name="includeMethods">execute</param>
                </interceptor-ref>
            </action>
        3,说明:若某个方法同时出现在excludeMethods(不拦截的方法)和includeMethods(要拦截的方法)当中时
            那么这个方法会被拦截。除它情况下excludeMethods里面的方法不拦截,includeMethods里面的方法会被拦截。

  • Struts2_7.rar (3.6 MB)
  • 描述: Struts2的拦截器的使用详解实例
  • 下载次数: 56
分享到:
评论

相关推荐

    详解Struts2拦截器

    关于struts2 拦截器的详细的解释及其在开发中对struts2的拦截器的应用和拦截器在框架中的作用.

    Struts2拦截器及其用法详细说明

    NULL 博文链接:https://cmexico.iteye.com/blog/621208

    struts2拦截器详解 带demo

    struts2拦截器详解,通过一个简单的例子让大家明白sturts2拦截器使用方法。

    Struts2拦截器详解源码

    Interceptor拦截器详解和部分源码的指导,方便深入学习struts2,增加理解

    详解Struts2拦截器机制

    主要介绍了详解Struts2拦截器机制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java中的Struts2拦截器详解

    本篇文章主要介绍了java中的Struts2拦截器浅解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Struts2详解,Struts2与Struts1的区别

    新手必备,看完绝对思路清晰。醍醐灌顶啊! 一. Struts2介绍 1. Struts2简介 2. Struts2和Struts1的常见区别 ... Struts2的拦截器 13. 拒绝表单重复提交 四. OGNL表达式 五. Struts2中常用标签

    Struts2之Action接收请求参数和拦截器详解

    主要介绍了Struts2之Action接收请求参数和拦截器详解,非常具有实用价值,需要的朋友可以参考下

    Struts2利用拦截器实现权限控制

    利用Struts2的核心技术----拦截器实现权限控制。详细代码详解

    IBM Struts2培训PPT.7z

    IBMStruts2培训PPT (大全集) 主讲:刘雷 完整实用 第一章:认识体验Struts2.ppt 第二章:struts2架构剖析.ppt 第三章:struts2配置详解.ppt ...第九章:struts2拦截器.ppt + Struts2开发详解.ppt

    struts2源码详解

    本案例对struts2拦截器的技术做了详细的解答,希望能有用

    struts2 详解文档

    自定义拦截器 对Action中所有方法进行输入校验 对Action指定方法进行校验 输入校验的流程 基于XML配置方式实现对action的所有方法进行校验 基于XML配置方式实现对指定action方法校验 配置国际化全局资源文件、...

    Struts2拦截器Interceptor的原理与配置实例详解

    拦截器是一种AOP(面向切面编程)思想的编程方式.它提供一种机制是开发者能够把相对独立的代码抽离出来,...下面这篇文章主要给大家介绍了关于Struts2拦截器Interceptor的原理与配置的相关资料,需要的朋友可以参考下。

    Java Web整合开发实战:基于Struts 2+Hibernate+Spring(PDF)

    8章 Struts之拦截器使用技巧 9章 在Struts中应用Ajax技术 10章 Struts之项目实战 3篇 持久层框架Hibernate技术 11章 Hibernate快速上手 12章 精解Hibernate之核心文件 13章 探究Hibernate之核心接口 14章 ...

    Struts2入门教程(全新完整版)

    4.使用默认的execAndWait拦截器 33 5. TokenInterceptor防止表单重复提交。 34 6.使用拦截器实现权限验证 35 7.拦截器中的注解 37 8.使用PreResultListener实现回调 39 六、使用标签 40 1.基础表单标签 40 2.单选...

    struts2 ppt 教程 十章

    第一章:认识体验Struts 2 第二章:struts2架构剖析 第三章:struts2配置详解 第四章:struts2中的OGNL 第五章:struts2标签库 第六章:struts2国际化 ...第九章:struts2拦截器 第十章:struts2类型转换

    非常不错的中文struts2教程[CHM]

    内容: 1、OGNL —— 数据运转的催化剂 2、Result机制,让视图更丰富 3、Struts2配置详解 4、Struts2中的Action ...7、拦截器详解 8、配置,灵活还是简单? 9、深入plugin 10、在Struts2中使用OGNL

    struts快速入门的最好教程

    Struts2框架简介 Struts2历史 Struts2与MVC Struts2体系介绍 Struts2体系架构 ...Struts2拦截器 默认配置文件struts-default.xml概要说明 Struts2核心配置文件Struts.xml详解 Struts2的简单开发和配置

Global site tag (gtag.js) - Google Analytics