`

jsp 刷新 重复提交

    博客分类:
  • java
 
阅读更多
在jsp中,当我们刷新的时候,会重复提交,本文将讨论一下这个问题。

首先把代码写出来,然后解释一下思路



jsp页面上加一个hidden字段





<input type="hidden" name="clientToken" value="${token }">



servlet里面

String clientToken = request.getParameter("clientToken");
		
String sessionToken = (String)session.getAttribute("sessionToken");
		
String time = String.valueOf(System.currentTimeMillis());
		
		
if(sessionToken==null||clientToken.equals(sessionToken)){
			
			
	System.out.println("这是提交的");
	session.setAttribute("sessionToken", time);
	session.setAttribute("token", time);
			
			
}else{
			
	System.out.println("这是刷新的");
}




下面 解释一下代码


当我们第一次提交的时候
String sessionToken = (String)session.getAttribute("sessionToken");
sessionToken的值是null

会执行if里的代码


第一次提交完,这时候返回到jsp上之后hidden字段里有值了

1.此时你刷新,String clientToken = request.getParameter("clientToken");获取clientToken值仍然为空,因为刷新,只是重复提交上一次的表单。
这时候clientToken.equals(sessionToken)判断不成立,所以执行else里的代码,也就是"这是刷新"
2.你不刷新,而是提交的话 clientToken.equals(sessionToken)是成立的。



分享到:
评论

相关推荐

    重复提交解决实例

    2.已经提交成功,然后又刷新页面重复提交 3.已经提交成功,然后点击后退,然后又重复提交。 重复提交的缺点: 1.加重了服务器的负担。 2.导致错误的操作。 实例:如果在淘宝上买一个东西,然后点击了订单提交,然后...

    防重复提交代码

    java开发时防止jsp刷新造成的重复提交 经测试完美

    JSP刷新页面表单重复提交问题解决办法分享

    使用sessionID和时间戳作为标识,关键代码如下: 代码如下:public class SswpdjAction extends BaseAction{  public String execute(){ /**业务代码**/ ……………. //设置标识 this.setSessionToken();...

    JSP防止网页刷新重复提交数据的几种方法

    本篇文章主要介绍了网页如何防止刷新重复提交与如何防止后退的解决方法,具体如下: 提交后禁用提交按钮(大部分人都是这样做的) 如果客户提交后,按F5刷新怎么办? 使用Session 在提交的页面也就是数据库处理之前: ...

    jsp-.rar_flag提交

    jsp防止重复提交 这做最好结合让jsp页面过期一起用。当用户返回到上一表单页面时(按backspase键、返回按钮,右击--返回),让表单页面过期。这样才可以让用户主动的刷新jsp而从新生成一个session.setAttribute(...

    jsp 重复提交问题

    看了网上的,有几种方法: 1 在你的表单页里HEAD区加入这段代码: 代码如下:&lt... 2 生成一个令牌保存在用户session中,在form中加一个hidden域,显示该令 牌的值,form提交后重新生成一个新的令牌,将用户提交的令牌和

    JSP实用技巧集合,jsp编程的一些小技巧总结

    103.使用session对象防止表单重复提交? 104.获取用户真实IP地址? 105.获取请求中的所有参数? 106.获取完整的请求URL? 107.在重新显示表单时保留用户已经输入的合法数据? 108.使用选代器遍历集合 109.使用特定字符串...

    jsp编程技巧集锦

    使用session对象防止表单重复提交? 104.获取用户真实IP地址? 105.获取请求中的所有参数? 106.获取完整的请求URL? 107.在重新显示表单时保留用户已经输入的合法数据? 108.使用选代器遍历集合 109....

    jsp跳转的五种方式

     另外要注意:它不能改变浏览器地址,刷新的话会导致重复提交  4.修改HTTP header的Location属性来重定向  通过设置直接修改地址栏来实现页面的重定向。  jsp文件代码如下: response.setStatus...

    详谈表单重复提交的三种情况及解决方法

    第一种情况:提交完表单以后,不做其他操作,直接刷新页面,表单会提交多次。 – 在servlet中写一句输出,用来判断是否提交多次 System.out.println(已经插入); request.getRequestDispatcher(/login_success.jsp)...

    ajax跨页面提交表单

    前面提到过重复提交表单问题,处理token口令校验、重定向之外,还有一种经常使用到的方法就是新页面处理表单提交,完成后关闭当前页面,并刷新之前发送请求的页面。 这里使用了artDialog.js 1、文件结构 2、user....

    js做的cookie记忆功能

    当页面使用ajax 提交表单时,默认页面是没有缓存历史记录功能的,于是写了一个基于js的cookie lis记录功能,类似于百度搜索后下次还能看到之前输入的数据。省去了大量重复录入工作。

    功能测试点

    重复提交表单:一条已经成功提交的纪录,返回后再提交,看看系统是否做了处理。对于Web系统来说,可以通过浏览器返回键或者系统提供的返回功能。  15. 检查多次使用返回键的情况: 在有返回键的地方,返回到原来页面...

    JavaScript完全自学宝典 源代码

    \ajaxmodel\amel\html\autoRefresh.jsp 自动刷新网页的客户端页面。 \ajaxmodel\amel\html\processBar.jsp 显示进度条的客户端页面。 \ajaxmodel\src\bonze\UserValServlet.java 完成验证的服务器端。 \...

    JavaScript网页特效范例宝典源码

    实例080 防止表单重复提交 124 实例081 自动提交表单 125 实例082 通过for循环获取表单元素的中文名称 126 实例083 可以提交到不同处理页的表单 127 第3章 实用JavaScript函数 129 3.1 数据验证 130 实例084 通过...

    国人编写的、超牛的、基于jQuery插件式、监听模式(无侵入)的html页面form表单通用验证框架

    * 验 证 码:请输入验证码" size="8" name="valicode"/&gt;&lt;img src="/validateCode.jsp?随机数" alt="" /&gt;&lt;div id="valicodeTip"&gt; 注册" /&gt; [/code] 上面每控件后面都一个标签是用来显示消息的。 Html的JavaScript:...

    java jdk实列宝典 光盘源代码

    内容: 1 转换基本数据类型;运算符;计算阶乘; 2 复数类;java的参数传递;自定义形状类;... jsp无刷新聊天室; 设置和读取cookie; 上传文件; 用servlet生成图形验证码; 用servlet实现分页查看数据库;

Global site tag (gtag.js) - Google Analytics