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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • android vlc 中文字幕,解决Android版vlc中文乱码问题

    android vlc 中文字幕,解决Android版vlc中文乱码问题FQ到googleplaystore安装了vlc以后播放视频中文显示方框,开始以为编码问题,将字幕文件转换成utf-8以后问题依旧。android版vlc有个开发者模式,可以查看运行日志:07-0216:13:30.658D/VLC(19362):freetypesputext:Using/system/fonts/DroidSans-Bold.ttfasfont…

    2022年7月11日
    16
  • django 异常处理_migrate previous

    django 异常处理_migrate previous前言在讲解如何解决migrate报错原因前,我们先要了解migrate做了什么事情,migrate:将新生成的迁移脚本。映射到数据库中。创建新的表或者修改表的结构。问题1:migrate怎么判断哪

    2022年7月29日
    4
  • .NET程序的编译和运行

    程序的编译和运行,总得来说大体是:首先写好的程序是源代码,然后编译器编译为本地机器语言,最后在本地操作系统运行。下图为传统代码编译运行过程:.NET的编译和运行过程与之类似,首先编写好的源代码,然

    2021年12月22日
    52
  • 华为数通hcie_通融理赔后需要签协议吗

    华为数通hcie_通融理赔后需要签协议吗Internet组管理协议称为IGMP协议(InternetGroupManagementProtocol),是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。IGMP包含了IGMPv1、IGMPv2、IGMPv3三个版本,目前正处于由IGMPv2向IGMPv3的过渡阶段。本篇将按照IGMP基本原理、IGMP三个版本、IGMPSnooping几部分对IGMP协议进行介绍。

    2022年9月14日
    0
  • 打开桌面计算机投屏到扩展屏,将Win10电脑屏幕内容投屏到小米电视的操作方法…「建议收藏」

    Win10系统自带的无线投屏功能,可能大家还不知道,现在手机、电视都是支持Miracast协议的,把屏幕内容投屏到电视上使用,极大的满足了我们的视觉。不管是打游戏、看视频、看图片,投屏到电视比看电脑要来得更爽,这该怎么操作?本文和大家分享一下将Win10电脑屏幕内容投屏到电视的操作方法。Win10投屏电视步骤如下:(以小米电视为例)1、首先将电脑连接无线WIFI。2、将电视也连接在同一个无线WIF…

    2022年4月17日
    630
  • mysql curdate current_date_utildate转sqldate

    mysql curdate current_date_utildate转sqldateMysql常用函数的汇总,可看下面文章https://www.cnblogs.com/poloyy/p/12890763.htmlcurdate的作用以字符串或数字形式使用该函数, 

    2022年8月6日
    3

发表回复

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

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