Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2316215
  • 博文数量: 252
  • 博客积分: 5472
  • 博客等级: 大校
  • 技术积分: 3107
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-17 18:39
文章分类

全部博文(252)

文章存档

2012年(96)

2011年(156)

分类: 系统运维

2011-12-16 16:11:15

在客户端可以通过JavaScript脚本来控制表单提交的次数 我们可以在JavaScript脚本中设置一个变量 初始将其设为true 当提交后 将它设为false 根据该变量的值为true还是false 来决定是否提交表单
 
1  index.jsp
核心代码:
  1. <script type="text/javascript">
  2.   var checkSubmitFlag = true;
  3.   function checkSubmit(){
  4.     if(checkSubmitFlag ==true){
  5.       //document.theForm.btnSubmit.disable=true;
  6.       document.theForm.submit();
  7.       checkSubmitFlag = false;
  8.      }
  9.     else{
  10.      alert("你已经提交了表单,请稍等!");
  11.      }
  12.    }

  13.  </script>
    .......
 
2  HandlerServlet.java
  1. package servlet;

  2. import java.io.IOException;
  3. import java.io.PrintWriter;

  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;

  8. import org.sunxin.ch19.util.TokenProcessor;

  9. public class HandlerServlet extends HttpServlet
  10. {
  11.     int count=0;
  12.     public void doPost(HttpServletRequest req, HttpServletResponse resp)
  13.                     throws ServletException,IOException
  14.     {
  15.         resp.setContentType("text/html;charset=GBK");
  16.         PrintWriter out=resp.getWriter();
  17.         
  18.         TokenProcessor processor=TokenProcessor.getInstance();
  19.         if(processor.isTokenValid(req))
  20.         {
  21.             try
  22.             {
  23.                 Thread.sleep(5000);
  24.             }
  25.             catch(InterruptedException e)
  26.             {
  27.                 System.out.println(e);
  28.             }
  29.                 
  30.             System.out.println("submit : "+count);
  31.             if(count%2==1)
  32.                 count=0;
  33.             else
  34.                 count++;
  35.             out.println("success");
  36.             out.close();
  37.     }
  38. }
 
不足之处:
 
1  当现实成功之后 用户点击刷新 将导致表单再次提交
2  当用户点击后退按钮  也会再次提交表单
 
阅读(1355) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~