本帖最后由 kaohum 于 2012-08-31 18:06:44 编辑

解决方案 »

  1.   

    Cannot call sendRedirect() after the response has been committed
    提示信息其实很清楚,如果response已经提交过了,就无法再发送sendRedirect了。因为重定向,其实是HTTP-302,如果你之前已经写过数据,那么默认就是HTTP-200,浏览器都收到HTTP-Head信息了,就没机会做重定向了。
    所以,在进行:
      resp.sendRedirect()
    之前,必须先保证没有任何的输出,包括:
    1、Cookie;
    2、resp.getWriter()写文本信息;
    3、已经发送过重定向。
    重点检查下这些问题吧,如果你写了Filter,或者Servlet已经做过forward,也要注意看看。
      

  2.   


    我知道啊。你说的这些我都注意了。过滤器只用了伪静态,但是我把伪静态取消掉,一样的会报错。
    奇怪的是程序不是每次都报错。貌似是随机的。jsp页面提交到servlet,servlet做好判断后返回给同一个jsp页面。流程是这样,但是多次提交后就会出错。
    麻烦帮忙分析分析呗。~~要弄哭了
      

  3.   

    找到问题了。
    是Kaptcha这个验证码控件搞的鬼。。
    怎么会冲突呢。
      

  4.   

    找到问题了。
    是Kaptcha这个验证码控件搞的鬼。。
    怎么会冲突呢。
      

  5.   


    对Kaptcha没啥研究不好意思,帮不了你了
      

  6.   

    注意一点:
    同一个线程中,response不能两次响应客户端
      

  7.   

    //注释掉下面的代码就没有这种错误了。
    req.getSession().setAttribute("error", "用户名或密码不能为空!");