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)
上一篇 2022年10月6日 下午10:46
下一篇 2022年10月6日 下午10:46


相关推荐

  • 曼彻斯特编码、差分曼彻斯特编码怎么画;曼彻斯特编码、差分曼彻斯特编码的画法

    曼彻斯特编码、差分曼彻斯特编码怎么画;曼彻斯特编码、差分曼彻斯特编码的画法网上看了很多讲解 总感觉不是很全面 在此小结一下 先看个例子 试画出 Ox52B7 的曼彻斯特编码及差分曼彻斯特编码首先 Ox52B7 00111B 曼彻斯特编码画法 差分曼彻斯特编码画法 口诀 0 立即跳变 1 延迟跳变

    2026年3月16日
    3
  • Java Web和Java后端开发的学习路线

    Java Web和Java后端开发的学习路线基础:比如计算机系统、算法、编译原理等等Web开发:主要是Web开发相关的内容,包括HTML/CSS/JS(前端页面)、Servlet/JSP(J2EE)以及Mysql(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML/CSS/JS(前端页面),这部分内容你可以去上面的那个runoob网站上找。J2EE:你需要学习的是Servlet/JSP(J2EE)部分,…

    2022年7月8日
    28
  • 如何用python画爱心表白_python 简短 表白

    如何用python画爱心表白_python 简短 表白利用python画爱心表白

    2025年9月25日
    7
  • 模糊数学评价体系_灰色模糊综合评价

    模糊数学评价体系_灰色模糊综合评价>`建模算法整理`,文章主要介绍了模糊综合评价中的要把论域中的对象对应评语集合一个指定的评语的情况(一级模糊评价)>`参考学习资料`:清风数学建模数学建模算法与程序>`其他资源`:2016到2020美赛o奖论文===姜启源司守奎电子书===论文模板====算法代码>如果需要可私信或者评论

    2025年6月30日
    8
  • POSIT算法

    POSIT算法一 基本思想 算法分两部分 1 带有比例系数的正交投影变换 SOP 根据线性方程组求出旋转矩阵和平移向量 2 由得出的旋转矩阵和平移向量系数 更新比例系数 scalefactor 再由比例系数更新原有的点进行迭代 二 算法过程 1 假设矩阵和平移向量 f 是焦距 在透视投影变换中 而在 SOP 中 其中比例因子是 s f Z0 2 作为基本的透视投影变换 将 3D 点透

    2026年3月20日
    2
  • 浅谈 PHP 变量可用字符[通俗易懂]

    浅谈 PHP 变量可用字符[通俗易懂]原文:浅谈PHP变量可用字符先来说说php变量的命名规则,百度下一抓一大把:(1)PHP的变量名区分大小写;(2)变量名必须以美元符号$开始;(3)变量名开头可以以下划线开始;(4)变量名不能以数字字符开头.其实所有编程都类似的命名规范就是:1.变量第一个字符最好是字母或_,不能以数字开头2.第二个字符开始允许数字,字母,_好了,差不多就是这样了,但是这不是我们要说的重点。…

    2022年5月29日
    37

发表回复

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

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