首先说明:web上用的都是非连接的网络协议
session 是存在服务器上的
每个session有一个唯一的session ID(为了标识他是那个客户端的)在启动session的同时,会在客户端生成cookie,服务器把session ID加到cookie中
每次服务器和客户端交互的时候,就是从cookie中取得session ID 来定位服务器上的session这样只要你的cookie不过期,服务器上有你的session,就不会出问题
session 是存在服务器上的
每个session有一个唯一的session ID(为了标识他是那个客户端的)在启动session的同时,会在客户端生成cookie,服务器把session ID加到cookie中
每次服务器和客户端交互的时候,就是从cookie中取得session ID 来定位服务器上的session这样只要你的cookie不过期,服务器上有你的session,就不会出问题
解决方案 »
- 网页静态化的问题
- 求助,谷歌浏览器没问题,ie浏览器就有问题
- jsp 中利用xml文件生成动态菜单
- 我想买一本java书,关于ssh框架的,我也不知道企业里那个框架勇的比较多,请各位师兄指点指点,谢谢
- 请教:tomcat服务器配置的问题!请好心人指教下!谢谢
- spring quatz动态设置定时任务 scheduler.getTrigger报错
- 100分换个基础问题:怎么在页面显示出List的内容
- 如何关闭框架页面回到没框架的页面?(不好意思没分了)
- 我的JSP要和MYSQL相联,该怎么办??
- JSP中文显示问题
- 使用JB5学习开发servlet时,新建一工程并新建一简单的servlet,在servlet类的自定义菜单中有web run命令,折腾了几下后发现没有了该命令
- 菜鸟问题:各位高手帮忙啊,先谢了
因该是是这样的;当把tomcat启动后,进行登陆完成,然后停止web服务,在启动服务,然后刷新刚才没有关闭的页面,也不用登陆即可显示还有我怎么控制客户端,在没有点即我的logout按钮,直接关闭浏览器(session时间没有过期)的情况下,能自动把session 清除掉
1、两台服务器的情况,在一台服务器上登录,然后访问另一台服务器,肯定是不能共享Session的。
2、登录,然后重启Tomcat,session应该失效
另外,直接关闭浏览器,我觉得是没有办法清除session的session的原理,sunrain_gao(太阳雨) 说得有一定道理,但好像跟我的理解也有点不一样。我是这样理解的,请指正:
1、cookie是针对某一个网站的,从A服务器获得的cookie,访问B服务器的时侯,浏览器不会把该session发送给B服务器
2、服务器上,根据sessionID,会维护一个session列表。而B服务器上是没有这个列表的。(如果服务器进行了群集是可以在多台服务器上共享session的,但Tomcat好像不能群集,而且看你的做法也没有对A\B两台做群集)
启动Tomcat,利用session登陆,然后在不关闭浏览器的情况下,stop tomcat
然后在启动tomcat,到刚才没有关闭的浏览器下做刷新,不用登陆即可使用,还有在tomcat 的web.xml里有关于sessiontimeout的设置,默认的是30分钟,这个时间与我在servlet中登陆设置的sessiontiomeout有什么关系,依那个为标准??
然后在启动tomcat,到刚才没有关闭的浏览器下做刷新,不用登陆即可使用,这是不可能的,或者都是你的程序做的有问题,或者你看到的是浏览览器的缓存~你换个别的页面试试,
第二个问题不清楚,我想应该是你设的为准~
在配置好的tomcat里试一下
我用的Weblogic,而且之前我还用过ASP
至少在我用的这些东东里面session的性质与上面楼上各位说的都差不多另外,说到直接关闭浏览器的问题,确实没有办法清除session,但是,需要注意的是:session这种东东是面向会话的关闭浏览器之后,会话就会关闭了,之后某个时刻session因为已经找不到原来的会话信息应该就回收了另外,我想问几点问题:
1、你的浏览器使用的Windows自带的,还是那些已经外加了外壳的?比如MyIE?
2、你说关闭TomCat在重新启动之后,不用登陆就可使用。请问:你登陆之后的页面是否进行了权限认证?比如时候在登陆之后的页面中依然对session内部的值进行监视、判断?
通常情况下,sessionID在客户端以cookie的形式保存。如果浏览器静止了cookie,客户端再向服务器发请求的时候,就不会发送sessionID,因此服务器就会将这个请求作为一个新客户,所以就会出现session值丢失的假象。
这时候出现一个问题,如果客户浏览器不支持cookie,怎么办?J2EE提供的另一个办法就是URL重写,写超链接的时侯,总是用response.encodeURL(url),连接就会变成*.jsp?sessionID=......,完成了原来用cookie完成的功能。
J2EE建议,不论客户浏览器是否支持cookie,服务器端编程都建议使用URL重写。
我觉得原因可能是:
1、Tomcat故意如此,服务停止之后,将当前的所有活动状态保存,然后在重新启动的时侯重新装载。
2、Tomcat服务停止,事实上并没有真正停止,一些状态也并没有真正删除。需要有人对Tomcat的实现非常熟悉才行。或者哪位高人看看Tomcat的源码,找找原因。可以重启服务器试一下。
2.我在每一页都对SEssion做了确认,
我现在把tomcat 里的 web.xml 文件中的sessiontimeout改为零,好像可以控制,用户在关闭浏览器的情况下,不会出现问题
正如我所说。
你把ie设置为每次请求都检查更新试试看,应该就没这问题。