怎么判断用户非法退出,比如用户关闭了浏览器,我怎么能够知道用户退出了

做一个网站,要实现禁止同一账号多人同时登陆的功能,现在纠结着怎么判断用户非法退出,求帮忙,是java的ServletContextapp=request.getSessi... 做一个网站,要实现禁止同一账号多人同时登陆的功能,现在纠结着怎么判断用户非法退出,求帮忙,是java的
ServletContext app = request.getSession().getServletContext();
HashMap map = (HashMap) app.getAttribute("hasLogin");
String ss = request.getSession().getId();
if(map!=null){
String uuid = (String)map.get(uid);
if(uuid!=null){
System.out.println(uid+"已经登陆!");
}
}else{
map = new HashMap();
map.put(uid, ss);
}
app.setAttribute("hasLogin", map);
哪位帮我看一下,要怎么改
展开
 我来答
狠心拒绝
2011-09-13 · TA获得超过371个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:320万
展开全部
有个监听类,可以监控session失效,比如超过设置的时间没有操作,关闭浏览器后
因为http协议是无状态的,客户端关浏览器 服务器端是不知道的。
javax.servlet.http.HttpSessionBindingListener;
写一个类继承这个接口,这个接口提供2个抽象方法,它会再session创建和失效的时候自动运行
valueBound()
valueUnbound()
在这个类里面可以操作session 和application
r381195382
2011-09-13 · 超过11用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:32.5万
展开全部
我的思路是你给你的用户表添加一个状态字段,当用户登陆时,状态设为1,没登陆为0,如果再登录时你判断状态是否为0,如果为1,那么不给登录,如果按照你的额方法的话,每个客户端,程序都会分配一个session,你可以写个session监听,session的话,不是浏览器关闭就跟着关闭的,是存在一定时间,就算浏览器没有关闭,那么session也会清空,具体是怎样的,网上有资料,你可以使用session监听来实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mrchr
2011-09-13 · TA获得超过411个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:149万
展开全部
除非你在页面中使用轮询(以合适的时间间隔不断向服务器发送请求,服务器通过SessionID和请求判断客户是否仍然存在),否则你没办法主动判断Session是否失效。
要记得,HTTP协议是无状态的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rabi520
2011-09-13 · 超过25用户采纳过TA的回答
知道答主
回答量:92
采纳率:0%
帮助的人:74.2万
展开全部
判断sessionId
追问
能不能详细的说一下啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式