当前位置: 首页 > 面试题库 >

request.getSession()。getId()和request.getSession(false)之间的区别?

孟茂学
2023-03-14
问题内容

这些通话实际上对会话意味着什么?

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();在服务方法内部,我们请求会话,并且所有事情都会自动获取,就像创建HttpSession对象一样。无需生成唯一的会话ID。无需创建新的Cookie对象。一切都会在后台自动发生。

调用getSession()请求对象的方法后,容器将立即创建会话的新对象,并生成一个唯一的会话ID来维护会话。该会话ID被传输回响应对象,以便每当客户端发出任何请求时,它也应将会话ID与请求对象附加在一起,以便容器可以标识该会话。

request.getSession(false):此方法将检查请求的会话是否已经存在。如果存在,则它将返回已经存在的会话。如果此请求尚不存在会话,则此方法将返回NULL,这意味着该方法表示该请求先前没有会话。



 类似资料:
  • 问题内容: 众所周知 返回调用线程的标识符,该标识符与setThreadPriority(int,int)一起使用。 但是我发现不等于。因此,我猜前者是JVM版本的线程ID,后者是Linux版本的线程ID。 我对吗?如果是这样,为什么Java会创建自己的线程ID而不使用Linux线程ID? 更新: 经过进一步研究并阅读了android的源代码,我有了新的认识: 是与平台(OS)相关的操作,在and

  • 问题内容: 我有一些Java代码可以获取并设置会话属性: 为了使该代码具有线程安全性,我想将其包装在一个同步块中。但是我该怎么用做锁定对象呢?使用会话是否有意义? 问题答案: 使用您无法控制的锁通常会让人皱眉。锁的作用域应尽可能紧密,并且由于会话或多或少是全局对象,因此不适合使用。尝试使用与java.util.concurrent.locks包不同的锁,并将其范围限定到您的类。

  • 问题内容: 我只是想知道这两个执行的功能有什么不同? 数据: as_index = False: reset_index(): 他们两个都给出完全相同的输出。 谁能告诉我有什么区别,还可以举例说明吗? 问题答案: 使用时,表示您不想将列ID设置为索引(duh!)。当两个实现产生相同的结果时,请使用,因为这样可以节省一些键入时间和不必要的pandas操作;) 但是,有时您想对组应用更复杂的操作。在这

  • 问题内容: if(strpos("http://www.example.com”,”http://www.")==0){ // do work} 我希望这能解决,但确实如此。但是当我这样做时会发生什么 这也传递到php 5上,因为据我所知,strpos返回false,它转换为0。 这是正确的思想/行为吗?如果是这样,在另一个字符串的开头测试该子字符串的解决方法是什么? 问题答案: 是的,这是正确的

  • 问题内容: 我错放了太多次了,我想我一直忘记,因为我不知道两者之间的区别,只是一个给了我我期望的价值,而另一个却没有。 为什么是这样? 问题答案: 是的简写形式(尽管请注意,该表达式只会被计算一次。) 是的,即指定一元的到。 例子: