一般情況下,httpSession我們只會(huì)在控制器中會(huì)使用到,如下所示赊级,會(huì)把HttpSession用作參數(shù)來獲取。
@RequestMapping(value = "/findOne")
public Object findOne(HttpSession httpSession) {
Object user = httpSession.getAttribute("user");
// someting...
}
但是如果我們要在service層獲取一些其他的util方法內(nèi)獲取httpSession的話岔绸,調(diào)用方法一層一層傳遞過去就會(huì)略顯繁瑣理逊,所以就想到有沒有什么辦法可以在項(xiàng)目的任意位置獲取到httpSession,故找到了以下的方法盒揉,非常方便晋被。
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
public class SessionUtil {
public static HttpSession getHttpSession() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
return request.getSession();
}
}