这些通话实际上对 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 。

10-07 19:09
查看更多