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="提交" οnclick="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>