• struts2 防止表单的重复提交


    防止表单重复提交(拦截器)

          1、回顾之前的解决办法:

                               

          2、Struts2中的解决办法:

               2.1、使用重定向

                                      <result type="redirect">/success.jsp</result>

                                         遗留的问题:防不住后退,再提交。

               2.2、使用<s:token/>生成令牌配合token拦截器            

     1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     2 <%@ taglib uri="/struts-tags" prefix="s" %>
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     4 <html>
     5   <head>
     6     <title>struts2中的表单重复提交</title>
     7   </head>
     8   <body>
     9       <%--使用一个struts2的内置标签 s:token --%>
    10        <s:form action="login1">
    11            <s:token></s:token>
    12           <s:textfield name="name" label="用户名" />
    13           <s:submit value="提交"/>
    14       </s:form>
    15   </body>
    16 </html>
    View Code.jsp

    struts.xml 中配置 token拦截器

    1     <action name="login" class="com.itheima.web.action.Demo1Action" method="login">
    2             <!-- 由于默认的拦截器栈中没有令牌的拦截器,所以需要把默认的拦截器栈配上 -->
    3             <interceptor-ref name="defaultStack"></interceptor-ref>
    4             <!-- 使用struts2提供的一个令牌的拦截器:token -->
    5             <interceptor-ref name="token"></interceptor-ref>
    6             <!--<result>/success.jsp</result> 请求转发不行 -->
    7             <result type="redirect">/success.jsp</result>
    8             <result name="invalid.token">/message.jsp</result>
    9         </action>
    struts.xml

                                         点击后退的时候,会提示

                               

                                         配置结果视图

                                         遗留的问题:此种解决方式,是产生了错误之后再告知用户,你错了。

                  2.3、使用<s:token/>生成令牌配合tokensession拦截器

                               

    1         <action name="login1" class="com.itheima.web.action.Demo2Action" method="login">
    2             <!-- 由于默认的拦截器栈中没有tokenSession的拦截器,所以需要把默认的拦截器栈配上 -->
    3             <interceptor-ref name="defaultStack"></interceptor-ref>
    4             <!-- 使用struts2提供的一个tokenSession的拦截器:token -->
    5             <interceptor-ref name="tokenSession"></interceptor-ref>
    6             <result type="redirect">/success.jsp</result>
    7         </action>
    struts.xml
  • 相关阅读:
    java.util.Properties类
    java中log日志的使用(完全版)
    解读HDFS(转载)
    说明
    定时器中断和串口
    python day3
    python day2 基础总结:列表,元组,字典,集合
    python第二天作业:购物车
    作业总结:
    python第一天作业:用户登陆
  • 原文地址:https://www.cnblogs.com/soficircle/p/7062360.html
Copyright © 2020-2023  润新知