zoukankan      html  css  js  c++  java
  • struts2的token interceptor

    关于struts2的token拦截器的说明

    原理:struts2的token interceptor是关于重复提交的拦截器,其实现是:在form表单中加入token标签,如下:

     

    1     <form action="user" method="post">
    2         name:<input name="name">
    3         age:<input name="age">
    4         <input type="submit" value="add">
    5         <s:token></s:token>
    6     </form>

     

    会在服务器传回来的静态页面中找到一个hidden 标签,在此标签中生成了一个随机码,会加入到session中去,当提交完整个页面之后会在session中把它删掉,当在此想提交的时候,在session中找不到这个对象,从而避免重复提交。

    其中struts.xml中的配置如下:

        <package name="test" namespace="/" extends="struts-default">    
        <action name="input" class="com.wbs.InputAction">
                <result>/input.jsp</result>                        
            </action>
            <action name="user" class="com.wbs.UserAction">
                <result>/addOK.jsp</result>            
                <interceptor-ref name="defaultStack"></interceptor-ref>
                <interceptor-ref name="token"></interceptor-ref>
                <result name="invalid.token">/error.jsp</result>
            </action>
        </package>

    访问的时候先访问input这个页面,在这个页面中输入要提交的数据,则会找到相应的action去处理。但是需要注意的是在<intercptor-ref name="defaultStack"/>这个一定要在<interceptor-ref name="token"/>这个之前,因为token是在默认的加载完了之后去继续处理,在<interceptor-ref name="token"/>这个之后,要加上<result name="invalid.token">/xxx.jsp</result>。因为当token拦截器拦截住一个页面的时候,会默认的找invalid.token这个action,吧处理的结果交给这个aciton去处理。

     

  • 相关阅读:
    线段树lazy标记??Hdu4902
    3D游戏引擎〇 開始
    实时分析之客户画像项目实践
    ubuntu14.04系统中virtualbox安装Oracle VM VirtualBox Extension Pack包
    《Android源代码设计模式解析与实战》读书笔记(二十二)
    最长递增子序列的数量
    springmvc学习笔记(19)-RESTful支持
    hadoop(三):hdfs 机架感知
    hadoop(二):hdfs HA原理及安装
    hadoop(一):深度剖析hdfs原理
  • 原文地址:https://www.cnblogs.com/wbs19950305/p/8831387.html
Copyright © 2011-2022 走看看