if (session 不存在) 
這裡正確嗎?幫你UP

解决方案 »

  1.   

    if (session 不存在) }
       response.sendRedirect(错误页面);
       return;  // return 掉,不要在执行其他代码了
      

  2.   

    加上一个return吧,直接返回就可以了
      

  3.   

    加上return效果也是一样的!
    jdk1.4和1.3里面的response的生命周期不一样吗??
      

  4.   

    ...........
    if (session 不存在) {
       //response.sendRedirect(错误页面);
       //return;  // return 掉,不要在执行其他代码了
    %>
    <script>window..location.href="error.jsp"</script>
    <%
      return;
    }
      

  5.   

    在 response.sendRedirect之前不要有任何页面输出,同时加上return语句。
      

  6.   

    重定向前不可以向 response 中写入任何内容,不管是在页面中还是过滤器中。你违反了这个规则就出现问题了。问题与 response 生命周期扯不上关系。
      

  7.   

    那jdk1.3为什么可以正常转向?(再说你们说的方法都不好用啊)
      

  8.   

    <script>window.location.href="error.jsp"</script>
    ---------------你说不行吗?你试了没?
      

  9.   

    session 自动销毁了 所以判断不存在 你可以设置session生命周期跟JDK没关系 当session销毁后 你没有return所以出现错误
      

  10.   

    你们倒是给我解释,为什么jdk1.3和1.4效果完全不一样啊?
      

  11.   

    to zwp2005(洗洗涮涮)
    最简单的方法是最有效的阿,你的方法确实能解决。
    但是说明不了sendRedirec为什么在不同的jdk下效果不一样?我调查出来的结果
    我用到的压缩filter里面再一次用到response(因为是压缩肯定就用到了response的输出流)
    在jdk1.4的时候,response会在几次flush和close之后自动消失
    (flush和close是ServletOupputStream的方法,jdk环境自动调用)
    而在jdk1.3的时候,response会在整个filter里面一直有效
    当然上面的情况指的是session丢失的情况。
      

  12.   

    首先加return语句;
    ----------------------------
    这也许是关闭流时引起的,例如OutputStreamWriter close()后如果再close()在1。4
    就会抛出这样的异常。ServletOupputStream应该也是如此。
    从这方面研究下看看。