用户在浏览器中进行如下操作会在服务器端开几个Session?
以IE7为例
用户打开浏览器是在服务器上开了一个Session
如果用户此时在桌面上再次双击浏览器图标,输入地址然后连接呢?服务器是否开了一个新的Session?
如果用户右键点了一个超连接,选择在新的选项卡中打开连接呢?服务器是否开了一个新的Session?
如果用户右键点了一个超连接,选择在新的页面中打开连接呢?服务器是否开了一个新的Session?
如果不是IE7而是IE8呢?IE6(当然,IE6没有选项卡)呢?
如果浏览器是 FF或者TT或者Opera或者safari呢?
后台开的Session个数都是一样的吗?
谢谢大家
[解决办法]
用浏览器打开同一个web应用,服务器端的session是一样的
[解决办法]
session是相对于webapp的,楼主开了几个应用,理论上就是开了多少个session
[解决办法]
2楼说的正确,session是针对服务端的
如果客户端打开多个应用就有一个session,每个应用对应一个唯一的session
[解决办法]
open了一个新的页面就开了一个SESSION
页面关闭session失效
[解决办法]
监听服务器端session可以用如下做法
一帮可以用来防止重复登录
public class SessionListener implements HttpSessionListener{ private static java.util.Hashtable hUserName = new Hashtable(); public void sessionCreated(HttpSessionEvent se){ System.out.println( "Session Created. "); } public void sessionDestroyed(HttpSessionEvent se){ hUserName.remove(se.getSession()); System.out.println( "Session Destroyed. "); }
[解决办法]
在IE7情况下
如果用户此时在桌面上再次双击浏览器图标,输入地址然后连接呢?服务器是否开了一个新的Session? 是
如果用户右键点了一个超连接,选择在新的选项卡中打开连接呢?服务器是否开了一个新的Session? 否
如果用户右键点了一个超连接,选择在新的页面中打开连接呢?服务器是否开了一个新的Session? 没测过,不敢乱讲
在ie7下面,同一个窗口中的多个标签页访问同一个应用时,是共享一个session的,就是说session是根据浏览器窗口的,傲游也是这样,其他浏览器的情况不清楚。
具体实例可以看开心网或校内,在ie7下面,开一个标签页登录A用户,再在同一浏览器窗口下开第二个标签页登录B用户,这是你会发现第一个标签页中的用户再点击链接时,都是B用户的信息了
[解决办法]
如果新窗口是在原来窗口基础上打开的那就是原来的Session
如果是用户直接点击IE图标打开的,就是新Session
[解决办法]
如果用户此时在桌面上再次双击浏览器图标,输入地址然后连接呢?服务器是否开了一个新的Session?
是
如果用户右键点了一个超连接,选择在新的选项卡中打开连接呢?服务器是否开了一个新的Session?
否
如果用户右键点了一个超连接,选择在新的页面中打开连接呢?服务器是否开了一个新的Session?
否
[解决办法]
用户打开浏览器是在服务器上开了一个Session
如果用户此时在桌面上再次双击浏览器图标,输入地址然后连接呢?服务器是否开了一个新的Session? --yes
如果用户右键点了一个超连接,选择在新的选项卡中打开连接呢?服务器是否开了一个新的Session? ---no
如果用户右键点了一个超连接,选择在新的页面中打开连接呢?服务器是否开了一个新的Session? ---no
如果不是IE7而是IE8呢?IE6(当然,IE6没有选项卡)呢? --- 和上述一样
如果浏览器是 FF或者TT或者Opera或者safari呢? --- 和上述一样
后台开的Session个数都是一样的吗? --- 如果是第一种问题类型,后台就有两个相同的session存在。
[解决办法]
用户打开浏览器是在服务器上开了一个Session
如果用户此时在桌面上再次双击浏览器图标,输入地址然后连接呢?服务器是否开了一个新的Session? --如果可用内存不小于32M就是
如果用户右键点了一个超连接,选择在新的选项卡中打开连接呢?服务器是否开了一个新的Session? ---no
如果用户右键点了一个超连接,选择在新的页面中打开连接呢?服务器是否开了一个新的Session? ---no
如果不是IE7而是IE8呢?IE6(当然,IE6没有选项卡)呢? --- 和上述一样
如果浏览器是 FF或者TT或者Opera或者safari呢? --- 和上述一样
后台开的Session个数都是一样的吗? --- 如果是第一种问题类型,后台就有两个相同的session存在。
[解决办法]
引起这个问题的原因应该是用户信息在session中保存时的key是相同的,我以前的项目中也碰到过
只要在session中保存用户信息时,key值唯一就行了,譬如说用userid做key,然后每个请求中带一个userid过来就能解决
[解决办法]
这个问题我分析过,最后我得出的结论是。这个问题的关键是,cookie在不同的IE进程间是否共享,有些COOKIE是完全共享的,有的作用域只能局限于单个进程。因为cookie中保存着你的sessionid 它被服务器用来决定是否应该生成的新的session
推荐你看片博客文章http://hi.baidu.com/sampras1212/blog/item/a61228f985127f51252df23b.html很详细,我觉得你看了能够消除你心中的疑惑。
[解决办法]
浏览器的同一个tab是一个session,不同窗口才是不同的session
[解决办法]
不同浏览器不一样。
对于FF来说,整个FF应用就只有一个Session,只有当所有的FF窗口关闭以后,再重新开启的时候才会是新的Session
对于IE来说,和FF是一样的。
对于TT来说,默认是不能开启多个浏览器窗口的,但是允许了多实例启动后,一个TT窗口就是一个Session。
几乎所有的浏览器(我用过的),在开启新标签页的时候会共享原来的Session的。
其他的浏览器没怎么用过,不知道什么情况。
[解决办法]
一般情况下都是一个浏览器一个Session,比如你同时开IE,FIrefox,Chrome三个浏览器访问网站,那么针对你这同一个用户网站会有3个session开放。
Session默认情况下是以cookie内存储的sessionId作为识别标志,而cookie在浏览器之间独立的。
所以如果是同一个浏览器不管开多少个窗口,都只有一个Session
[解决办法]
顶19楼
关键在于cookie是否在多个浏览器进程共享;
如果共享,不管你开多少个浏览器,都是一个session
不共享,就一个浏览器对应一个session;
同一个浏览器进程,也就是一个浏览器里的多个选项卡都是同一个session