HttpSession setAttribute 的 key 应该怎么写?

session.setAttribute 的 key 如果设为常量的话,不同用户登录会有问题吗?

阅读 4.4k
6 个回答

不会,可以设置为常量。每个用户对应一个session,当客户端访问服务器的时候,服务器会返回一个sessionId(浏览器会自动将其储存),下次客户端再次访问的时候只要带着这个sessionId就可以访问到他之前的session数据。

不会,不同的用户登录,你取得的 Session 对象是不同的。Session 是否一样是由一个叫 jsessionid 的 Cookie 决定的,你可以搜索下 jsessionid 相关的内容。

之前怎么写,现在就怎么写,key如果设为常量也没关系,因为他是由cookies来决定的

不同用户登录有不同的session,所以你每个session放的东西都只在一个用户里有效。

没关系,每个用户一个session实例,你想冲突都冲突不了

不会有问题。
取决于你使用的 Servlet 容器,以 Tomcat 为例,容器是根据 JSESSIONID 这个 Cookie 查找存储在服务器端的 Session 对象,不同客户端,对应的 JSESIONID 的值不同,对应不同的 Session 对象。你使用
setAttribute(key, value) 方法就是往这个对象里添加属性。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题