• 防止表单重复提交的两种方式


    1)通过重定向

    <!-- 防止表单提交重复的方式:重定向redirectAction -->
    <action name="Action1" class="com.struts.Action1"
    method="myExecute">
    <result name="success" type="redirectAction">
    <param name="actionName">Action2</param>
    <param name="username">${username}</param>
    <param name="password">${password}</param>
    <param name="usernameAndPassword">
    ${usernameAndPassword}
    </param>
    </result>
    <!-- 在action使用拦截器 -->
    <interceptor-ref name="theInterceptor1"></interceptor-ref>
    <interceptor-ref name="theInterceptor2"></interceptor-ref>
    <interceptor-ref name="theInterceptor3">
    <param name="includeMethods">execute</param><!-- 拦截器执行, -->
    <param name="excludeMethods">myExecute</param><!-- 拦截器不执行,方法会执行 (此行删除,拦截器也不会执行)-->
    </interceptor-ref>
    <!-- 最后一定要配置默认defaultStack -->

    <interceptor-ref name="defaultStack"></interceptor-ref>
    </action>

    2)通过Session Token (Session 令牌):当客户端请求页面时,服务

    器会通过token 标签生成一个随机数,并且将该随机数放置到session

    当中,然后将该随机数发向客户端;如果客户第一次提交,那么会将

    该随机数发往服务器端,服务器会接收到该随机数并且与session 中

    所保存的随机数进行比较,这时两者的值是相同的,服务器认为是第

    一次提交,并且将更新服务器端的这个随机数值;如果此时再次重复

    提交,那么客户端发向服务器端的随机数还是之前的那个,而服务器

    端的随机数则已经发生了变化,两者不同,服务器就认为这是重复提

    交,进而转向invalid.token 所指向的结果页面。

    <!-- 防止表单提交重复的方式: session token -->
    <action name="token" class="com.struts.TokenAction">
    <result name="success">/tokenSuccess.jsp</result>
    <result name="invalid.token">/tokenFail.jsp</result>
    <interceptor-ref name="token"></interceptor-ref>
    <interceptor-ref name="defaultStack"></interceptor-ref>

    </action>

  • 相关阅读:
    jQuery Validate验证框架详解
    struts异常:No result defined for action
    spring问题:java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive
    Mybatis异常:java.lang.ClassNotFoundException: org.mybatis.spring.SqlSessionFactoryBean
    HttpServletRequest cannot be resolved to a type。
    struts文件异常Included file cannot be found
    JS中获取session中传过来的值对象
    [JS]Math.random()
    用photoshop将图片四角变成圆角
    SSH的jar包下载地址
  • 原文地址:https://www.cnblogs.com/a892647300/p/2645952.html
Copyright © 2020-2023  润新知