码迷,mamicode.com
首页 > 编程语言 > 详细

JavaWeb中session创建于销毁的问题

时间:2017-06-14 16:16:31      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:在线的   als   浏览器   问题   建立连接   web   导致   http   原理   

今天遇到一个奇怪的问题,自己添加了一个session的监听,用来监听在线的人数。但打开浏览器时一直没有走进这个监听中来。最后百度找到了原因:

我们一直存在一个误区,javaweb中的session什么时候创建?我一直认为是第一次与浏览器建立连接的时候,就自动创建一个session。其实不然!

只有在server端的代码调用request.getSession(true)这个方法时,才互创建一个session。其中true表示,如果存在一个相同的session,则直接返回,如果不存在,则创建一个新的session;false表示,如果不存在,则返回null。而我的代码中比较简单,没有用到session存储东西,所有一直没调用request.getSession(true)这个方法。

在拦截器中加了这句话之后,问题又来了,后面的每个请求,都会去创建一个session,这与之前的理解的一个浏览器对应一个session又相冲突了。猜测是因为每次请求的sessionId不同导致的,应该是在请求响应的时候没有设置cookie导致的,HTTP请求是无状态的,每个请求对server来说都是新的。

为了搞清内部原理,决定跟着源码继续看下session具体的创建和销毁逻辑吧。

JavaWeb中session创建于销毁的问题

标签:在线的   als   浏览器   问题   建立连接   web   导致   http   原理   

原文地址:http://www.cnblogs.com/aligege/p/7008844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!