struts2框架之自定义拦截器和配置

wyhluckydog      2022-04-21     174

关键词:

  struts框架中也存在拦截器,只不过系统自动调用。框架自带的拦截器的配置文件所在的位置为:

  java Resources--->Libraries--->struts2-core-2.3.36.jar(核心包)--->struts-default.xml

  这个配置文件中放置的是框架所有的拦截器,拦截器放置在拦截器栈中<interceptor-stack>。在配置文件中有一个基本拦截器栈,我们如果需要使用拦截器的时候,调用基本拦截器就可以了。

如果我们想要实现自己定义的功能,就需要自定义拦截器:

1. 编写拦截器,需要实现Interceptor接口,实现接口中的三个方法
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;

public class MyInterceptor implements Interceptor{

    @Override
    public void destroy() {
        
    }

    @Override
    public void init() {
        
    }

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        System.out.println("加密");
        //放行
        invocation.invoke();//放行让请求的功能执行
        System.out.println("解密");
        return null;
    }

}

2. 需要在struts.xml中进行拦截器的配置,配置一共有两种方式:

(1)第一种方式:定义拦截器。在action中要引用拦截器:只要是引用自己的拦截器,默认栈的拦截器就不执行了,必须要手动引入默认栈 。

(2)第二种方式:定义拦截器栈。将两个拦截器定义在一个栈中,所以在action标签中引用 拦截器的时候,只用引入拦截器栈名就可以了。

<package name="default" namespace="/" extends="struts-default">
        <!-- 第一种配置方式 :定义了拦截器-->
        <!--  <interceptors> -->
        <!-- <interceptor name="MyInterceptor" class="com.huida.interceptor.MyInterceptor"></interceptor> -->
        <!-- </interceptors> -->
        <!-- 第二种配置方式:定义拦截器栈 -->
        <interceptors>
            <interceptor name="MyInterceptor" class="com.huida.interceptor.MyInterceptor"></interceptor>
            <!-- 定义拦截器栈 -->
            <interceptor-stack name="myStack">
                <interceptor-ref name="MyInterceptor"/>
                <interceptor-ref name="defaultStack"/>
            </interceptor-stack>
        </interceptors>
        <action name="demo3Action_*" class="com.huida.action.Demo3Action" method="{1}"><!-- 通配符的方式 -->
            <!-- <interceptor-ref name="MyInterceptor"></interceptor-ref> --><!-- 这样访问demo的时候就会经过拦截器,这样系统的拦截器就不执行了 -->
            <!-- <interceptor-ref name="defaultStack"></interceptor-ref> --><!-- 执行系统的拦截器,保证系统的完整性 -->
            <interceptor-ref name="myStack"></interceptor-ref><!--如果定义了拦截器栈,这里就只用写拦截器栈的名称就可以了,因为拦截器把两个拦截器定义为了一个-->
               <result name="success" >/suc.jsp</result>
        </action>
    </package>

 启动服务器,在浏览器中输入:http://localhost:8080/struts2_day02/demo3Action_save,在控制台输出:

 

 

 

struts2拦截器和标签

一、struts2拦截器  1、struts2是框架,封装了很多的功能,struts2里面封装的功能都是在拦截器里面。  2struts2里面封装了很多的功能,有很多拦截器,不是每次这些拦截器都执行,每次执行默认的拦截器。  3struts2里面默认... 查看详情

在struts2中配置自定义拦截器放行多个方法

源码:自定义的拦截器类://自定义拦截器类:LoginInterceptor;packagecom.java.action.interceptor;importjavax.servlet.http.HttpSession;importorg.apache.struts2.ServletActionContext;importcom.opensymphony.xwork2.ActionInvocat 查看详情

struts2xml配置详解

...p;   包配置:Struts2框架中核心组件就是Action、拦截器等,Struts2框架使用包来管理Action和拦截器等。每个包就是多 查看详情

struts2框架拦截器:

