当前位置:编程学习 > JAVA >>

JSP中Session保存在Tomcat中吗?为何我重启tomcat,原来session的内容没被清除?

JSP中Session保存在Tomcat中吗?为何我重启tomcat,原来session中的内容没被清除? --------------------编程问答-------------------- 重启tomcat后,session应该注销掉了 --------------------编程问答-------------------- 保存在服务端内存   正常情况下客户端只要没关闭浏览器   对应的Session就一直存在(除非有超时)
你把浏览器关了,session就没有了
--------------------编程问答-------------------- 如果是正常的停止服务,它会把session序列化的work目录下,参考
http://fashion.javaeye.com/blog/480229
--------------------编程问答-------------------- 要知道session 原理以及生命周期
1:session 是通过浏览器的cookie来保存一个jessionid的信息。这个jsessionid里面包含着你session 的id 。正是通过这个jessionid浏览器才能判断是不同用户的session,用户每次进行session.getAttribute()或则session.setAttribute时候。都会取出jesseionid里面的信息和session id比较。来区分不通的session。
2.session 的生命周期是一次会话。就是从用户开始请求这个application开始到application结束。你停止了服务当然这个应用也就结束。tomcate容器出清除session --------------------编程问答--------------------
引用 2 楼 kdflove 的回复:
保存在服务端内存   正常情况下客户端只要没关闭浏览器   对应的Session就一直存在(除非有超时)
你把浏览器关了,session就没有了
我觉得是这样
--------------------编程问答-------------------- 服务器重启,application 都清空了,何况session呢 --------------------编程问答-------------------- 尽是些想当然的,四体不勤,五谷不分 --------------------编程问答-------------------- 清除浏览器缓存  --------------------编程问答-------------------- 似乎3楼说得对序列化了 --------------------编程问答-------------------- 应该是缓存造成的,你刷新一下 --------------------编程问答-------------------- 呵呵 只要你吧浏览器关闭,当前会话就会结束,SESSION就不存在了
--------------------编程问答-------------------- 三楼正解,这也是为什么会被存入session的类建议实现序列化接口的原因 --------------------编程问答-------------------- session与浏览器的窗口有关,如果你关掉浏览器的窗口,session就没了啊! --------------------编程问答-------------------- 以前一直被人误解session是存在浏览器的  其实是错误的 session是存在浏览器和服务器,有一个副本,只要其中一个丢失,session则失效,网上看到的 --------------------编程问答-------------------- 注意  失效并不是说直接销毁了 --------------------编程问答-------------------- 顶
引用 1 楼 wutian4567268 的回复:
重启tomcat后,session应该注销掉了
--------------------编程问答--------------------
引用 16 楼 twt19861004 的回复:
顶引用 1 楼 wutian4567268 的回复:
重启tomcat后,session应该注销掉了


不要想当然,要亲手实践。不要网上说什么,自己就信什么。有时间,有精力,就动手实验一下。

lz虽然不清楚答案。但至少他发现问题存疑了。 --------------------编程问答-------------------- 3楼正解,正常停止tomcat服务,Session会被保存在本地,Tomcat重新启动后恢复Session,通过设置可以关闭序列化。 --------------------编程问答-------------------- 正解!

引用 3 楼 shine333 的回复:
如果是正常的停止服务,它会把session序列化的work目录下,参考
http://fashion.javaeye.com/blog/480229
--------------------编程问答--------------------
引用楼主 qwer770415 的回复:
JSP中Session保存在Tomcat中吗?为何我重启tomcat,原来session中的内容没被清除?


不会被清除,除非浏览器关了,再开一个。tomcat 正常关闭或者 restart 的话 tomcat 会在 work 的这个工程目录下有个 session.ser 文件,会保存在那里,重启时会重新加载。

当然了,这些可以通过 Context 节点中的 Manager 子节点进行配置,比如存到数据表中去什么的。
http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html --------------------编程问答-------------------- 关闭窗口 就没有了 --------------------编程问答-------------------- JSP中Session保存在Tomcat中吗?为何我重启tomcat,原来session中的内容没被清除?
估计是认为错误,了解session的生命周期就知道不会发生这样的事情了 --------------------编程问答--------------------
引用 2 楼 kdflove 的回复:
保存在服务端内存   正常情况下客户端只要没关闭浏览器   对应的Session就一直存在(除非有超时)
你把浏览器关了,session就没有了


