最近看了一个servlet实现网站在线人数的统计,对应访问同一个网站,请问session是一个浏览器对应一个,还是一个窗口对应一个呢?如果打开多个窗口,同时进入一个网站,会产生几个session?如果是多个session,那网站在线人数统计还准确了吗?请大侠帮我解释下
这个要讨论的话,确实比较难描述。
一个浏览器访问网站,可以看做使用的是一个session,比如我用IE访问一个项目,登陆后,我无论用IE打开多少个窗口,都使用的是同一个session。
那我换一个浏览器,比如又用360来访问这个项目,那么就会产生另一个session了。
那么我两个浏览器一起用,其实是两个session
这样理解虽然不是很准确,但是一般的项目的session操作,这样是没问题的。
session map的东西是你的浏览器的cookie。 准确的说,每一个session对应一个cookie。但是cookie在浏览器中怎么生成的是和浏览器相关的。看的是在你在不同页面上访问同一个地址的时候你的浏览器会不会生成一个新的cookie给你的request还是使用原来的cookie。所以有些浏览器开两个用同一个cookie但是有些开两个就是两个。
所以,两个不同的浏览器肯定是不同的cookie
两个不同的操作系统就更不用说了。。
只有在同一个浏览器下才有可能会出现开两个同样页面也会用同一个session的情况
应该准确,除过有时候会出现的一些进程堵死,锁死等问题,大家基本上平常都是这样写。session:你可以把session看成是服务器的一个静态有名字的对象,谁都可以访问到它,所以session既不是一个浏览器对应一个,也不是一个窗口对应一个,当一条请求,或是一个事件想访问它的时候,只要叫它的名字就可以了,然后对其所存储的value进行修改即可,实际上session是一个map行的,不知道你听懂了吗?