最近写了一个小的web项目,要实现用户不能重复登录的功能。我是给用户表添加了一个用来标记用户登录状态的字段(1、未登录 2、已登录)。每次用户登录时候会在action中先判断该用户的登录状态,如果是1则正常登录。否则提示该用户已登录,不能重复登录。当用户点击注销时候就会走action修改该用户的登录状态,然后跳转到登录页面。现在遇到一个问题就是:如果用户没有点击注销而是直接关闭浏览器,或者刷新浏览器就不能正常修改该用户的登录状态。也就是该用户下次就不能登录了。
我是个菜鸟,现在遇到这个问题不知道该怎么处理。求帮助。。哪位大侠帮忙指点一下。万分感谢
我是个菜鸟,现在遇到这个问题不知道该怎么处理。求帮助。。哪位大侠帮忙指点一下。万分感谢
解决方案 »
- socket.connect(socketAddress,timeout ))
- window.showModalDialog 怎样用 post方法 提交参数
- jsp参数强制转换怎么写?
- 昨天弄了一下午了,实在是不知道是啥错啊!
- 请问appfuse程序该怎样部署啊?能不能说说具体的操作步骤啊?谢谢!
- 超级新手问题,望大家赐教!(在线等)
- 2个问题,谁能给我解决啊?
- 急,快来帮忙!等候回复!
- websphere3.0--websphere3.5
- 学习(android)java网络聊天编程时遇到的问题
- 请教各位前辈,这段代码该怎么改
- 使用HttpURLConnection.getOutputStream时遇到中文乱码,求指导
1、用户主动关闭浏览器
可以使用
window.onbeforeunload=function (e){
if( window.event.clientY < 0 || window.event.altKey){
//alert("你关闭了浏览器");
$.ajax({
url:"${ctx}/system/user/user!logout.action",
type:"post",
success:function(){}
});
}else{
//alert("你正在刷新页面");
}
}2、session自动到期可以写一个SessionListener 监听器 实现HttpSessionListener的sessionDestroyed()
session销毁后重置你的字段。。
1. 自动登录:浏览器端用Cookie保存用户的登录信息,如用户名,密码。
2. 登录状态保存:
a. 用Session在服务器端保存用户已登录的状态。
b. 用数据记录登录状态也可以,下次登录的时候,看看上次注销或者登录的时间(处理你正好遇到的这个问题)就可以了。但是浏览器端需要定时的发一个请求更新登录状态。
1.提示用户,某某用户正在登陆使用。
2.session失效的时候注销用户的登陆
ps.非要这么做,1楼可行