Struts2框架提供了良好的预配置,并准备使用的盒拦截。下面列出了几个重要的拦截器:SNInterceptor&描述1aliasAllowsparameterstohavedifferentnamealiasesacrossrequests.2checkboxAssistsinmanagingcheckboxesbyaddingaparametervalueoffalseforcheck 查看详情

struts2框架使用之struts2的验证框架

Struts2验证简介Struts2基于Struts2拦截器,为开发者提供了一套易用的验证框架,并可扩展;一般的验证都支持;Struts2内置验证struts2内置的验证器 第三节:自定义验证Struts2基于Struts2拦截器,为开发者提供了一套易用的验证框... 查看详情

struts2拦截器-自定义拦截器,放行某些方法(web.xml配置)

一、web.xml配置<filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param 查看详情

struts2的登录验证和session控制

...由于软件工程大项目的需要,我学习了下Struts2的自定义拦截器的使用方法。其实很简单,拦截器的思想就是在执行某个需要权限的action之前先进拦截器Action看一下是否符合要求,比如说是否有合法的session保存。下面是各种配置... 查看详情

struts2的拦截器和springmvc的拦截器的区别

...般配置在web.xml中,在遇到符合规则的请求时处理。struts2拦截器,是struts提供的,配置在struts.xml中,拦截struts的Action请求并处理,如果你的请求不符合struts要求未被struts处理,则拦截器同样不会触发。spring跟struts一样,只是由spr... 查看详情

struts2拦截器具体配置过程

拦截器差点儿遍布每个程序中,所以贴出拦截器配置的具体过程,希望可以帮到大家。Struts2 拦截器具体配置过程<interceptors>           <!-- 先定义拦截器 -->   ... 查看详情

struts2学习笔记之十三:自定义过滤器

Struts2的拦截器1、Struts2的拦截器只能拦截Action,拦截器是AOP的一种思路,可以使我们的系统架构更松散(耦合度低),可以插拔,容易互换,代码不改变的情况下很容易满足客户需求其实体现了OCP 2、如何实现拦截器?(整... 查看详情

struts2中struts.xml的作用是啥?

...可能用到的参数,以及处理结果的返回页面。还包括各种拦截器的配置等。参考技术A主要作用就是为Struts2的核心配置文件。一、struts.xml中主要配置Struts项目的一些全局的属性,用户请求和响应Action之间的对应关系,以及配置Act... 查看详情

strtus2框架笔记

...引入了几个新的框架特性:从逻辑中分离出横切关注点的拦截器、减少或者消除配置文件、贯穿整个框架的强大表达式语言、支持可变更和可重用的基于MVC模式的标签API,Struts2充分利用了从其它MVC框架学到的经验和教训,使得St... 查看详情

java如何实现拦截短信功能

java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。在AOP中,拦截... 查看详情

struts2框架

...合分层开发。框架应用实现不依赖于Servlet,使用大量的拦截器来处理用户请求,属于无侵入式的设计。  2,Struts2框架的流程原理1)请求先到达Filter中央控制器2)然后为Action创建代理类3)将各个服务存放在拦截器中,执... 查看详情

springmvc和ssh,ssm的区别

...SSM框架sql语句是写在配置文件中的。参考技术ASpringMVC和Struts2都是MVC框架,优劣性基本一样,唯一的一点就是SpringMVC和SpringCore的集成更好。你如果要写SpringMVC的登录实现,和struts2的思路差不多,就写配置文件,然后写类似于actio... 查看详情

struts2的常见配置&action的访问

...架,本质上相当于一个servlet。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。SpringMVC也是一个web层的框架web层框... 查看详情

struts2第三天

...type属性 3.数据的封装 *属性驱动方式 *模型驱动方式 4.拦截器(自定义拦截器) ---------- **今天的课程内 查看详情

struts2的拦截器配置

1:引入默认的时间拦截器   <!--引入拦截器和引入拦截器栈一样的语法 -->    <interceptor-ref name="defaultStack"></interceptor-ref>      &n 查看详情