首页 > 其他 > 详细

struts2 防止表单的重复提交

时间:2017-06-22 01:00:37      阅读:351      评论:0      收藏:0      [点我收藏+]

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

      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

 

struts2 防止表单的重复提交

原文:http://www.cnblogs.com/soficircle/p/7062360.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!