比如在增、删、改完后,刷新页面时会重新提交上次的请求。
解决办法:
在页面的<body></body>中添加token令牌:
1. 在页面中定义token:
<%@ page import = “java.util.Random”%>
<%
Int token = new Random().nextInt();
Session.setAttribute(“token”,token);
%>
<html>
<head><title></title></head>
<body>
定义token
设置一个隐藏域把token的值传入后台
<input type=”hidden” name = “token” value=”<%=token%>”>
</body>
</html>
2. 在Action中:
首先要定义一个token,并提供get 和set 方法
定义一个int型变量接受session中token的值
Int temp = 0;
Try{
Temp = Integer.parseInt(ActionContext.getContext().getSession().get(“token”).toString());
}catch(){
}
If( temp == token){
第一次时,temp与token肯定相等 ,放过执行,然后在remove掉token。
ActionContext.getContext().getSession().remove(“token”);
}else{
重复提交, 此时token的值为空.
ActionContext.getContext().getSession().remove(“token”);
Return 返回页面;
}
本文介绍了一种通过在页面中添加token令牌来防止用户在刷新页面时重复提交表单的方法。具体实现包括在页面加载时生成并保存一个随机的token值,并将其作为隐藏字段传递到服务器端。服务器端通过比较接收到的token值与会话中保存的token值来判断是否为重复提交。

被折叠的 条评论
为什么被折叠?



