JSP Scopes

4 Object Scopes

JSP hỗ trợ 4 phạm vi (scope) để lưu trữ và truy xuất dữ liệu:

ScopeĐối tượng đại diệnThời gian tồn tại
PagepageContextTrong cùng một trang JSP
RequestrequestTrong 1 request từ client (cùng forward)
SessionsessionTrong toàn bộ phiên làm việc của người dùng
ApplicationapplicationTrong toàn bộ vòng đời của ứng dụng web

JSP Scopes


Trong Controller (Servlet)

Lấy tham số từ form hoặc URL

String password = request.getParameter("password");

Đặt giá trị vào session

HttpSession session = request.getSession();
session.setAttribute("username", username);

Đặt giá trị vào request

request.setAttribute("message", message);

Trong Page (JSP)

Lấy giá trị từ Session

Scriptlet

<%
  String username = (String) session.getAttribute("username");
%>
<%= username %>

Expression Language (EL)

${sessionScope['username']}
${sessionScope.username}
${username} <!-- nếu không bị ghi đè -->

Lấy giá trị từ Request

Scriptlet

<%
  String message = (String) request.getAttribute("message");
%>
<%= message %>

EL

${requestScope['message']}
${requestScope.message}
${message}

Truy cập biến trong Page Scope

Scriptlet

<%!
  int x = 5;
%>
<%= x %>

EL (cần set thủ công)

<%
  int x = 5;
  pageContext.setAttribute("x", x);
%>
${pageScope.x}
${x}

Session là gì?

  • Session là một chuỗi các yêu cầu và phản hồi giữa trình duyệt và máy chủ, được xác định bằng Session ID.
  • Session cho phép lưu trữ thông tin tạm thời (ví dụ: thông tin người dùng đăng nhập).

Ứng dụng của Session:

  1. Duy trì trạng thái đăng nhập.
  2. Lưu các thiết lập cá nhân (ví dụ: ngôn ngữ, theme).
  3. Theo dõi phiên làm việc của người dùng.
  4. Là nền tảng của các ứng dụng như giỏ hàng, trò chơi web, v.v.

Cookies là gì?

  • Cookies là các tệp nhỏ được trình duyệt lưu lại khi người dùng truy cập web.
  • Cookies lưu trữ thông tin như: đăng nhập, ngôn ngữ, sở thích,...

Ứng dụng của Cookies:

  1. Ghi nhớ thông tin đăng nhập.
  2. Ghi nhớ ngôn ngữ, hiển thị theo người dùng.
  3. Theo dõi hành vi truy cập của người dùng.
  4. Phục vụ cá nhân hóa quảng cáo và nội dung.

So sánh: Cookies vs Session

Tiêu chíCookieSession
Lưu ở đâu?Máy tính người dùng (trình duyệt)Máy chủ web
Thời gian sốngCó thể lâu dài (tuỳ set)Tồn tại đến khi trình duyệt đóng
Bảo mậtÍt bảo mật hơnBảo mật hơn
Truy cậpCó thể bị truy cập bởi JSChỉ truy cập được từ phía server

👉 Session thích hợp cho dữ liệu nhạy cảm.
👉 Cookies thích hợp cho lưu trạng thái nhẹ như "ghi nhớ đăng nhập".