我正在Spring MVC项目中工作,从我们使用的会话中获取值..
session = request.getSession(false);
Object obj = (Object) session.getAttribute("sessionVeriable");
request
是从控制器传递的HttpServletRequest
类对象。
我的观点是为什么HttpServletRequest
对象直接传递给HttpSession
的原因。从HttpServletRequest获取会话对象和直接从HttpSession获取会话对象有什么区别吗?
答案 0 :(得分:4)
session = request.getSession(false);
才会返回会话。例如。 RESTful应用程序肯定会在没有会话的情况下工作。这反过来意味着您提供的代码理论上可以抛出NullPointerException
。
将HttpSession
实例传递给方法意味着如果没有任何实例与请求关联,则会创建会话。如果request
参数不用于其他内容,那么在您的情况下,这是更好的选择。
为了完整起见,session = request.getSession();
实际上与拥有HttpSession
参数相同。