我正在开发Java Servlets。在检查用户是否登录时,我想检查HTTP请求是否有有效的会话。为了检验这一点,我有2种可能:检查有效会话:isRequestedSessionIdValid()vs getSession(false)
(1)
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession(false);
if (session != null) {
// user is logged in
...
}
}
因为我通过假作为参数,还有如果现有的已经没有有效的会话创建任何新的会话,并在函数返回null,因为我可以检查。
还是我做的:
(2)
if (request.isRequestedSessionIdValid()) {
// user is logged in
...
}
有什么区别,什么优势/劣势?或者两个函数做的差不多呢?
+1“在第一个请求容器创建会话并发送Jsessionid cookie和响应之后” – informatik01