解决办法:
...
connection.close();
...
response.sendRedirect("?");
return;

解决方案 »

  1.   

    你不要把添加记录的代码写在有列表的那个JSP里,要写在添加的那个JSP里,添加完了用response.sendRedirect跳转回列表页
      

  2.   

    to  guangchao() :
         提交方式不是自动的是指什么?
    to w1w1w1w(可凭身份证号取回丢失的密码修改身份证)
         connection.close()是在执行完后已经做了的,我在跳转页面的时候用的是getServletContext().getRequestDispatcher(nextPage).forward(request, response),跟这个有关系吗?
      

  3.   

    我把我的执行流程说一下:页面提交后,在servlet中处理,然后通过getServletContext().getRequestDispatcher(nextPage).forward(request, response)返回下一个页面,这是一个流程,处理完后所有的数据库连接释放掉了。
    但为什么转到nextPage页面去以后,再用右键刷新一下就会把原来那些执行动作再做一遍呢?有什么办法让页面不提交信息到后台去?
      

  4.   

    to LxcJie(肖冲*爱*捷捷) :
        那是不是说这种情况是没有办法避免的?
      

  5.   

    三个页面就没问题:
    1:信息录入页面
    2:信息提交页面(调用javabean等东西)
    3:提交结果页面这样你刷新只是刷新结果页面,按你的做法是刷新信息提交页面
      

  6.   

    to zhukejun(不管政府、别人怎么样,我的抗日从抵制日货开始) :
       我现在就是两个页面的,但是提交的链接是通过两个码来传输的,一个为交易码,另外一个为子码,一个页面链接由这两个组成,比如交易码为user,子码有add,del等,现在当我执行完一个增加的动作的时候,是提交user和add这两个码到后台,再具体处理。现在问题是再次刷新的时候,会把这两个码又提交上去。真是头疼死了
      

  7.   

    刷新等于再次提交,我就遇到过这个问题,当我提交完后向数据库添加了一条记录,然后弹出提示框"添加成功!",再跳转到原来页面,代码是:location.href="aaaaa?action=aaa";
    按F5时会又提交一次.
    不过我要求做页面的把静态页面都改成框架式就不会有这个问题了,你不妨试试.
    不过跳转的代码改为:parent.location.href=".......";
      

  8.   

    to tanyun1111(TY):
         我现在用的就是框架,按F5刷新是没有问题,但是如果在框架里面右键->刷新就要出现那种情况to Little_qd(中上):
         跳转的方式怎么不对?能给出解决办法吗?各位应该碰到过这种情况吧?
      

  9.   

    是不是因为刷新后重定向的问题  你在提交这个页面后 在给它定向到 初始化的页面
    比如action="init.do" 呵呵
      

  10.   

    to wsmall1(最近很忙) :
        现在我也是跳转到其他页去的,但是好像原来那个链接在那个页上保留了,所以我刷新的时候会再次把原来的链接提交上去。是getServletContext().getRequestDispatcher(nextPage).forward(request, response)的缘故吗?
      

  11.   

    就是提交以后页面变了,但是你看ie的地址栏里的地址没变,你重新刷新就是刷新的以前的叶面,当然重复提交了。forward(request, response)改成response.sendRedirec("index.jsp"),response.sendRedirec("index.jsp")这时jsp里的写法,但是servlet里面具体不清楚,应该差不多,你自己试吧
      

  12.   

    也就是说只要在servlet里面用forward的都会有这种问题?
      

  13.   

    我原来也遇到这种情况,我用得是struts也有这情况,但是最近看了一本好书,知道如何去做了,呵呵,我说说它得原理吧,当进入add.jsp页面之前,先生成一个新得令牌(可根据系统时间,网卡Id什么得生成),把这个令牌存到session中,然后进入add.jsp,用<input type=hidden>存放令牌值,然后数据提交到adddata.jsp,此时,先判断提交上来得令牌和session中得令牌是否一致,如果一致则把数据存入数据库,当数据成功存入数据库后,立即从session中删掉此令牌返回,如果刷新页面,则到adddate.jsp页面得时候,就会判断出提交上来得令牌和session中令牌不一致(因为session中得令牌被删掉了)于是不能添加到数据库,返回,这个方法也可以避免利用IE后退按钮再次提交数据,在struts中有自动生成令牌得api,不用自己编写生成令牌得函数了,呵呵参考:org.apache.struts.action.Action中:     protected boolean isTokenValid(javax.servlet.http.HttpServletRequest request)     protected void resetToken(javax.servlet.http.HttpServletRequest request)     protected void saveToken(javax.servlet.http.HttpServletRequest request)jsp也可以利用其原理实现防止重复提交得问题
      

  14.   

    这个问题是很基本的问题吧,用struts可能要麻烦一点,用纯粹的jsp没有什么难的:
    add.jsp用来填写表单。
    addSave.jsp用来进入数据库操作,在该页处现完成后再用
        <script language="javascript">
    window.document.location="add.jsp";
        </script>
    跳回add.jsp就行了。
      

  15.   

    http://community.csdn.net/Expert/topic/3357/3357252.xml?temp=.6883203