在项目中多个地方都涉及到对登录后session中的用户信息进行操作,而且方法相同。所以就准备写一个公共方法。
但是在普通类中无法直接获取session。反复百度摸索好久成功解决(太笨没办法(╥╯^╰╥))。
首先先获取request对象
public class GetRequest {
public static HttpServletRequest getRequest() {
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
return request;
}
}
已经得到request对象了,那得到其他的bean就很简单了。
获取session
public class GetSession {
public static HttpSession getSession(){
HttpServletRequest request = GetRequest.getRequest();
HttpSession session = request.getSession();
return session;
}
}
以此类推也就可以获得servletcontext了。在普通类方法中我们就可以获取到他们了