token处理重复表单提交备忘
来源:互联网 发布:java的编译原理 编辑:程序博客网 时间:2024/05/10 14:03
first.jsp 只有关键代码
<%
//生成一个令牌值
org.apache.struts.util.TokenProcessor.getInstance().saveToken(request);
%>
<form action="second.jsp" method="post">
<!-- org.apache.struts.action.TOKEN 不能修改 -->
<input type="hidden" name="org.apache.struts.taglib.html.TOKEN"
value="<%=session.getAttribute("org.apache.struts.action.TOKEN")%>" />
<label>username<input type="text" name="username" value="" /></label><br/>
<label>password<input type="text" name="password" value=""/></label><br/>
<label><input type="submit" name="Submit" value="Submit" /></label>
</form>
===============================================================
second.jsp
Thread.sleep(1500); //可以看到点击多次提交后的效果
String username="";
String password="";
String isNew = "OK";
//判断令牌是否和session中一样,true:同时生成新令牌,缺省isTokenValid(request)为false
if(org.apache.struts.util.TokenProcessor.getInstance().isTokenValid(request,true)) {
username=request.getParameter("username");
password=request.getParameter("password");
org.apache.struts.util.TokenProcessor.getInstance().resetToken(request);
} else {
org.apache.struts.util.TokenProcessor.getInstance().saveToken(request);
isNew = "重复提交";
}
%>
username:<%=username%>
<br/>
password:<%=password%>
<br/>
是否重复提交:<%=isNew %>
=================================================================
PS:这个方法并不阻止用户多次点击按钮,在first页面最好还是控制提交按钮
另外:
使用重定向防止F5刷新页面,也就是重复提交,然后在请求页面增加
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
%>
利用<meta>
<meta http-equiv="Pragma" content="no-cache">
- token处理重复表单提交备忘
- struts2-Token Interceptor(处理表单重复提交)
- token防止表单重复提交
- token-防止表单重复提交
- springMVC处理表单重复提交,包含页面多个嵌套提交的情况,自定义token处理
- 处理表单重复提交
- Struts -- Token机制(解决表单重复提交)
- Token(令牌) 机制(表单重复提交)
- struts2防止表单重复提交 token
- struts2之防止表单重复提交 token
- 《struts---利用Token防止表单重复提交》
- 运用session token防止表单重复提交
- session token 防止表单重复提交
- php表单加入Token防止重复提交
- structs2 防止表单的重复提交token
- <s:token/>防止表单重复提交
- Struts2利用token防止表单重复提交
- stucts2 表单重复提交拦截器 token
- How to configure SmartPhone for debugging in VS 2008
- Windows Socket五种I/O模型——序言
- PHP cookie和session的分析
- .NET ArrayList 的排序的使用
- 网络视频专业技术之分辨率和电视线的区别
- token处理重复表单提交备忘
- 自定义标签------forEach循环
- Password Management Procedures
- C++中const用法总结
- table frame rules
- Windows Socket五种I/O模型——select模型
- 关于datediff和now(),gedate(),ASP和SQL的不同处
- PHP正则
- 其实世界上有天赋创造的人太多了,只是他们大部分都被生活给诱惑了。