按f5会执行servlet,就说明你的页面又提交了一次,也就是说,你的提交是无条件的,只要刷新了就提交; 应该在form提交时设置一个flag,或者按扭触发提交动作。

解决方案 »

  1.   

    用response.sendRedirect()就行了,不过你的servlet是查询的,应该没什么问题吧!
    还有,你的数据库连接不关,估计刷新不了几次就玩完了吧,汗~~
      

  2.   

    我想是不是和地址栏显示的地址有关系,用forward,地址不变,所以servlet又执行了一遍,建议用sendRedirect(),也许可以解决,不敢确定,呵呵
      

  3.   

    是啊,我也喷到过, forward 过去的时候, 浏览器的地址栏里还是上次的地址,所以你 refresh 就又来一次了, 我也用 sendRedirect ,但是有时候 redirect 不能达到我的目的,于是把所有的东西都放到 参数中再重定向, 如果需要安全就稍微 加密或 Base64 变换一下。
      

  4.   

    一种返回的方法是由一个action来执行查询动作,把数据存入session,然后重定向到你需要返回的页面,在那边你就可以通过session来读出你的数据.
      

  5.   

    你是不是通过刷新又提交到servlet了呢?