freedom_wings4 2016-11-30 14:24 采纳率: 0%
浏览 1262

在servlet中无法使cookie过期?请问怎么解决?

在一个登录的servlet中,设置cookie,过期时间为1个星期

图片1

图片2
然后到登出的servlet,设置cookie.sexMaxAge(0),然后重定向(转发也试过)回首页,我用的是firefox,在这过程开着firebug来抓包。在登出的servlet重定向之后,在响应信息里是有set-cookie里这项,设置了expire为1970年。然而重定向后,随便开同是这个网站的其他网页,在firebug里看到,仍然有把这条cookie发上来。

图片3

在firefox里查看cookie,发现其过期时间仍为一个星期之后。

图片4

我的登出servlet的代码

 @WebServlet("/web/account/logout")
public class LogoutServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session=request.getSession();
        String userName=request.getParameter("userName");

        session.removeAttribute("userName");

       Cookie cookie=new Cookie("userName",userName);
        cookie.setMaxAge(0);
        response.addCookie(cookie);

        RequestDispatcher  dispatcher=request.getRequestDispatcher("/index.jsp");  //这里重定向和转发都试过,都不行
        dispatcher.forward(request,response);
         //response.sendRedirect("/index.jsp");
    }
}

按以下这种写法,也是不行,一样的情况

 @WebServlet("/web/account/logout")
public class LogoutServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session=request.getSession();
        String userName=request.getParameter("userName");

        session.removeAttribute("userName");

       Cookie[] cookies=request.getCookies();
        for(Cookie cookie:cookies)
        {
            if(cookie.getName().equals("userName"))
            {
                cookie.setMaxAge(0);
                response.addCookie(cookie);
                break;
            }
        }

        RequestDispatcher  dispatcher=request.getRequestDispatcher("/index.jsp");  //这里重定向和转发都试过,都不行
        dispatcher.forward(request,response);
         //response.sendRedirect("/index.jsp");
    }
}

请问怎么解决呢?为什么不能使cookie过期呢?

  • 写回答

2条回答 默认 最新

  • dabocaiqq 2016-11-30 14:42
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB yalmip 可转移负荷的简单建模出错,如何解决?
  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?