这些通话实际上对 session 意味着什么?
System.out.println("print1: "+request.getSession().getId());
System.out.println("print2: "+request.getSession(false));
输出
print1: D94146A347D95563186EB7525726336B
print2: org.apache.catalina.session.StandardSessionFacade@d52411
最佳答案
HttpSession session = request.getSession();
在服务方法内部,我们请求 session ,并且所有事情都会自动获取,就像创建HttpSession对象一样。无需生成唯一的 session ID。无需创建新的Cookie对象。一切自动在幕后发生。
调用请求对象的方法getSession()
时,容器将创建 session 的新对象,并生成一个唯一的 session ID来维护 session 。该 session ID被发送回响应对象,以便每当客户端发出任何请求时,它也应将 session ID与请求对象附加在一起,以便容器可以标识该 session 。request.getSession(false)
:此方法将检查请求的 session 是否已经存在。如果存在,则它将返回已经存在的 session 。如果此请求尚不存在 session ,则此方法将返回NULL,这意味着该方法表示该请求先前没有 session 。