一個用戶名只能一次只能登陸一次的問題?解決馬上給分。 即一個web程序,一個用戶在這部機器上登陸了。那麼該用戶就不能在別的機器上登陸了。怎麼做呢?用戶登陸的時間是用session("username","aaa")來記錄的。謝謝! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 isLogined(String user){Set users = application.getAttribute("users");if(users.contains(user)){ //已经登录}else{ //其它处理}}SessionListener里sessionDestroyed(HttpSessionEvent hse){ HttpSession session = hse.getSession(); String name = session.getAttribute("username"); Set users = session.getServletContext().getAttribute("users"); users.remove(name); session.getServletContext().setAttribute("users",users);} to OnlyFor_love(『不给我分 就剪掉楼主小鸡几』) 有道理,好像更人性化一点,那就要用全局媒介记录用户名及对应IP喽,还要等用户下一步操作时候判断,好像要更麻烦一些 感謝樓上的二位。我想問一下OnlyFor_love(『不给我分 就剪掉楼主小鸡几』) 那我怎樣做才能夠像QQ一樣被迫下線呢?謝謝你。 to:dreamover(梦醒了)SessionListener里sessionDestroyed(HttpSessionEvent hse){ HttpSession session = hse.getSession(); String name = session.getAttribute("username"); Set users = session.getServletContext().getAttribute("users"); users.remove(name); session.getServletContext().setAttribute("users",users);}這個在那裡寫的。在servlet的嗎? 登录的时候监听一下,写自己的类实现了了ServletContextListener,HttpSessionAttributeListener,再写一个内部类,实现FileFilter进行你要的处理 不是servlet是自己写这么一个类public class SessionListener implements javax.servlet.http.HttpSessionListener{ public void sessionCreated(HttpSessionEvent hse){ } public void sessionDestroyed(HttpSessionEvent hse){ }}然后在web.xml里添加<listener><listener-class>包名.SessionListener</listener-class></listener>就可以了 这种做法没有什么意义,最好的办法并不是不让用户在其他地方登陆,而是设定一个session的范围,如果一定时间内停止活动,那么session失效。判断IP、端口是没有意义的。你可以研究一下某些论坛的一个功能:在线用户名单你看到的并不一定真正在线的用户列表,可能几分钟前已经关闭浏览器,但是仍然在session的有效时间短内。 数据库中多两个字段在线状态标志(用来记录是否登录)最后活动时间(用来记录用户最后活动时间)比如online=1说明此用户已经在线,那么判断用户活动时间与系统日期间隔是否大于3分钟,如果小于那么认为用户仍然处于活动状态中,禁止登录。否则相反。用户每次活动更新最后活动时间为系统当前时间。至于间隔多少分钟,自己说的算。===========================================上面的方法可以保证用户登录一次后不可以继续登录,如果想使用QQ的方法可以使用随机密码就是说在数据库中多一个字段,用来存放随机密码。登录的时候生成这个随机密码,并且存放在客户端。客户端每次提交数据针对这个随机密码进行更新。在提交的同时先校验客户端随机密码与服务器端随机密码一致,一致则通过,否则告知用户。如果有人又一次使用这个账号登录,随机密码更新。前者自然就无法提交数据。 record is locked by another user word文档打开是乱码 一个乱码的问题,请大家帮帮忙! 求救:怎样实现链接控制多个iframe刷新? 怎么才能在网页用调用一个Swing? 这个树怎么生成? 我想通过第二书店买书,但请问如何激活帐户 请大侠们帮忙帮忙解决下~~~急急 如何做这样的效果 请问一下基因java的车牌识别系统如何做?? frame刷新本页的简单问题 层如果显示在<select>上面好像会被<select>遮住,我的层只有一个表格,有什么解决办法没有?
Set users = application.getAttribute("users");
if(users.contains(user)){
//已经登录
}else{
//其它处理
}
}
SessionListener里
sessionDestroyed(HttpSessionEvent hse){
HttpSession session = hse.getSession();
String name = session.getAttribute("username");
Set users = session.getServletContext().getAttribute("users");
users.remove(name);
session.getServletContext().setAttribute("users",users);
}
sessionDestroyed(HttpSessionEvent hse){
HttpSession session = hse.getSession();
String name = session.getAttribute("username");
Set users = session.getServletContext().getAttribute("users");
users.remove(name);
session.getServletContext().setAttribute("users",users);
}這個在那裡寫的。在servlet的嗎?
public void sessionCreated(HttpSessionEvent hse){
}
public void sessionDestroyed(HttpSessionEvent hse){
}}
然后在web.xml里添加
<listener>
<listener-class>包名.SessionListener</listener-class>
</listener>
就可以了
最后活动时间(用来记录用户最后活动时间)比如online=1说明此用户已经在线,那么判断用户活动时间与系统日期间隔是否大于3分钟,如果小于那么认为用户仍然处于活动状态中,禁止登录。否则相反。用户每次活动更新最后活动时间为系统当前时间。至于间隔多少分钟,自己说的算。
===========================================
上面的方法可以保证用户登录一次后不可以继续登录,如果想使用QQ的方法可以使用随机密码就是说在数据库中多一个字段,用来存放随机密码。登录的时候生成这个随机密码,并且存放在客户端。客户端每次提交数据针对这个随机密码进行更新。在提交的同时先校验客户端随机密码与服务器端随机密码一致,一致则通过,否则告知用户。如果有人又一次使用这个账号登录,随机密码更新。前者自然就无法提交数据。