我用Cookies来记录用户是否登录。用Struts框架。
发现 登陆-->写Cookies-->转到success的jsp页面读取Cookies
这时读出来的Cookies不是新写的Cookies,网上说是因为Cookies在读的时候还在buffer中没有response出来。
于是我就在response.addCookie(passCookie);后面加上response.flushBuffer();但是报错
错误代码:
严重: Servlet.service() for servlet action threw exception
java.lang.IllegalStateException: Cannot forward after response has been committed
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:312)
.........................(省略n多)大家看看这么解决这问题?

解决方案 »

  1.   

    读取Cookie时只能读取直接父路径的Cookie。
      

  2.   

    你可以试试同时写cookie和session,本次登陆的信息从session里面读
    事实上cookie也只不过是一个历史记录的作用来增加用户体验罢了
      

  3.   

    没有必要用response.flushBuffer,你仔细看看,肯定是读写哪里出现问题了。
    我这里读写都是正常的。
      

  4.   

    如果你是用ActionForward转的话,就不会正常了,因为转到新的页面时,cookies还没修改过。好像是转到新页面之后,才修改cookies。所以在新页面是看不到改变,这时刷新一下,这是读得就是改变之后的cookies了。大家没遇到过这种问题吗?