jsp中保持用户登陆状态的问题

来源:百度知道 编辑:UC知道 时间:2024/06/16 09:01:37
我现在的做法是一旦登陆成功后,就
session.setAttribute("User",user);
其中user是我用hibernate中生成的一个持久化类,我想主要有以下几个问题:
1.这个持久化类中包含密码,我这样放在session中会不会不安全?
网上好像说变通的方法可以使客户端获取session中的内容,是这样吗?
2.我也觉得这样存放数据不好,随着系统越来越复杂,可能user的字段会越来越多,session的负担也就越重,但是其中部分信息是我确实需要的,我不想只在session中存个用户名,每次需要用户信息的时候都去查数据库,这样我觉得不好.所以,各位对于这个有什么好办法吗?
3.如何解决同一时刻一个账号只能在一个电脑上登陆的问题,是应该在数据库中加一个flag判断用户是否已经在线还是如何?请给个好的办法,谢谢!

1:
session是运行在服务器端的..

浏览器只保管了一个sessionId字符串..

而对浏览器保存了那些.. 浏览器是不可见的..也没办法知道的..
(至少我没办法.. 或许某些黑客有吧.. 但不太可能.. 因为系统登陆的问题大家都是这么干的..)

2:哥们你多虑了.. 现在专业的服务器.. 动不动就插10多个G的内存.. 再加上磁盘阵列.. 以前一哥们和我说.. 我们做软件的别想太多硬件消耗.. 怎么方便怎么干.. 搞死他们做硬件的.. 想想我觉得还是有点道理的... 才session中多加几个字段.. 不算什么..没啥影响..

3:对于问题3就是按照你的这种做法来做的..不过还得加上个当前操作员的ip..
(细节怎么做自己想想吧.. 说多了. 你就体会不到编程的乐趣了)..

对于问题2我还补充下...
一般密码在数据库保存的形式都是密文的形式.. 也就是加密过后的字符串..
这样的好处是.. 及时数据库数据泄露.. 黑客不知道程序的加密算法.. 也无法入侵..

先就这么着.. 不懂再问吧..

  1. 如果有后台的话,用户信息放到session中

  2. 如果没有后台,则放到前端的cookie中

1.没听过有变通的方法可以使客户端获取session中的内容,忘高手解答;

2.应该对性能没有多大影响,session保存没问题

3.解决同一时刻一个账号只能在一个电脑上登陆的问题,主要是判断用户异常退出的情况,可以先在数据库中加个flag,再记录用户操作时间,定时更新用户状态。

jsp中保持用户登陆状态的方法是使用session对象。
1、在登陆的servlet中使用以下方法设置session:

public void doGet(HttpServletRequest request, HttpServletResponse response) {
Http