为什么我的Servlet会创建一个JSESSIONID cookie?

时间:2014-02-05 16:54:30

标签: java servlets jsessionid

我正在使用Servlets开发一些东西。我正在这个程序中创建cookie,并且正在创建一个名为JSESSIONID的cookie,但是当我注释掉所有代码时,即使这样创建了cookie。这是我的代码:

CookieDemoServlet.java:

public class CookieDemoServlet extends HttpServlet {

    public void service(HttpServletRequest req, HttpServletResponse res) throws
            ServletException, IOException {

        /*String em = req.getParameter("email");
        Cookie ck[] = req.getCookies();
        if (ck != null) {
            if (ck.length != 0) {
                for (Cookie c : ck) {
                    String cn = c.getName();

                    if (cn.equals("JSESSIONID")) {

                        System.out.println("You are the Old User");
                        String cv = c.getValue();
                        String d = c.getDomain();

                        System.out.println(cn + "\t:" + cv + "\t:" + d);
                    }

                } else {
                    System.out.println("Sorry,No Cookies Found");
                }
            }

            HttpSession session = req.getSession();
            boolean b = session.isNew();
            if (b) {
                System.out.println("You are the New user");
            } else {
                System.out.println("You are the Old User");
            }

            Cookie c1 = new Cookie("Email", em);
            res.addCookie(c1);
            Cookie c2 = new Cookie("Phone", "99999");
            res.addCookie(c2);*/

            RequestDispatcher rd = req.getRequestDispatcher("cookiedemo.jsp");
            rd.forward(req, res);

        }

    }
}

可能是什么原因?

2 个答案:

答案 0 :(得分:3)

JSESSIONID由J2EE应用程序服务器管理,它在应用程序服务器处于活动状态的每个会话中创建,是Servlet API使用的会话跟踪机制之一

有了这个,我们就可以知道哪些会话(对象)属于特定用户。

检查this.

答案 1 :(得分:2)

在创建会话时创建/发送

JSESSIONID cookie。当您的代码首次调用request.getSession()request.getSession(true)时,会创建会话。这不是你可以控制的东西。如果您创建会话,则会创建此cookie。