Tôi đang phát triển Java Servlets. Tại thời điểm kiểm tra xem người dùng có đăng nhập hay không, tôi muốn kiểm tra xem yêu cầu HTTP có phiên hợp lệ hay không. Để kiểm tra xem, tôi có 2 khả năng:Kiểm tra phiên hợp lệ: 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
...
}
}
Kể từ khi tôi vượt qua sai lầm như một cuộc tranh cãi, không có phiên mới được tạo ra nếu không có phiên hợp lệ đã tồn tại, và trở về chức năng null, cho những gì tôi có thể kiểm tra.
Hoặc tôi làm:
(2)
if (request.isRequestedSessionIdValid()) {
// user is logged in
...
}
Có sự khác biệt, bất kỳ lợi thế/bất lợi? Hoặc làm cả hai chức năng làm nhiều hơn hoặc ít hơn như nhau?
+1 cho "Sau khi vùng chứa yêu cầu đầu tiên tạo phiên và gửi cookie Jsessionid cùng với phản hồi" – informatik01