怎样区别“未登录“与“session已过期”?

cnmb1 2010-09-26 01:25:20
怎样区别“未登录“与“session已过期”?

用户未登录时,提醒其登录。
用户超时后,提醒他已超时,需重新登录。

可是怎样区别这2者呢?
...全文
321 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cnmb1 2010-09-26
各大网站都有这种功能的,精益求精嘛,用户体验第一
回复
darrenluo 2010-09-26
其实lz你何必理会是session过期还是为登录呢
用户基本不关心是什么原因,只想知道我应该怎么做就了
你简简单单提示用户“未登录或已超时,请登录”不就行啦
自己搞得那么麻烦
回复
cnmb1 2010-09-26
6楼的也是一样的想法 ok
回复
cnmb1 2010-09-26
恩 要得就是5楼的思路 谢拉
回复
darrenluo 2010-09-26
可以利用cookies
用户登录的时候生成一个识别码并持久化

用户下次请求的时候如果session是新建的
则将客户端传过来的识别码和持久化的识别码做比较
如果不匹配则说明用户未登录
如果匹配则说明是session过期了
回复
liujun5515008 2010-09-26
思路应该可以这样,你在数据库中的用户表添加一列,做一个状态标示,如果用户登陆后,将当前用户的标识改为已登录状态,同时使用reqeust.getSession(false)判断当前的session是否失效,我这里使用false是说明,如果当前session不存在,则返回空,不会重新创建,最用你使用数据库标识和session当前是否为空来判断当前的用户是登陆的还是session失效的情况。
这里必须说明,你的考虑在用户推出系统或者注销系统时将用户标识还原回去(这里使用HttpSessionLister可以考虑,不在阐述)。
回复
darrenluo 2010-09-26
[Quote=引用 3 楼 cnmb1 的回复:]

字面意思上的确很好区别。换个问法就是:怎样区别session未创建和session已经invalidate().
楼上的明白我的意思吗?
[/Quote]

session过期了就销毁了 无法取到旧的session判断它的状态
lz死心吧 换种思维看下如何实现这样的功能
回复
cnmb1 2010-09-26
字面意思上的确很好区别。换个问法就是:怎样区别session未创建和session已经invalidate().
楼上的明白我的意思吗?
回复
tianshi1017 2010-09-26
这本来就不是并列的,还要区别么
回复
cnmb1 2010-09-26
没人知道吗.....
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-09-26 01:25
社区公告
暂无公告