A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我现在启动两台tomcat服务器A,B,数据相同,  我的登陆使用session控制的  
当我登陆到   A  服务器上,并且同验证,可以使用了  
然后在session没有失效的情况下切换到  B  服务器,发现并没有让输入密码,直接登陆成功  
为什么?  
---------------------------------------------------------------
[ 本帖最后由 王海飞 于 2011-07-19  11:23 编辑 ]

评分

参与人数 1技术分 +1 收起 理由
admin + 1 加分了,哪位同学实验一把

查看全部评分

2 个回复

倒序浏览
黑马网友  发表于 2011-7-19 11:30:32
沙发
首先说明:web上用的都是非连接的网络协议  
session  是存在服务器上的  
每个session有一个唯一的session  ID(为了标识他是那个客户端的)  

在启动session的同时,会在客户端生成cookie,服务器把session  ID加到cookie中  
每次服务器和客户端交互的时候,就是从cookie中取得session  ID  来定位服务器上的session  

这样只要你的cookie不过期,服务器上有你的session,就不会出问题
回复 使用道具 举报
黑马网友  发表于 2011-7-19 23:45:28
藤椅
Cooike是客户端的技术,默认情况下存放在浏览器的内存中,浏览器关闭后,Cookie消失,但是也可以使用setMaxAge(int 秒)的方法修改其存活时间,此时Cookie存放在硬盘上。
        Session是服务器端的技术,当有一个客户端访问服务器时,服务器为这个客户端创建一个session对象,此对象存放在服务器上,默认存活时间为30分钟。注意:Session在第一次请求相应时才产生。
        两者的关系:当服务器为客户端创建session对象后,对象有一个sessionID,这个id自动记录在cookie中,保存在客户端,当客户端再次访问服务器是,将会带着cookie访问,服务器先查看cookie中保存的sessionID,以辨别服务器上是否已存在该session对象,如果有,继续使用这个对象。默认情况下浏览器关闭,cookie跟着消失,客户端再次访问服务器时,服务器就不会提供原来的那个session对象,它会生成一个新的session对象以供使用。如果设置cookie的保存时间,那么cookie将保存在硬盘上,那么即使浏览器关闭再重开,依然可以通过cookie取得原来的session对象。这里有一种情况是,浏览器被设置为禁止使用cookie,这种情况下,客户端访问服务器时就无法使用原来的session对象了,解决方案是,通过URL重写的方法来代替cookie行使传递sessionID的功能,以获得原来的session对象。URL重写的方法是:
1 重定向的情况使用encodeRederictURL(String URL) 2 请求转发的情况使用encodeURL(String URL)。这样,sessionID就可以通过URL地址传递给服务器。但是cookie优先于URL重写。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 这么晚还学习,加分。

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马