当前位置: 代码迷 >> Java Web开发 >> 怎么在servlet中获取所有Session
  详细解决方案

怎么在servlet中获取所有Session

热度:325   发布时间:2016-04-16 21:53:07.0
如何在servlet中获取所有Session
如题, 我想获取容器维护的所有Sesion 请问这个API是否存在
------解决思路----------------------
没有这个API,不过一种解决方案是你可以手动设置一个集合存所有用户的session
------解决思路----------------------
自己存的自己可以取得,但是只有通过getSession("key");   别人的session是不可能得到的
------解决思路----------------------
引用:
没有这个API,不过一种解决方案是你可以手动设置一个集合存所有用户的session


基于安全的原因,不会有这样的 API,你的程序只能自己用 HttpSessionListener 在 session 创建时把它存起来。

Servlet 有几种 Listener 其中就包括一种 session listener,在 web.xml 中配置它。

------解决思路----------------------
想取容器维护的所有 session 这种说法不切实际。因为  session  本身是服务器维护的,从服务器角度讲,所有的程序是共用同一个内存,数据应该互相分离防止安全漏洞,但为了让用户在服务器上一次登录到处使用,服务器又希望这些 session 本身是同一个。因此服务器的设计可以考虑很多种方案,也就说,服务器维护的所有 session 既包括当前应用程序的也包括其它应用程序的,而从安全角度讲我们当然只能拿到当前应用程序相关的数据,我想你指的也是当前的应用程序,当服务器让所有程序使用相同的 session 时(当然服务器会保证不同应用程序之间不会访问到别人的数据),你这说法就不准确了。
  相关解决方案