在jdk1.4.2.07上经过测试
  经过一次Filter之后,response.sendRedirect就不好用了
  而且出现 Response can not forward ,because response already commited!
  大概是这个意思。在jdk1.4.2.09和jdk1.3.1.15上经过测试
  非常好用,而且也没有错误发生谁高手帮帮忙!

解决方案 »

  1.   

    HttpServletResponseWrapper(HttpServletResponse response)
    sendRedirect
    用这个封装对象的重定向方法
      

  2.   

    楼上,能具体说说吗
    我的重定向是在jsp页面做的
      

  3.   

    还是不行啊
    我通过另一个页面测试又出来如下错误
    java.lang.IllegalStateException: Current state = FLUSHED, new state = CODING_END
    at java.nio.charset.CharsetEncoder.throwIllegalStateException(CharsetEncoder.java:933)
    at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:529)
    at sun.nio.cs.StreamEncoder$CharsetSE.flushLeftoverChar(StreamEncoder.java:358)
    at sun.nio.cs.StreamEncoder$CharsetSE.implClose(StreamEncoder.java:414)
    at sun.nio.cs.StreamEncoder.close(StreamEncoder.java:160)
    at java.io.OutputStreamWriter.close(OutputStreamWriter.java:222)
    at java.io.PrintWriter.close(PrintWriter.java:137)
    at filter.GZIPResponseWrapper.finishResponse(GZIPResponseWrapper.java:28)上面所说的at filter.GZIPResponseWrapper.finishResponse(GZIPResponseWrapper.java:28)
    就是 out.close()
    关闭输出流的操作
      

  4.   

    找到答案了
    http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5005419
    这个是jdk的bug, bug id是5005419不知道在filter里面强行catch这个 IllegalStateException 会不会有影响