用servlet后,登录时怎么把用户名保存到全局对象 如果不用把用户名保存到全局对象,那该怎么做,菜鸟求答案 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 LZ是要用session吗?request.getSession().setAttribute("username","123"); 全局是application级别的。一般保存到session就可以了。除非你要实现像qq那样,一个登录,另一个下线(web还比较难做到准时提示下线,因为不是点对点通讯),则要用到application级别。 用servlet后,登录时怎么把用户名保存到全局对象如果不用把用户名保存到全局对象2个问题自相矛盾,到底是要保存?还是不保存?你先自己搞清楚!!! 6楼方法不错,我做过一个系统就是用数据库保存用户登陆信息。用户表有一个标志位记录该账号是否登陆,下次再来登陆除了验证身份之外还要验证该标志位。楼上有人提到用application,虽然也可以实现,但不可取。如果用户越来越多,application中的对象也越来越多,服务器内存会越来越大 6楼还提到程序定时去检查登陆情况,其实可以不用这样。程序只要在login和logout的时候分别检查该标志位对标志位进行修改操作即可,具体流程:1)登陆时去检查该标志位,如果还没登陆则使得当前登陆操作pass并立即置该标志位为不可用2)logout中:修改该标志位为可用 补充一点:还要添加SessionsInvalidate的监听器。当session自己过期也要修改该标志位 用数据库保存登陆信息可取,再用sessionListener 去监听下! 定时查询主要是为了防止浏览器关闭,电脑断电等外部原因导致session关闭从而将记录遗留在数据库中而引起不可登录的麻烦。从这一点上说,我更倾向后一个登录者挤掉前一个登录者,这样就不用定时察看了。 request.getSession().setAttribute("username","123");一般级别只要这么做就可以了。如果你不想放,除登陆页面外那每个页面都用<input type="hidden" name="username" vaule="<%=request.getparamer('username')%"/>这样就可以一直取到了。 如果想全局的话。就用apllication对象。数据直到服务重启或挂掉才会消失。。用法和session差不多。。 得到登陆用户信息 user吧user存进去Request.getSession().setAttribute("user",user); 拿userRequest.getSession().getAttribute("user"); 关于数据库连接池 Tomcat启动时报错,啥问题呀! java打印 spring+hibernate事务问题(急) SSH配置的老报这个错,没人能解决吗?急求,在线等 spring+hibernate 问题 powerdesigner与oracle的连接 问个简单的问题....Hibernate的 请问用java连接MQ时,如何获得某一个队列管理器下所有队列名称以及队列深度的方法? jdbc和oracle的连接driver问题??????? 使用compass遇到了个问题 Tomcat jndi 数据库怎么配置 连接池配置
request.getSession().setAttribute("username","123");
一般保存到session就可以了。
除非你要实现像qq那样,一个登录,另一个下线(web还比较难做到准时提示下线,因为不是点对点通讯),则要用到application级别。
如果不用把用户名保存到全局对象
2个问题自相矛盾,到底是要保存?还是不保存?你先自己搞清楚!!!
1)登陆时去检查该标志位,如果还没登陆则使得当前登陆操作pass并立即置该标志位为不可用
2)logout中:修改该标志位为可用
定时查询主要是为了防止浏览器关闭,电脑断电等外部原因导致session关闭从而将记录遗留在数据库中而引起不可登录的麻烦。从这一点上说,我更倾向后一个登录者挤掉前一个登录者,这样就不用定时察看了。
一般级别只要这么做就可以了。
如果你不想放,除登陆页面外那每个页面都用<input type="hidden" name="username" vaule="<%=request.getparamer('username')%"/>
这样就可以一直取到了。
得到登陆用户信息 user
吧user存进去
Request.getSession().setAttribute("user",user); 拿userRequest.getSession().getAttribute("user");