up
tomcat停止了,自然session也就消失了 --------------------编程问答-------------------- 再做打油诗一首,以勉诸君

回帖不看帖,乱把发言写。
会话服务存,匹配靠甜点。
雄猫正常关,内容会序列。
重启伊尚在,曲奇无差别。
服务还复来,会话未曾灭。
劝君与诸位,共勉引为诫。

甜点、曲奇=Cookie
雄猫=Tomcat
伊=IE --------------------编程问答-------------------- 24楼,真幽默! --------------------编程问答-------------------- session是雨浏览器相关的 只要关了浏览器session自然消失 --------------------编程问答-------------------- 进来学习的,,,,, --------------------编程问答--------------------
引用 20 楼 bao110908 的回复:
引用楼主 qwer770415 的回复:
JSP中Session保存在Tomcat中吗?为何我重启tomcat,原来session中的内容没被清除?


不会被清除,除非浏览器关了,再开一个。tomcat 正常关闭或者 restart 的话 tomcat 会在 work 的这个工程目录下有个 session.ser 文件,会保存在那里,重启时会重新加载。

当然了,这些可以通过 Con……



bao110908 分析非常深入,各位不要想当然,你实验一下会发现,即使TomCat重启,session中的内容依然可以读出. bao110908的分析可以解释这种现象. --------------------编程问答--------------------
引用楼主 qwer770415 的回复:
JSP中Session保存在Tomcat中吗?为何我重启tomcat,原来session中的内容没被清除?


请问楼主是如何得出重启服务后session的内容没被清楚的结论的?有何现象?
可以明确的告诉你,重启服务后session早已不复存在了 --------------------编程问答--------------------
引用 24 楼 shine333 的回复:
再做打油诗一首,以勉诸君

回帖不看帖,乱把发言写。
会话服务存,匹配靠甜点。
雄猫正常关,内容会序列。
重启伊尚在,曲奇无差别。
服务还复来,会话未曾灭。
劝君与诸位,共勉引为诫。

甜点、曲奇=Cookie
雄猫=Tomcat
伊=IE


牛人一个,技术深入\文采飞扬,我辈之典范!学习了. --------------------编程问答--------------------
引用 29 楼 yeweimian999 的回复:
引用楼主 qwer770415 的回复:
JSP中Session保存在Tomcat中吗?为何我重启tomcat,原来session中的内容没被清除?


请问楼主是如何得出重启服务后session的内容没被清楚的结论的?有何现象?
可以明确的告诉你,重启服务后session早已不复存在了


我在MyEclipse中重启tomcat,再刷新IE,以前保存的session依然可以读出来. --------------------编程问答-------------------- 这几天研究Webkit / ARM /Linux ,为一个中文就报段错误搞晕了,希望与这方面的高手切磋.QQ:107964558 --------------------编程问答-------------------- tomcat6 中关闭服务 会自动把session持久化
存储在work目录下的 一个session.ser
对于Session的管理,tomcat两个实现类:org.apache.catalina.session.StandardManager 和org.apache.catalina.session.PersistentManager
StandardManager  默认的方法 可以配置的地方比较少
PersistentManager  提供了很灵活的管理方式 配置性强 

网上找的,看来确实会有这个问题,不过可以通过简单的配置来取消session的持久化,学习。。。 --------------------编程问答--------------------
引用 24 楼 shine333 的回复:
再做打油诗一首,以勉诸君

回帖不看帖,乱把发言写。
会话服务存,匹配靠甜点。
雄猫正常关,内容会序列。
重启伊尚在,曲奇无差别。
服务还复来,会话未曾灭。
劝君与诸位,共勉引为诫。

甜点、曲奇=Cookie
雄猫=Tomcat
伊=IE



如此人才!实乃罕见!

