Servlets 关于Servlet中cookie的查询

Servlets 关于Servlet中cookie的查询,servlets,Servlets,我尝试在响应中添加两个cookie,然后使用方法length返回cookie的数量。我发现它返回3个cookie,即使我删除了所有cookie,它仍然返回1。我不明白为什么运行时会产生更多的cookie protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Account_info AI

我尝试在响应中添加两个cookie,然后使用方法length返回cookie的数量。我发现它返回3个cookie,即使我删除了所有cookie,它仍然返回1。我不明白为什么运行时会产生更多的cookie

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
//      Account_info AI = new Account_info(request.getParameter("id"), request.getParameter("pass"));
//      
//      String check = AI.check();
//      
//      request.setAttribute("info", check);
//      RequestDispatcher view = request.getRequestDispatcher("Form.jsp");
//      view.forward(request, response);

        Cookie[] c = request.getCookies();

        if(c == null)
        {
            String name = request.getParameter("id");
            String passw = request.getParameter("pass");
            if(name.equals("nmc") && passw.equals("nmc"))
            {
                Cookie usercc = new Cookie("id", name);
                Cookie passcc = new Cookie("pass", passw);
                usercc.setMaxAge(0);
                passcc.setMaxAge(0);
                response.addCookie(passcc);
                response.addCookie(usercc);
                response.sendRedirect("Form.jsp");
            }
            else
            {
                response.sendRedirect("Login.html");
            }
        }
        else if(c != null)
        {
            System.out.println("have "+c.length+" cookie");
            String userName = "";
            String passWord = "";
            for(Cookie cookie : c)
            {
                cookie.setMaxAge(0);
                if(cookie.getName().equals("id"))
                {
                    System.out.println(cookie.getMaxAge());
                    userName = cookie.getValue();
                    System.out.println(userName+" id");
                }
                if(cookie.getName().equals("pass"))
                {
                    passWord = cookie.getValue();
                    System.out.println(passWord+" pass");
                }
            }

            if(userName.equals("nmc") && passWord.equals("nmc"))
            {
                response.sendRedirect("Form.jsp");
        //      view.forward(request, response);
            }
            else
            {
                response.sendRedirect("Login.html");
    //          view.forward(request, response);
            }
        }
    }

你把饼干的名字印出来了吗?另外,将用户的密码存储在cookie中是一个糟糕、糟糕、糟糕的主意。是的,谢谢,我会修复,但我不明白为什么长度返回3 cookie事件我只添加了2?您打印了cookie的名称吗?你不认为它们的名字可以帮助你理解它们是什么吗?哦,那是JSESSIONID,但它来自哪里?它来自于应用程序使用HTTP会话的事实。要么调用request.getSession(),要么使用JSP隐式启动会话,除非您明确阻止它们这样做。