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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败