Servlet设置Cookie无效

  项目中保存用户信息用到了Cookie,之前没有太注意,今天怎么设置Cookie都无效,断点跟了无数遍,都没有找出问题所在,明明发送Cookie的代码都有执行,可是愣是找不到Cookie发送到哪里去了,使用HttpWatch也看了N多遍,响应头中就是没有发送Cookie信息。
  感觉知识太匮乏了,遇到问题根本无从下手。这下实在无计可施了,抱着试试的态度把response.sendRedirect()语句移到发送Cookie之后,奇迹就在不经意间发生了,这时才恍然大悟,Cookie设置应该在重定向之前,虽然没有找到相关的资料,但是至少得先记住这个结论,不然以后又得走弯路,今天在这里跌倒了,必须得记住了,花费太多宝贵的时间。
  这样的情况应该避免,程序不会摄报错,但就是得不到预想的结果,令人抓狂。以后写代码得十分小心才是。初学阶段犯错在所难免,只是见多才能识广,更重要的是只有在不断地积累中才能成长,这个过程可能十分痛苦,可也算得上痛并快乐着。

if ("true".equals(request.getParameter("auto_login"))) {
    Cookie cookie = new Cookie("autoLogin", bean.getUsername()+"><"+Encrypt.MD5(bean.getPassword()));
    cookie.setMaxAge(3600*24*30);
    cookie.setPath("/");
    response.addCookie(cookie);
}
// 用户名密码正确,可以登录
request.getSession().setAttribute("userbean", bean);
response.sendRedirect(request.getContextPath()+"/");

 

posted @ 2014-05-18 22:48  祁连山  阅读(1657)  评论(1编辑  收藏  举报