致访客
感谢各位一年多的陪伴,因内容调整,本站将于近日迁移到新域名并不再更新主要内容。

MENU

SSM/Spring获取当前Session中的对象

• March 16, 2020 • 经验分享,Java

致访客
感谢各位一年多的陪伴,因内容调整,本站将于近日迁移到新域名并不再更新主要内容。
特此通知。

导语

工具类中一个模块getCurrentUser的功能是从Session中获取当前用户,如果把Session作为参数传入会显得有些麻烦,要解决这个问题,就要用到RequestContextHolder了。

实现

首先要获取到当前线程绑定的请求对象

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();

接下来获取session取得需要用的对象

request.getSession().getAttribute("obj")

完整代码

public static User getCurrentUser() {
    HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); System.out.println(request.getSession().getAttribute("user"));
    return (User)request.getSession().getAttribute("user");
}

测试结果

606773427.png

Last Modified: June 20, 2020