在Servlet中使用HttpServletRequest.getSession()
方法时,我意识到Servlet API的官方文档表明,如果当前会话已过期或已失效,HttpServletRequest.getSession()
将返回一个新的会话对象。
此外,当HttpServletRequest.getSession(boolean createNew)
为真且前一个会话不再存在时,createNew
会返回新会话。
正常情况下,IMO在设计API时,如果前一个会话无效,HttpServletRequest.getSession(true)
会返回现有会话(如果存在),则可以将这些方法设计为HttpServletRequest.getSession()
创建新会话,否则返回空。
API的这一重大差异是否有任何具体原因?
答案 0 :(得分:0)
应用程序更可能需要当前会话或创建新会话而不是当前会话(仅当存在时)。因此,Servlet EG选择的API按原样编写。