成功登陆后执行session.setAttribute("username",1212);每个用户登陆后都会在session中存储
是存储在哪里?在应用程序中取session.getAttribute("username");怎么知道是取的哪一个?
有哪几种类型的Session,他们的生命周期有多长?

解决方案 »

  1.   

    每次用户登录的时候都会有一个sessionID,也就是用户编号,这个编号在整个应用程序中都是独一无二的,所以session.getAttribute("username");的时候都会利用sessionID判断到底是那个的attribute,应该是这样的吧。
      

  2.   

    顺便说一下,每个session 都有一个会话时间,也就是 web.xml 中的 time-out 标签中设置的值,当一个session 过期之后,那个 sessionID 也就失效了!
      

  3.   

    你的意思好像是所有的用户都是一个username属性 ,其实不是这样的
    不同的浏览器进程有不同的session
    session.getAttribute("username");是取得当前浏览器进程的会话,只会有一个用户
    只有一种session
    生命周期可以自己在xml文件中配置,也可以在程序中编码
      

  4.   

    我知道一个用户只有一个session但是session.getAttribute() 是服务器端的方法啊?又不是运行在浏览器端的,我还是觉得通过用户的sessionID来取得的
      

  5.   

    当每个用户登陆后的session在后台都以session id为主键存在不同list中,每个用户对应一个list。
    每个用户session.getAttribute("username")的时候,username会存在他session id对应的list中。你在后台拿到session,都是当前登录用户的,只能取到当前用户(list中)set的值。
      

  6.   

    session 是跟客户端的cookie挂钩的,每个访问的人都会创建一个自己的session ID  这个ID好象是存储在cookie里的,我几的有点模糊  你自己看看吧
      

  7.   

    session.getAttribute()取的是当前登录的用户,每个用户都有自己的sessionID
      

  8.   

    楼主的意思是在服务器端用request.getAttribute()方法的时候吗?   其实客户端提交请求到服务器的时候,会把客户端的request对象传到服务器的,服务器通过request.getSession.getAttribute()方法获得session作用域里面的值,因为每个客户的request都不一样,所以他们对应的session也不一样,就算每个客户往里面存的都叫username,服务端照样不会混淆!不知道我解释的清除不?
      

  9.   

    session也有自己的id号,不同的用户在登陆后,session会有自己的id号,session存在内存中,session周期,当关闭window窗口时,session就死了。当然,session也可以自定义生命周期。
      

  10.   

    销毁session:
    session有3个方法可以销毁,1:关闭浏览器 2:间隔时间大于非活动时间(大约30分钟)3:调用session的销毁方法。
      

  11.   

    10楼的兄弟讲的有道理,如果是application.setAttribute();application.getAttribute();这种情况下是如何区分各个用户的?
      

  12.   

    服务器分配给浏览器sessionID后就把sessionID保存在自己的内存中
    以后只要有请求 就根据可语段的request对象取得的sessionID 与自己内存中的sessionID对比来确定
    每个id都不一样
      

  13.   

    sessio的生命周期在整个会话过程中,也就是说当某一用户登陆后,在这个用户所有页面中都可以共享session里的值,它是通过键值对的方式进行存储的,调用的时候取到它的键就可以获得它的值。
      

  14.   

    application是全局的变量,这个变量属于哪个对象呢?
      

  15.   

    application是全局的,会存在与服务器端,不管客户端是否关闭窗口application Session还是存在的,可以这么说吧,只要服务器不关闭application session一直都存在!
      

  16.   

    楼上说的很清楚了,每个用户登录后的Session 是不同的。
    Application 是整个应用程序有效  application.getAttribute(); 这样好像就得不能重复出现吧
      

  17.   

    session是和浏览器有关的  
    有多少了浏览器连接了这个application就有多少了session  当然session有自己的规则去销毁
      

  18.   

    楼主通常是在servletClass或是struts的action中操作session的,这两个东西都可以看作两个处理组件,前者是由servlet容器负责实例化和接受请求,后者是由struts框架实例化并映射调用。
    session这个接口的实例则是由servlet容器负责创建并注入到servletClass的方法里,当客户A请求servletClassA时,servletClassA里的service(doGet/doPost)方法将获得对应客户A的session,struts1与servlet类似,2则是struts单独封装的组件,也可以获得请求此组件的客户的session。
    总之就是,谁发了请求,session就是谁的