Jul*_*lia 3 java spring spring-mvc
我想为每个登录的用户存储,他的身份在Spring会话中.我做的是:
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
HttpSession session = request.getSession(true);
session.getServletContext().setAttribute("userId", userId);
Run Code Online (Sandbox Code Playgroud)
当我需要id时,我正在做
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
.getRequestAttributes()).getRequest();
HttpSession session = request.getSession();
Long userId = (Long) session.getServletContext().getAttribute("userId");
Run Code Online (Sandbox Code Playgroud)
第一个用户登录,获取会话ID即可.
第二个用户登录,会话ID被覆盖(我看到因为第一个用户的每个下一个操作,获取第二个用户的用户ID)
实现这一点的正确方法是什么,显然我不能正确理解会话?
感谢所有的建议
您将属性存储在ServletContext,该属性在同一个Web应用程序的所有会话之间共享.
您应该将属性存储在HttpSession自身中:
session.setAttribute("userId", userId);
然后检索它:
Long userId = (Long) session.getAttribute("userId");
| 归档时间: |
|
| 查看次数: |
2410 次 |
| 最近记录: |