struts2拦截器详解_器乐团期末总结

struts2拦截器详解_器乐团期末总结Struts2拦截器总结: 一、编写拦截器1、 实现接口com.opensymphony.xwork2.Intercepter(或继承com.opensymphony.xwork2.AbstractInterceptor)2、 在interceptor方法中加入如下代码:      publicStringintercept(ActionInvocationarg

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

Struts2拦截器总结:

 

一、编写拦截器

1、  实现接口com.opensymphony.xwork2.Intercepter(或继承com.opensymphony.xwork2.AbstractInterceptor

2、  interceptor方法中加入如下代码:

        public String intercept(ActionInvocation arg0) throws Exception {

           System.out.println(“Before”);   //Action之前调用

           String result = arg0.invoke();  //如果此拦截器之后还有拦截器,则调用下个拦截器的intercept方法

                                           //如果之后没有了拦截器,则调用Actionexecute方法

           System.out.println(“After”);

            return result;   

        }

 

二、Struts.xml中配置拦截器

1、  struts.xml中声明拦截器和拦截器Stack,拦截器Stack可以包括多个拦截器和其他Stack

       <interceptors>

           <!– 拦截器 –>

           <interceptor name=“MyInterceptor” class=“com.test.interceptor.MyInterceptor”></interceptor>

           <!– 拦截器Stack –>

<interceptor-stack name=“validationWorkflowStack”>

<interceptor-ref name=“basicStack”/>

                <interceptor-ref name=“validation”/>

                <interceptor-ref name=“workflow”/>

</interceptor-stack>

    </interceptors>

2、  将拦截器配置到单个Action中,只拦截此Action中的execute方法。

<action name=“register” class=“com.test.action.RegisterAction” method=“test”>

           <result name=“success”>/success.jsp</result>

           <result name=“input”>/register2.jsp</result>

           <interceptor-ref name=“MyInterceptor”></interceptor-ref>

    </action>

3、  将拦截器配置到所有Action中,拦截所有Action中的execute方法。

<default-interceptor-ref name=“MyInterceptor”></default-interceptor-ref>

对已经单独配置了拦截器的Action不起作用

 

三、拦截Action中指定的方法

1、 继承com.opensymphony.xwork2.interceptor.MethodFilterInterceptor

2、 因为是针对某个Action的方法,所以只能配置在Action内部

<action name=“register” class=“com.test.action.RegisterAction” method=“test”>

           <result name=“success”>/success.jsp</result>

           <result name=“input”>/register2.jsp</result>

           <interceptor-ref name=“MyInterceptor”>

              <param name=“includeMethod”>test,execute</param> <!– 拦截textexecute方法,方法间用逗号分隔 –>

              <param name=“excludeMethod”>myfun</param>        <!– 不拦截myfun方法 –>

</interceptor-ref>

    </action>

 

四、struts2拦截器的interceptor方法中,参数ActionInvocation可用来获取页面用户输入的信息。

public String intercept(ActionInvocation arg0) throws Exception {

       Map map = arg0.getInvocationContext().getSession();

       if(map.get(“user“) == null) {

           return Action.LOGIN;

       } else {

           return arg0.invoke();

       }

    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185135.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用vue框架运行npm run dev 时报错解决

    使用vue框架运行npm run dev 时报错解决

    2021年10月11日
    64
  • .net core实现aop_redis实时计算

    .net core实现aop_redis实时计算引言  最近工作上有需要使用redis,于是便心血来潮打算自己写一个C#客户端。经过几天的努力,目前该客户端已经基本成型,下面简单介绍一下。通信协议  要想自行实现redisClient,则必须先要了解Redis的socket能信协议。新版统一请求协议在Redis1.2版本中引入,并最终在Redis2.0版本成为Redis服务器通…

    2022年10月12日
    3
  • or1200于IMMU分析

    or1200于IMMU分析

    2021年9月8日
    58
  • VScode快捷键设置和代码简写

    VScode快捷键设置和代码简写1常用快捷键 单行注释 ctrl+/ 多行注释 alt+shift+a 复制上一行代码到下一行 alt+shift+↓ 移动代码到上一行或下一行 alt+↑,alt+↓ 返回到上次编辑位置 alt…

    2022年6月11日
    106
  • vmware 安装 win10[通俗易懂]

    vmware 安装 win10[通俗易懂]1.下载安装vm软件,地址:VM下载2.下载win10iso镜像文件(1)下载win10安装工具:win10安装工具下载(2)下载完成后,选择给其他电脑安装ios文件即可得到win10的iso镜像文件(考验网速的时刻到了)。ps:试过各种百度出来的镜像文件,发现没有能用的,还是乖乖通过官方方式下载吧。3.安装win10ios镜像文件参…

    2022年6月29日
    30
  • 对L1正则化和L2正则化的理解[通俗易懂]

    一、奥卡姆剃刀(Occam’srazor)原理:     在所有可能选择的模型中,我们应选择能够很好的解释数据,并且十分简单的模型。从贝叶斯的角度来看,正则项对应于模型的先验概率。可以假设复杂模型有较小的先验概率,简单模型有较大的先验概率。  二、正则化项     2.1、什么是正则化?   正则化是结构风险最小化策略的实现,在经验风险上加一个正则项或罚项,正则项一共有两种L1…

    2022年4月11日
    187

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号