我正在开发 Java Servlet。在检查用户是否登录时,我想检查 HTTP 请求是否具有有效会话。为了检查这一点,我有两种可能性:
(1)
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession(false);
if (session != null) {
// user is logged in
...
}
}
由于我将 false 作为参数传递,因此如果不存在有效会话,则不会创建新会话,并且该函数返回 null,我可以检查。
或者我这样做:
(2)
if (request.isRequestedSessionIdValid()) {
// user is logged in
...
}
有什么区别,有什么优点/缺点吗?或者这两个功能或多或少是一样的?