这些电话在会话方面实际意味着什么?
System.out.println("print1: "+request.getSession().getId());
System.out.println("print2: "+request.getSession(false));
Run Code Online (Sandbox Code Playgroud)
OUTPUT
print1: D94146A347D95563186EB7525726336B
print2: org.apache.catalina.session.StandardSessionFacade@d52411
Run Code Online (Sandbox Code Playgroud)
小智 17
HttpSession session = request.getSession();
在服务方法中,我们要求会话,并且每个事物都会自动获取,就像创建HttpSession对象一样.无需生成唯一会话ID.无需创建新的Cookie对象.一切都在幕后自动发生.
一旦调用getSession()
请求对象的方法,就会由容器创建会话的新对象,并生成唯一的会话ID以维护会话.此会话ID将传回给响应对象,以便每当客户端发出任何请求时,它还应将会话ID与requsest对象相关联,以便容器可以识别会话.
request.getSession(false)
:此方法将检查Session是否已存在.如果它存在则会返回已存在的Session.如果此请求尚未存在Session,则此方法将返回NULL,这意味着此方法表示请求先前没有Session.
Sub*_*der 14
简而言之 -
request.getSession().getId()
- 返回包含分配给此会话的唯一标识符的字符串.标识符由servlet容器分配,并且取决于实现.
request.getSession(false)
- 返回会话对象;如果没有当前会话,则返回null.
小智 5
第一行将返回服务器上的"会话ID".第二行将返回会话对象.那么将在system.out上打印的是什么request.getSession(false).toString();
默认实现toString
返回"对象id".Object id
在会话方面不一样session id
.会话可以在集群中进行序列化和复制,因此在每个JVM上的集群的每个节点上,它可能具有自己的对象ID(但应具有相同的会话ID).
这里解释了使用boolean调用get session:http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getSession( boolean )
归档时间: |
|
查看次数: |
67068 次 |
最近记录: |