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();

       }

    }

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • golang 2021激活码【2021免费激活】

    (golang 2021激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 稳定dns服务器,国内DNS服务器推荐 选对了让你网速开挂

    稳定dns服务器,国内DNS服务器推荐 选对了让你网速开挂有个小伙伴看了一则美国服务商声称自己的DNS(1.1.1.1)是互联网最快的公共服务的新闻后,询问小编是不是真的要比国内常用的DNS或者说运营商自动分配的DNS服务要厉害很多?针对这个问题,先和大家聊一下什么是DNS吧。DNS(DomainNameSystem)简单点来说,就是用来翻译网站IP的一种工具,让大家不用在浏览器中输入每个网站的IP地址(也就是XXX.XXX.XXX.XXX),直接用…

  • noip2018提高组初赛解析_NOIP提高组

    noip2018提高组初赛解析_NOIP提高组题目背景NOIP2012提高组DAY2试题。题目描述H国有n个城市,这n个城市用n-1条双向道路相互连通构成一棵树,1号城市是首都,也是树中的根节点。H国的首|都爆发了一种危害性极高的传染病。当局为了控制疫情,不让疫情扩散到边境城市(叶子节点所表示的城市),决定动用军队在一些城市建立检查点,使得从首都到边境城市的每一条路径上都至少有一个检查点,边境城市也可以…

  • IE浏览器安装插件(ocx)提示“windows 已经发现此文件有一个问题”怎么办?「建议收藏」

    IE浏览器安装插件(ocx)提示“windows 已经发现此文件有一个问题”怎么办?「建议收藏」当我们在win7操作系统中浏览网页,在有些网页需要登入账号密码需要安装插件才能够输入进去。一般我们只需按步骤下载安装插件就可以了。但是由用户反映,在下载好插件准备运行的时候,发现怎么样都安装不了,这样就无法登入账号了,该怎么办呢?接下来小编给大家介绍下解决方法。步骤:1、打开IE浏览器,在浏览器中点一下“alt”键,然后点击“工具”—“internet选项”;2、在

  • Activity Result API详解,是时候放弃startActivityForResult了「建议收藏」

    Activity Result API详解,是时候放弃startActivityForResult了「建议收藏」如果你将项目中的appcompat库升级到1.3.0或更高的版本,你会发现startActivityForResult()方法已经被废弃了。这个方法相信所有做过Android的开发者都用过,它主要是用于在两个Activity之间交换数据的。那么为什么这个如此常用的方法会被废弃呢?官方给出的说法是,现在更加建议使用ActivityResultAPI来实现在两个Activity之间交换数据的功能。我个人的观点是,startActivityForResult()方法并没有什么致命的问题,只是

  • 如何查看顶级域名有几个二级域名

    如何查看顶级域名有几个二级域名

    2021年10月21日

发表回复

您的电子邮箱地址不会被公开。

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