日期:2014-05-18  浏览次数:20843 次

请教一个关于session的问题
我有两个页面,
login.jsp---> 主要功能是:1.   用session.getId()的方法显示当前的sessionID
2.   输入一个用户名,提交到另外一个页面check.jsp,   如下面的代码
<form   name= "loginForm "   method= "post "   action= "check.jsp ">

check.jsp     页面的主要功能是再request中得到name
name=request.getParameter( "username ");然后显示.

还有一个链接.链接到上一个login.jsp页面,代码如下
<a   href= "login.jsp "> 登录 </a>


我做如下操作:     登陆login.jsp页面,页面显示当前的sessionId,   输入了一个用户名,跳转
到check.jsp,       然后点击登陆,返回到login.jsp页面,   都是再一个session.两次显示的s
essionid   是一样的.   我的程序也运行正常.

我现在遇到一个问题:

当我将浏览器的级别   调整到   禁用所有cookie   的时候,     在check.jsp中,点击登陆,返回到
login页面的时候,应该创建新的session.但是显示的还是一样的.(但是我设置了更高级别
后,登陆一些网站的时候,就不能登陆.   看来设置还是有效果的.但是为什么在我的例子中不能实
现呢?)

我已经删除了tomcat和ie等的临时文件,排除没有编译,没有刷新等因素

  此例子来源于   孙卫琴的tomcat与web开发.

小弟只有5分,我都贡献出来了,还请大家帮忙


------解决方案--------------------
你要实现什么功能,你都没说明白!听得一头的雾水,是要前后返回两次的 sessionId 一样还是不一样?
------解决方案--------------------
禁用cookie的时候,你原来保存的登陆的信息将不会被发送到服务器,那么有些网站有当然不能识别了。禁用cookie只是对别的网站而言的,跟你的程序根本没有关系,你的程序里面都没有cookie的定义。何况cookie是保存在客户端,而session 是存在于服务器的,根本拉不上关系啊。
是否是一个session的判断是:他们的原始入口是否是一个浏览器,而不是他们是否来源于不同的网页。


------解决方案--------------------
session是依赖cookie。如果你禁用了cookie,session也就不好使了。
------解决方案--------------------
up!
------解决方案--------------------
我帮你顶,我也很想知道你怎么会这样,是不是你的浏览器有问题呢?
理论上来说应该会不一样的吧,我想,呵呵