2 回答
TA贡献1780条经验 获得超5个赞
在jsp页面中,如果没有明确的给出 <% @page session="false"%>,web服务器就会自动创建session。
过程是这样的,第一次在浏览器中查询某个jsp页面,web服务器接到请求,会根据服务器端的jsp页面创建java文件。如果没有给出<% @page session="false"%>,jsp会自动的、偷偷的增加一句javax.servlet.http.HttpSession session = request.getSession(true)。session就是在这里被创建的。然后编译calss文件,生成html页面。
session的一个特性:存在于服务其中。它在服务器中作为一个对象使用的。
session的另一个特性:session具有周期。session过期的时间是可以设置的。
session还有一个特性:具有独立性,拥有自己的id。这个id可以被浏览器记住。
下面来回答问题:
第一个问题:在同一个服务器下,session的对象不变,当离开当前服务器,来到另一个服务器时(浏览器未关闭)那么原服务器的session还存在吗?
答:所谓到另一个服务器,就是在浏览器端访问另一个网站。而没有给原来的网站服务器通信,原来session肯定不会被关闭。只要不超过session的周期,还是存在的。
问题二:如果是,代表原服务器session存在和新服务器session在一起并存 只要浏览器未关闭,session就在吗?
答:只要不超过session的周期,还是存在的。另,你说的session并存没错,但不在同一个地方,它在不同的服务器里面。你用的浏览器里并存的只是session的id,用来区分session的。
问题三:还有我说的是在同一个窗口中打开原先的服务器被新的服务器代替,这样子session还存在吗。
答:你这样的说法我有点迷惑,就按你重启服务器来回答了。session是对象,你重启服务器,原来的对象自然就没了,session也就不存在了。
添加回答
举报