前辈!你会在JAVA版块火的。 --------------------编程问答--------------------
引用 20 楼 bao110908 的回复:
引用楼主 qwer770415 的回复:
JSP中Session保存在Tomcat中吗?为何我重启tomcat,原来session中的内容没被清除?


不会被清除,除非浏览器关了,再开一个。tomcat 正常关闭或者 restart 的话 tomcat 会在 work 的这个工程目录下有个 session.ser 文件,会保存在那里,重启时会重新加载。

当然了,这些可以通过 Co……

再次膜拜 --------------------编程问答-------------------- 内容储存在服务器端 但是session的id实在客户端浏览器里的cookie中存放的 服务器通过这个id才可找到响应的session内容
所以重启服务器与更换浏览器或者清空cookie都会导致session清除或者找不到
个人的理解 希望能帮到LZ --------------------编程问答-------------------- 学无止境呀,天天来,天天都能了解到新的东西
查了一下文档,的确如3楼所说的 --------------------编程问答-------------------- 重启tomcat,jsp中的四种范围属性都会被清空。范围大小:application>session>request>pageContext --------------------编程问答-------------------- 看帖必回。 --------------------编程问答-------------------- 3楼只说了tomcat6的session的存储,但实际上还有很多的程序在使用tomcat5呢,但是有一点是共同的,就是session是存在服务器端的,LZ问题不明确,不知道你到底想干什么 --------------------编程问答-------------------- 尽是些想当然的,四体不勤,五谷不分 --------------------编程问答-------------------- 哎 人家都说得那么明白了 如果不相信 自己安装他说的去试下不知道了 别老是想当然的就回帖 害人啊 --------------------编程问答--------------------
引用 24 楼 shine333 的回复:
再做打油诗一首,以勉诸君

回帖不看帖,乱把发言写。
会话服务存,匹配靠甜点。
雄猫正常关,内容会序列。
重启伊尚在,曲奇无差别。
服务还复来,会话未曾灭。
劝君与诸位,共勉引为诫。

甜点、曲奇=Cookie
雄猫=Tomcat
伊=IE

怎一个强字了得。 --------------------编程问答--------------------
引用 24 楼 shine333 的回复:
再做打油诗一首,以勉诸君

回帖不看帖,乱把发言写。
会话服务存,匹配靠甜点。
雄猫正常关,内容会序列。
重启伊尚在,曲奇无差别。
服务还复来,会话未曾灭。
劝君与诸位,共勉引为诫。

甜点、曲奇=Cookie
雄猫=Tomcat
伊=IE

        前辈,你是神 --------------------编程问答-------------------- 看帖必回
shine333、bao110908 两位网友是正解。 --------------------编程问答-------------------- 与tomcat版本有关系,应该是在6之后,默认配置正常退出时会做运行内容的缓存处理。
浏览器不关闭,仍然保有session id;服务端原session信息在tomcat重启后被重新加载入,因此,浏览器再次访问,不会有session问题。
如果浏览器关闭,再在新浏览器里访问服务,由于浏览器不再有原session id,因此,服务端不会找到对应的session;
再有,如果服务器采用的是tomcat低版本或者定制配置过的,不缓存运行信息的话,重启tomcat则session信息全丢。
这个问题有很多人想当然地回答,建议仔细看看session的机制,对于web开发者至关重要。 --------------------编程问答-------------------- 关闭浏览器是一种解决方案,还有一种方法就是修改session的有效时间,session的默认有效时间是30分钟 --------------------编程问答--------------------
引用 2 楼 kdflove 的回复:
保存在服务端内存 正常情况下客户端只要没关闭浏览器 对应的Session就一直存在(除非有超时)
你把浏览器关了,session就没有了
正解+1  
    --------------------编程问答-------------------- 好贴 --------------------编程问答-------------------- 你是不是序列化session了 --------------------编程问答--------------------
引用 48 楼 everwhl 的回复:
引用 2 楼 kdflove 的回复:
保存在服务端内存 正常情况下客户端只要没关闭浏览器 对应的Session就一直存在(除非有超时)
你把浏览器关了,session就没有了
正解+1

就这一句“你把浏览器关了,session就没有了”就偏远了去了
-1 --------------------编程问答-------------------- 学习了
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,