我用struts2添加一个Cookie
贴代码:System.out.println("开始存储");
Cookie loginName = new Cookie("loginName", userName);
loginName.setMaxAge(60 * 60 * 24); //24小时有效
response.addCookie(loginName);
System.out.println("存储结束");Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
System.out.println(cookies[i].getName()+"="+cookies[i].getValue());
}测试一:
我新增一个Cookie,立马查询Cookie发现没有该cookie的结果
我刷新action,结果就出来了
测试二
我再新增Cookie,再看结果,出现的是上一次的结果,我在jsp页面打印,情况一样
反复测试,结果:
总是慢一拍,结果总是上一次的,说明cookie添加后要等吗?

有人能解答吗?

解决方案 »

  1.   

    没理解清楚response和request关于cookie生命周期的差异。response中增加cookie,是将这个增加的信息发送给浏览器,这样浏览器才会将其加入本地cookie中,并在下一次请求服务器时同步提交给服务器。request中的cookie,是浏览器请求服务器时同步提交过来的cookie值。
      

  2.   

    +++解释的很清楚了,request就像还钱,还的是上次的钱,response.addCookie()呢就像借钱.整个过程就是request.getCookies()还上次的钱,response.addCookie()又借给他一次钱.response.addCookie()借给他的钱要等下一次request.getCookies()才能还上.
      

  3.   

    这你到baidu上去搜一下吧。会有很多的