`

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拦截器** 拦截器是基于AOP(面向切面编程)思想的组件,它可以理解为在Action调用前后插入的逻辑处理。在...

    详解Struts2拦截器

    ### Struts2拦截器详解 #### 一、Struts2拦截器概述 Struts2框架作为Java Web开发中的一种流行框架,其核心组件之一便是**拦截器**。拦截器不仅在Struts2中扮演着重要角色,更是整个框架灵活性与扩展性的基石。...

    Struts2拦截器详解源码

    Struts2 拦截器(Interceptor)是框架的核心组件之一,它允许开发者在Action执行前后插入自定义的处理逻辑,极大地增强了应用的灵活性和可维护性。与Servlet规范中的Filter相比,虽然两者都用于处理请求,但拦截器在...

    struts2拦截器详解 带demo

    Struts2 拦截器详解 Struts2 框架中的拦截器(Interceptor)是一种强大的机制,它允许开发者在Action执行前后插入自定义的行为,增强了应用的灵活性和可扩展性。拦截器是基于Java的动态AOP(面向切面编程)实现,...

    struts2拦截器和验证框架(适合初学者-经藏版)

    ### Struts2 拦截器与验证框架详解 #### 一、Struts2概述 Struts2是一个基于Java的企业级Web应用开发框架,它继承了Struts1的优点,并在此基础上进行了很多改进,使得开发更加灵活高效。Struts2的核心是拦截器...

    struts2拦截器的使用

    ### Struts2拦截器的使用 #### 一、概述 Struts2框架是基于MVC设计模式的一个开源框架,它提供了强大的功能来帮助开发者构建Web应用程序。在Struts2中,拦截器是一种非常重要的机制,它可以在Action执行前后进行...

    详解Struts2拦截器机制

    Struts2拦截器机制详解 Struts2拦截器机制是Struts2框架的核心组件之一,它主要负责拦截和处理Action请求。拦截器机制的作用是相当大的,在Struts2中几乎70%的工作都是由拦截器完成的。拦截器机制可以实现各种功能...

    struts2 Interceptor拦截器

    ### Struts2 Interceptor 拦截器详解 #### 一、概述 在现代Web开发中,特别是基于Java的Web应用程序开发中,Struts2框架因其简洁性和强大的扩展能力而备受青睐。Struts2框架的核心设计理念之一是MVC(Model-View-...

    struts2拦截器

    ### Struts2拦截器详解 #### 一、拦截器的概念与意义 拦截器(Interceptor)在Struts2框架中扮演着至关重要的角色。它的工作原理类似于过滤器(Filter),能够拦截用户请求,并对其进行预处理或者后处理。拦截器...

    一个Struts2的核心拦截器例子

    5. **核心拦截器详解**: - `params`:处理请求参数,将请求参数绑定到Action的属性上。 - `i18n`:处理国际化,根据用户浏览器设置的语言加载资源文件。 - `exception`:处理Action执行过程中的异常。 - `...

    Struts2拦截器实例.docx

    ### Struts2拦截器实例——登录校验 #### 概述 在Web应用开发中,登录验证是一项重要的功能。为了确保只有已登录的用户才能访问特定的资源或页面,通常会采用拦截器来实现这一需求。本文档将详细介绍如何在Struts2...

    Struts2.0拦截器总结

    ### Struts2.0拦截器详解 #### 一、拦截器概述 在Struts2框架中,拦截器(interceptor)是一种非常重要的机制,用于在执行Action前后进行一系列预处理或后处理的操作。拦截器可以用来执行如参数拦截、类型转换、输入...

    Struts2中Struts.xml配置文件详解

    "Struts2 中 Struts.xml 配置文件详解" Struts2 中的 Struts.xml 配置文件是 Struts2 框架的核心配置文件,用于定义应用程序的行为和结构。在 Struts.xml 文件中,我们可以定义 package、action、interceptor、...

    struts2内置拦截器简介

    常用内置拦截器详解 ##### 2.1 Exception 此拦截器用于捕获Action执行过程中发生的异常,并将异常信息转发到指定的结果页面。当某个Action抛出异常时,如果配置了此拦截器,则会跳转到配置的错误页面,通常用于显示...

    struts2 Interceptor详解

    在`struts.xml`配置文件中,可以使用`&lt;interceptors&gt;`标签定义拦截器栈,然后使用`&lt;interceptor&gt;`标签定义具体的拦截器。例如,以下配置创建了一个包含日志拦截器和权限检查拦截器的拦截器栈: ```xml ...

    struts2入门实例教程详解

    Struts2基于WebWork,这意味着它引入了拦截器、结果类型等概念,提供更灵活的控制流。 #### 三、创建Struts2项目 按照Struts1.x的程序开发步骤,我们可以逐一对应到Struts2中: 1. **安装Struts2:** - 不同于...

    Struts2的拦截器

    ### Struts2的拦截器详解 #### 概述 在Java Web开发中,Struts2框架因其灵活性和扩展性而受到广泛欢迎。其中,拦截器(Interceptor)是Struts2框架的一个核心特性,用于处理Action的公共行为,类似于Spring框架中...

    Struts2内置拦截器简介

    #### 二、内置拦截器详解 1. **Auto-Wiring (自动装配)** - **简介**:此拦截器用于自动装配Struts2与Spring集成时所需的Bean。当Struts2与Spring框架集成时,可以通过该拦截器实现依赖注入,从而避免手动配置...

Global site tag (gtag.js) - Google Analytics