`

Jsp 防止二次提交(重复提交)

    博客分类:
  • Jsp
阅读更多

servlet页面代码:@每次请求时产生一个token(一般为时间戳),存于session中并随之用hidden提交,在servlet中判断接收到的token和session中的是否一致来判断是否重复提交,如果不是则重新产生一个   token存于session中覆盖原来的token。

@当用户返回或者刷新重复请求servlet时,servlet判断token是否一致,由于请求方没有产生新的token,所以和servlet新产生的token不一致,认为重复提交。

@当用户在请求页面刷新也就是重新在请求页面产生token,这时新的token覆盖servlet产生的token,这时token一致,认为是一个新的请求。

@请求的jsp页面代码:
<body>
    
<%
           
long token=System.currentTimeMillis();    //产生时间戳的token
            session.setAttribute("token",token);    
           
    
%>
    
<form  action="isRepeat" method="post">
        
<input type="text"  name="username"/>
        
<input type="text"  name="password"/>
        
<input type="hidden" value="<%=token %>" name="token"/>   <!-- 作为hidden提交 -->
        
<input type="submit" value="提交"/>
    
</form>
</body>

 

@servlet页面代码:

 protected void doPost(HttpServletRequest req, HttpServletResponse resp)

            throws ServletException, IOException {
         req.setCharacterEncoding(
"utf-8");
         resp.setCharacterEncoding(
"utf-8");
         resp.setContentType(
"text/html,charset=utf-8");
         String username
=req.getParameter("username");
         String password
=req.getParameter("password");
         
long token=Long.parseLong(req.getParameter("token"));
         
long tokenInSession=Long.parseLong(req.getSession().getAttribute("token")+"");
         
if(token==tokenInSession){
            resp.getWriter().println(
"ok ");
                        
//如果是第一次请求,则产生新的token 
                        req.getSession().setAttribute("token", System.currentTimeMillis());
             
         }
         
else
         {
             
            resp.getWriter().println(
"do not repeat submit"); 
         }
    }

分享到:
评论

相关推荐

    [Jsp]防止页面表单重复提交的解决方法

    二、防止表单重复提交的方法 1. **使用JavaScript禁用提交按钮** 在表单提交时,可以使用JavaScript来禁用提交按钮,以防止用户连续点击。例如: ```javascript function disableSubmit() { document....

    JSP避免Form重复提交的三种方案

    在Web开发中,尤其是使用JavaServer Pages (JSP)时,Form表单的重复提交问题是一个常见的挑战。这可能导致数据不一致性和服务器资源的浪费。本文将探讨三种防止JSP表单重复提交的方法。 首先,我们可以使用...

    JSP_重复提交_解决方法

    ### JSP重复提交问题及其解决方法 #### 一、引言 在Web应用程序开发中,尤其是在使用Java Server Pages (JSP)技术时,一个常见的问题是重复提交数据。当用户不小心刷新了页面或按下了浏览器的“后退”按钮时,可能...

    struts token 防止页面刷新,重复提交

    Token机制是一种常见的防止重复提交的方法,其核心思想是为每一次表单提交生成一个唯一的Token值,并将这个Token值存储在客户端(通常是在表单中作为一个隐藏字段),同时也在服务器端记录该Token值。当表单被提交时...

    防止表单重复提交

    这种方法有效防止了用户短时间内多次点击提交按钮的情况,但并不能应对用户刷新页面或使用浏览器的前进/后退功能导致的重复提交。 第二种情况,用户在表单提交后刷新页面,会导致浏览器重新发送之前的POST请求,...

    防重复提交代码

    本篇文档介绍了一种在Java Web开发中防止JSP刷新造成的重复提交的方法。这种方法通过利用会话(Session)和令牌(Token)机制来实现,确保即使在用户刷新页面的情况下,也只允许一次有效提交。 #### 三、具体实现...

    Struts2解决表单重复提交

    在Web应用中,表单重复...开发者在使用时需要注意配置token相关标签和拦截器,并通过设置正确的结果视图跳转类型来防止因刷新页面导致的重复提交。通过这些方法的合理应用,可以有效地提高Web应用的健壮性和用户体验。

    struts token机制解决表单重复提交

    Struts Token机制是一种防止表单重复提交的有效策略,尤其在处理关键操作时,如金融交易或数据修改,防止用户意外或恶意多次点击提交按钮导致的数据重复性问题。下面将详细介绍Struts Token的工作原理、实现方式及其...

    Struts之Token解决表单那重复提交

    在处理用户交互时,尤其是表单提交,一个常见的问题是防止表单的重复提交。这可能导致数据的不一致性和其他问题。本文将深入探讨如何在Struts框架中利用Token机制来解决这个问题。 一、表单重复提交问题 表单重复...

    【原创】Struts2防止表单重复提交.doc

    ### Struts2防止表单重复提交的技术解析 #### 一、引言 在Web应用程序开发过程中,表单重复提交是一个常见的问题,特别是在网络环境不稳定或用户误操作的情况下。这种重复提交不仅可能导致数据冗余,还可能引起事务...

    解决在struts 中可以通过token 来重复提交的问题

    ### 解决Struts中通过Token防止重复提交的问题 在Web应用程序开发中,特别是基于MVC架构的框架如Apache Struts中,确保用户操作的安全性是非常重要的。其中一项常见且重要的安全措施是防止表单的重复提交。本文将...

    利用struts的token控制重复提交

    Struts的Token机制主要用来防止用户意外或恶意的多次提交表单,例如在刷新页面时重复提交数据。它的工作原理如下: 1. **生成Token**: 当用户访问一个需要防重复提交的表单时,服务器会生成一个唯一的Token并将其...

    struts1.2之token解决重复提交

    Token机制是一种防止重复提交的方法,它通过在客户端(通常是浏览器)和服务器之间交换一个唯一的、一次性使用的令牌来确保请求的独特性。当用户提交表单时,服务器会生成一个随机的Token并将其存储到会话(Session...

    Struts解决重复提交、上传组件+视频

    在实际开发中,我们经常会遇到两个关键问题:重复提交和文件上传。本教程将详细介绍如何使用Struts来解决这些问题。 一、重复提交问题 在Web应用中,用户可能会意外地多次点击提交按钮,导致服务器端接收到重复的...

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

    在Web开发中,表单重复提交是一个常见的问题,可能导致数据冗余或...通过以上三种方法,可以有效地防止表单的重复提交。在实际应用中,开发人员应结合具体情况选择合适的解决方案,以确保数据的一致性和系统稳定性。

    基于JSP的在线投票系统

    1. 防止重复投票:可以使用session或cookie来跟踪已投票的用户,确保每个用户只能投一次票。 2. 数据库索引:为经常查询的字段创建索引,提高查询速度。 3. 缓存技术:使用缓存(如Redis)来临时存储投票结果,减少...

    jsp无组件上传 纯源码

    9. **安全性考虑**:在实际应用中,纯JSP上传文件可能不够安全,因为它不提供诸如验证文件类型、大小限制、防止重复上传等功能。使用成熟的库如Apache Commons FileUpload可以简化这些任务,并提供额外的安全保障。 ...

    JSP做的网页投票系统

    二、JSP组件 JSP主要有以下组件: 1. JSP指令:如,用于设置页面属性,如字符编码、导入Java包等。 2. JSP动作:如&lt;jsp:include&gt;,用于包含其他文件,或者动态插入内容。 3. 脚本元素:包括声明(! %&gt;)、脚本()、...

Global site tag (gtag.js) - Google Analytics