如果不用把用户名保存到全局对象,那该怎么做,菜鸟求答案

解决方案 »

  1.   

    LZ是要用session吗?
    request.getSession().setAttribute("username","123");
      

  2.   

    全局是application级别的。
    一般保存到session就可以了。
    除非你要实现像qq那样,一个登录,另一个下线(web还比较难做到准时提示下线,因为不是点对点通讯),则要用到application级别。
      

  3.   

    用servlet后,登录时怎么把用户名保存到全局对象
    如果不用把用户名保存到全局对象
    2个问题自相矛盾,到底是要保存?还是不保存?你先自己搞清楚!!!
      

  4.   

    6楼方法不错,我做过一个系统就是用数据库保存用户登陆信息。用户表有一个标志位记录该账号是否登陆,下次再来登陆除了验证身份之外还要验证该标志位。楼上有人提到用application,虽然也可以实现,但不可取。如果用户越来越多,application中的对象也越来越多,服务器内存会越来越大
      

  5.   

    6楼还提到程序定时去检查登陆情况,其实可以不用这样。程序只要在login和logout的时候分别检查该标志位对标志位进行修改操作即可,具体流程:
    1)登陆时去检查该标志位,如果还没登陆则使得当前登陆操作pass并立即置该标志位为不可用
    2)logout中:修改该标志位为可用
      

  6.   

    补充一点:还要添加SessionsInvalidate的监听器。当session自己过期也要修改该标志位
      

  7.   

    用数据库保存登陆信息可取,再用sessionListener 去监听下!
      

  8.   


    定时查询主要是为了防止浏览器关闭,电脑断电等外部原因导致session关闭从而将记录遗留在数据库中而引起不可登录的麻烦。从这一点上说,我更倾向后一个登录者挤掉前一个登录者,这样就不用定时察看了。
      

  9.   

    request.getSession().setAttribute("username","123");
    一般级别只要这么做就可以了。
    如果你不想放,除登陆页面外那每个页面都用<input type="hidden" name="username" vaule="<%=request.getparamer('username')%"/>
    这样就可以一直取到了。
      

  10.   

    如果想全局的话。就用apllication对象。数据直到服务重启或挂掉才会消失。。用法和session差不多。。
      

  11.   


    得到登陆用户信息 user
    吧user存进去
    Request.getSession().setAttribute("user",user); 拿userRequest.getSession().getAttribute("user");