论坛首页 入门技术论坛

原来servlet中的session不一定会被创建,我居然今天才知道。

浏览 12533 次
该帖已经被评为新手帖
作者 正文
   发表时间:2011-11-16  
hu437 写道
northc 写道
Technoboy 写道
goldenfish1919 写道
等到用户关闭浏览器,或者服务器重启的时候session被关闭,并且HttpSessionListener接口的sessionDestroyed方法会被调用。

are you sure?




yes


    这是常识吧 少年



session是服务端的,浏览器是客户端的,你的浏览器关闭和session没有关系的,session失效基本上是三种情况

1、超时
2、手动的注销
3、服务器重启

还有回答常识的呢啊?你这么多年也白学了。老实点换行吧
0 请登录后投票
   发表时间:2011-11-16  
经常Copy和不看JavaDoc的后果
0 请登录后投票
   发表时间:2011-11-16  
在servlet中使用request.getSession才会创建。jsp页面中使用session才会创建。。总之首次使用时候创建的。
0 请登录后投票
   发表时间:2011-11-16  
bitray 写道
hu437 写道
northc 写道
Technoboy 写道
goldenfish1919 写道
等到用户关闭浏览器,或者服务器重启的时候session被关闭,并且HttpSessionListener接口的sessionDestroyed方法会被调用。

are you sure?




yes


    这是常识吧 少年



session是服务端的,浏览器是客户端的,你的浏览器关闭和session没有关系的,session失效基本上是三种情况

1、超时
2、手动的注销
3、服务器重启

还有回答常识的呢啊?你这么多年也白学了。老实点换行吧

《轻量级javaEE企业应用实战》书中九十五页说道:“session范围内的属性可以在多页页面跳转之间共享,一旦关闭浏览器,即session结束,session范围内的属性将全部丢失。”
浏览器关闭session确实是会失效的。
0 请登录后投票
   发表时间:2011-11-16  
记得还有一种跟HTML<meta>标签相关的方法也能失效。
0 请登录后投票
   发表时间:2011-11-16  
好像来看帖的都是在喷我,我以前发的帖子除了纯文字的都被人喷,挺感谢大伙的,有人喷我我挺高兴的,不然我还以为自己已经很厉害了呢,还差的很远,还要多看书, 好好看书才对,感谢大伙。
0 请登录后投票
   发表时间:2011-11-16  

楼主心态很好。
浏览器关闭之后,服务器端并不会马上知道。只有等到一段时间之后,再也没有收到session id,才会使得该session过期,服务端session空间才会施放。这里面有一个时间。
有时候,用户按下注销按钮,会使得服务端session空间内的用户名等信息被施放,但session id还会保留一段时间。
其实,从另一个方面看,浏览器关闭,session id就过期,这是个合理要求。HTTP可以引入这么一个机制。浏览器关闭之前,给所有访问过的网站都发一条通知信息(HTTP Request),告知session id过期。
0 请登录后投票
   发表时间:2011-11-16  
buaawhl 写道

楼主心态很好。
浏览器关闭之后,服务器端并不会马上知道。只有等到一段时间之后,再也没有收到session id,才会使得该session过期,服务端session空间才会施放。这里面有一个时间。
有时候,用户按下注销按钮,会使得服务端session空间内的用户名等信息被施放,但session id还会保留一段时间。
其实,从另一个方面看,浏览器关闭,session id就过期,这是个合理要求。HTTP可以引入这么一个机制。浏览器关闭之前,给所有访问过的网站都发一条通知信息(HTTP Request),告知session id过期。


茅塞顿开。真的,我以前还一直很好奇这是为什么呢。
看来理解浏览器的工作也是很重要的 。
0 请登录后投票
   发表时间:2011-11-16  
leavesforeye 写道
buaawhl 写道

楼主心态很好。
浏览器关闭之后,服务器端并不会马上知道。只有等到一段时间之后,再也没有收到session id,才会使得该session过期,服务端session空间才会施放。这里面有一个时间。
有时候,用户按下注销按钮,会使得服务端session空间内的用户名等信息被施放,但session id还会保留一段时间。
其实,从另一个方面看,浏览器关闭,session id就过期,这是个合理要求。HTTP可以引入这么一个机制。浏览器关闭之前,给所有访问过的网站都发一条通知信息(HTTP Request),告知session id过期。


茅塞顿开。真的,我以前还一直很好奇这是为什么呢。
看来理解浏览器的工作也是很重要的 。


浏览器是浏览器,服务端是服务端,只要这俩不通信,服务端啥都不知道
0 请登录后投票
   发表时间:2011-11-16  
LZ可以再看下jsp被翻译为servlet后的code,会发现是怎么get session的了。 

那是jsp里的默认动作,也可以手动设置滴.
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics