request.getSession()和request.getSession(boolean createNew)的意义

时间:2012-05-15 17:54:57

标签: java http servlets

在Servlet中使用HttpServletRequest.getSession()方法时,我意识到Servlet API的官方文档表明,如果当前会话已过期或已失效,HttpServletRequest.getSession()将返回一个新的会话对象。

此外,当HttpServletRequest.getSession(boolean createNew)为真且前一个会话不再存在时,createNew会返回新会话。

正常情况下,IMO在设计API时,如果前一个会话无效,HttpServletRequest.getSession(true)会返回现有会话(如果存在),则可以将这些方法设计为HttpServletRequest.getSession()创建新会话,否则返回空。

API的这一重大差异是否有任何具体原因?

1 个答案:

答案 0 :(得分:0)

应用程序更可能需要当前会​​话或创建新会话而不是当前会话(仅当存在时)。因此,Servlet EG选择的API按原样编写。