一个用户只能登陆一次,不在数据库里面创建表? 系统启动的时候开启一个线程,间隔一定时间扫描一次登陆用户,如果没有新的url请求就认为用户下线,这样是个简单的办法,最准确的办法是结合session,设置过期时间 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最准确的办法是结合session,设置过期时间这怎么讲?我在web.xml里面设置了一个session的过期时间是永远不过期是为了防止过了20分钟,session为null 如果是用户吊线或死机,服务器端是判断不了状态的。所以还是需要session。 应该是session虽然不会,但是看了些书上说的就是用这种方法实现对客户端的监控 我做过, 要用到一个Application程序,假如还不了解的话,QQ:175610058 是要用一个字段控制用户的登陆状态,比如0为未登陆,1为登陆。当服务器启动和关闭的时候,用SessionContextListener监听器把所有用户的登陆状态设置为0。这样的话,不管服务器是不是会死机,只要他启动和关闭的时候,都会设置用户为离线状态! SessionContextListener,没听过这是我写的 try{ Ouser user = (Ouser)dy.get("user"); Ouser ou=bo.getLogin(user); if( ou == null){ return mapping.findForward("no");//用户名密码错误 }else{ String username=ou.getUserid(); System.out.println(username); if(request.getSession().getServletContext().getAttribute(username) == null){ System.out.println("第一次登陆"); request.getSession().getServletContext().setAttribute(username, username); request.getSession().setAttribute("user",user); return mapping.findForward("success"); }else{ request.getSession().invalidate(); return mapping.findForward("loginAgain"); } } }catch(Exception e){当我打开2个网页,输入一样的用户名可以判断是重复登陆但是当我把2个网页全部关闭,在打开一个网页,输入刚才的用户名,却提示说已经登陆,我向这是和Application有关把请问该怎么改? 应该是关闭网页的时候,session依然存在,将所有打开的页面都关闭试试。不过session的释放确实头疼,也许是其它问题,关注中... 正常关闭是可以控制session的,但是吊线或死机就不行了,只能等timeout了 这就不是正常关闭的,而且我设置了timeout为不过期 查询问题 jsp菜鸟用Spring Security时配置web.xml遇到的问题~ servlet输出xml数据,js操作 自定义标签的迷惑(.tld与.tag) TOMCAT 设置虚拟目录问题.localhost目录下建XML文件没成功. 请大家帮我看看Struts页面处理的问题 weblogic8.1难道不支持jstl? OC4J如何配置session的响应时间 Hibernate中对视图的操作 求助! webwork+spring+Hibernate调用存储过程错误 struts+spring+hibernate 关于多表查询的问题??
这怎么讲?
我在web.xml里面设置了一个session的过期时间是永远不过期
是为了防止过了20分钟,session为null
当服务器启动和关闭的时候,用SessionContextListener监听器把所有用户的登陆状态设置为0。
这样的话,不管服务器是不是会死机,只要他启动和关闭的时候,都会设置用户为离线状态!
这是我写的
try{
Ouser user = (Ouser)dy.get("user");
Ouser ou=bo.getLogin(user);
if( ou == null){
return mapping.findForward("no");//用户名密码错误
}else{
String username=ou.getUserid();
System.out.println(username);
if(request.getSession().getServletContext().getAttribute(username) == null){
System.out.println("第一次登陆");
request.getSession().getServletContext().setAttribute(username, username);
request.getSession().setAttribute("user",user);
return mapping.findForward("success");
}else{
request.getSession().invalidate();
return mapping.findForward("loginAgain");
}
}
}catch(Exception e){当我打开2个网页,输入一样的用户名可以判断是重复登陆
但是当我把2个网页全部关闭,在打开一个网页,输入刚才
的用户名,却提示说已经登陆,我向这是和Application有关把
请问该怎么改?