首页>>程序代码>>JSP防止重复提交的几种解决方法总结
JSP防止重复提交的几种解决方法总结
来源: 时间: 2014-12-28 18:36:26

1.在你的表单页里HEAD区加入这段代码:   

<META HTTP-EQUIV="pragma" CONTENT="no-cache">   

<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">   

<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">  

2.设置令牌方式   

生成一个令牌保存在用户session中,在form中加一个hidden域,显示该令   

牌的值,form提交后重新生成一个新的令牌,将用户提交的令牌和session   

中的令牌比较,如相同则是重复提交  

3.服务器端重定向

在你的服务器端控件的代码中使用Response.Redirect("selfPage")语句。但是 

大多的数都不使用这种方法。  

方法还有很多。。。  

4.提交一次后按钮变灰

<input type="button" value="提交"  

onclick="this.disabled=true;this.form.submit()">  

5.

在JSP页面的FORM表单中添加一个hidden域     

<input type="hidden"   name="url"value=<%=request.getRequestURL()%> >      

在你的serverlet中添加如下语句     

String url=request.getParameter("url");     

response.sendRedirect(url);     

我一般都是采用这样的方法返回JSP页面的,不太明白你说的重复刷新是什么概 

念    

6.ajax 无刷新提交  

7.Web开发中防止浏览器的刷新键引起系统操作重复提交  

怎么解决呢?重定向可以解决页面刷新带来的数据的重复提交的问题,我们自然 

可以利用重定向的方式来解决这个问题。但是struts的action里面 

mapping.findword();跳转的话,默认的是在工程文件夹里面找要跳转的页面。 

这种情况,怎么解决呢?  

修改struts-config.xml 文件, 在action里面有一个redirect重新定向的 

属性,struts中默认的是false,添加这个属性,改成true,在forword中写 

上要跳转页面的绝对或者相对地址就行了  

修改如下:  

<action-mappings>  

<action attribute="newsActionForm" name="newsActionForm"  

   input="/addnews.jsp" path="/newsAction" parameter="method"  

   scope="request" type="com.yongtree.news.action.NewsAction">  

   <forward name="list" path="/listnews.jsp" redirect="true"></forward>  

   <forward name="error" path="/addnews.jsp"></forward>  

</action>  

</action-mappings>  

本页地址:http://www.easytd.com/chengxudaima/d_14122818549.html

上一篇:ASP .NET中使用开源免费库操作Excel 下一篇:优化PHP代码性能的40条小技巧