第一次提交:
1.生成token放在redis中和页面缓存中
JSONObject json = new JSONObject();
String redisSession = getBgCurrentRedisSession(request);
HashOperations opsForHash = jedisTemplate.opsForHash();
String token = redisSession + System.currentTimeMillis();
opsForHash.put("subMitToken", token, 0);
json.put("token", token);
return json.toString();
<input type="hidden" id="token" name="token" value="${token}"/>
2.提交时让token中的值加1
根据页面缓存中的token 拿取redis中存放的数据:
String token = request.getParameter("subMitToken");
HashOperations opsForHash = jedisTemplate.opsForHash();
Object object = opsForHash.get("subMitToken", token);
if (null != object) {
Integer num = Integer.valueOf(object.toString()) == null ? 0
: Integer.valueOf(object.toString());
if (num == 1) {
json.put("msg", "请勿重复提交相同数据");
return json.toJSONString();
}
opsForHash.put("subMitToken", token, num + 1);
}