您的位置:程序门 -> java -> j2ee / ejb / jms



一个用户只能登陆一次,不在数据库里面创建表?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


一个用户只能登陆一次,不在数据库里面创建表?
发表于:2007-09-16 12:44:51 楼主
在网上找了一些资料说,大部分都是说在数据库里面
创建表,有一个字段是记录登陆状态,
但是这个字段并不能很好的,记录状态,比如说,机器死机
这个登陆的状态,还是会记录的表里面?


所以,请问高手们有没有好的方法。..
发表于:2007-09-16 13:03:511楼 得分:0
添加一个登录模式选项   让我户选择登录方式:   临时登录   或   持久登录
发表于:2007-09-16 15:59:212楼 得分:0
系统启动的时候开启一个线程,间隔一定时间扫描一次登陆用户,如果没有新的url请求就认为用户下线,这样是个简单的办法,最准确的办法是结合session,设置过期时间
发表于:2007-09-16 22:35:293楼 得分:0
最准确的办法是结合session,设置过期时间
这怎么讲?
我在web.xml里面设置了一个session的过期时间是永远不过期
是为了防止过了20分钟,session为null


发表于:2007-09-16 23:08:264楼 得分:0
如果是用户吊线或死机,服务器端是判断不了状态的。所以还是需要session。
发表于:2007-09-16 23:33:095楼 得分:0
应该是session虽然不会,但是看了些书上说的就是用这种方法实现对客户端的监控
发表于:2007-09-18 11:45:316楼 得分:0
我做过,   要用到一个application程序,假如还不了解的话,qq:175610058
发表于:2007-09-19 10:21:487楼 得分:0
是要用一个字段控制用户的登陆状态,比如0为未登陆,1为登陆。
当服务器启动和关闭的时候,用sessioncontextlistener监听器把所有用户的登陆状态设置为0。
这样的话,不管服务器是不是会死机,只要他启动和关闭的时候,都会设置用户为离线状态!
发表于:2007-09-19 10:56:258楼 得分: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有关把
请问该怎么改?
发表于:2007-09-19 11:17:529楼 得分:0
应该是关闭网页的时候,session依然存在,将所有打开的页面都关闭试试。不过session的释放确实头疼,也许是其它问题,关注中...
发表于:2007-09-19 12:07:2110楼 得分:0
正常关闭是可以控制session的,但是吊线或死机就不行了,只能等timeout了
发表于:2007-09-19 12:16:3611楼 得分:0
这就不是正常关闭的,而且我设置了timeout为不过期。。。


快速检索

最新资讯
热门点击