当我学习如何在Servlet中创建会话时。我读到Servlet API提供了一个名为HttpSession
的类来创建会话。
HttpSession session = request.getSession(true);
然后,我正在查看一些示例代码并看到了这段代码。
// Get the bean from session.
Customer customer = request.getSession(true).getAttribute("userinfo");
这到底发生了什么?他们是如何在不使用HttpSession
类的情况下创建会话的?
答案 0 :(得分:2)
该行
Customer customer = request.getSession(true).getAttribute("userinfo");
相当于
HttpSession tempVariable = request.getSession(true);
Customer customer = tempVariable.getAttribute("userinfo");
但没有临时变量。这只是方法链接。 request.getSession(true)
是一个类型为HttpSession
的表达式,因为getSession()
方法返回HttpSession
。因此,您可以在此表达式上调用HttpSession
的方法。
请注意,request
是一个HttpServletRequest,而不是问题所说的HttpServlet
。