怪异问题,关于sessionID问题,求解

海川520 2012-03-31 12:01:20
我一个程序,每次用户登录生成session,我想记录sessionID,但是后来发现每次生成的sessionID都是一样的,很奇怪。不管是同一用户重复登录,还是不同用户登录,sessionID都是同一个。

分析了很久也没有结果,不知道各位大侠有没有碰到过这个问题。或者你认为哪的问题,求解。

我的程序是这样设计的,我解释一下

用户登录uid+pwd - action获取uid pwd - 封装 - 生成session - 获取sessionID。简单不能再简单的一个普通登录操作。

但是我的action,有继承BaseAction,代码如下:

private HttpServletRequest request;
private HttpServletResponse response;

public BaseAction() {
request = null;
response = null;
}

public HttpSession getHttpSession() {
return request.getSession();
}

public HttpServletRequest getRequest() {
return request;
}

public HttpServletResponse getResponse() {
return response;
}

public void setServletRequest(HttpServletRequest request) {
this.request = request;
}

public void setServletResponse(HttpServletResponse response) {
this.response = response;
}


然后action继承他,在action里面,直接super.getHttpSession()获取了session

对?不对?有问题?哪的问题,我实在找不到地方

但是我其中我把继承去掉,在action里面单独写的request,然后在用request获取session,但是还是sessionid都一样。我想并不是继承的问题,是哪的问题,我实在无解。求解。
...全文
130 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
成一粒 2012-03-31
  • 打赏
  • 举报
回复
你session的值是根据用户的uid+pwd来组成的在获取ID怎么会是一样呢?
X497347200 2012-03-31
  • 打赏
  • 举报
回复
你打开一个浏览器,然后访问你的网站,用的是一个session, 你关闭浏览器再打开访问网站sessionid就会变了
Kerry_Sole_8888 2012-03-31
  • 打赏
  • 举报
回复
将web.config里面session的保存时间设为一个值,其中单位是以分钟为单位。
<sessionState ....... timeout="60" />
  • 打赏
  • 举报
回复
ie中:
Session对象在各浏览器中的有效范围有效的窗品包括
1.session对象只在建立session对象的窗口中有效。
2.在建立session对象的窗口中新开链接的窗口

无效的窗口包括
1.直接启动ie浏览器的窗口
2.不是在建立session对象的窗口中新开链接的窗口

netscape中:
只要一个窗口有了某个session对象,则全部窗口对此session都有效
  • 打赏
  • 举报
回复
你浏览器是一个,关闭再试,记得好像不同浏览器SESSION失效方式不太一样
MiceRice 2012-03-31
  • 打赏
  • 举报
回复
如果退出登录时,没有在服务器端主动摧毁session,那么这个sessionId在你浏览器生命周期内持续有效很正常。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