java session 问题

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:16:06
有两个问题,一个是SESSION监听问题
session.setAttribute("_listener",fileserver.OnlineUsers.getInstance());
用这个方法把一个类的实例放入SESSION但是不知道怎么实现用户登陆与判断用户登陆,比如无法实现session.getAttribute(userName)!=null来判断用户已经登陆,也无法用前一方法提取当前登陆的用户名.
第二个是如果使用session.setAttribute("userName","王某某");
为什么在同一机器的任何一个页面使用session.getAttribute("userName")都会返回"王某某",因为我在尝试使用session.getId();来提取用户名的时候不同页面的session是不一样的,这很让人费解.

第一个问题,你这样的做法我不知道有什么意义,然后只是把一个实例放到session中我没想出能判断用户已经登陆的方法,也不可能提取当前登陆的用户名.
感觉要判断用户是否登陆一般就用session.getAttribute(userName)!=null之类的方法。
第二个问题,与IE的存放位置有关吧`session是存在于本机的IE中的我是这样理解的,不知道措辞对否,不是存在与服务器,你不管打开哪个IE页面,你设置session都是存在的,所以才会出现“在同一机器的任何一个页面使用session.getAttribute("userName")都会返回"王某某"”

第一个,你真的确定类实例会存入到session中,真的可取到类实例的属性吗?即使是,我想你用session.getAttribute(“userName”) 得到userName 属性的值也要通过类实例才行吧。
第二个,session对象是存储在应用程序的会话中的,存储在同一浏览器中的,如果你新开一个浏览器启动服务,session是一个新的,值一样的原因是你设置的userName值都是“王某某”,如果你将其消毁或重新赋值,取到的值将不一样。如再:session.setAttribute(“userName”,”张三”);

否定你的做法。session不可以乱用的。
没什么好说的 到公司里session不是可以随便写的。
那样软件的性能会大大下降。
避免用session吧。
用习惯了以后,以后你就不会用别的方法解决问题了。