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ện | Thời gian tồn tại |
|---|---|---|
| Page | pageContext | Trong cùng một trang JSP |
| Request | request | Trong 1 request từ client (cùng forward) |
| Session | session | Trong toàn bộ phiên làm việc của người dùng |
| Application | application | Trong toàn bộ vòng đời của ứng dụng web |

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:
- Duy trì trạng thái đăng nhập.
- Lưu các thiết lập cá nhân (ví dụ: ngôn ngữ, theme).
- Theo dõi phiên làm việc của người dùng.
- 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:
- Ghi nhớ thông tin đăng nhập.
- Ghi nhớ ngôn ngữ, hiển thị theo người dùng.
- Theo dõi hành vi truy cập của người dùng.
- 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í | Cookie | Session |
|---|---|---|
| Lưu ở đâu? | Máy tính người dùng (trình duyệt) | Máy chủ web |
| Thời gian sống | Có 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ơn | Bảo mật hơn |
| Truy cập | Có thể bị truy cập bởi JS | Chỉ 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".
