Trong bài này, chúng ta sẽ thảo luận về các đối tượng ẩn trong JSP (Implicit Objects). Các đối tượng này là các đối tượng Java mà JSP Container cung cấp cho các nhà phát triển trong mỗi trang. Nhà phát triển có thể gọi chúng trực tiếp mà không cần phải khai báo. Các đối tượng ẩn này cũng được gọi là các biến được định nghĩa trước.
Bảng sau liệt kê 9 đối tượng ẩn mà JSP hỗ trợ:
No. | Đối tượng & Mô tả |
---|---|
1 | request Đây là đối tượng HttpServletRequest được liên kết với request. |
2 | response Đây là đối tượng HttpServletResponse được liên kết với response tới client. |
3 | out Đây là đối tượng PrintWriter được sử dụng để gửi dữ liệu tới client. |
4 | session Đây là đối tượng HttpSession được liên kết với request. |
5 | application Đây là đối tượng ServletContext được liên kết với application context. |
6 | config Đây là đối tượng ServletConfig được liên kết với page. |
7 | pageContext Điều này đóng gói việc sử dụng các tính năng cụ thể của server như JspWriters với hiệu suất cao hơn. |
8 | page Đơn giản là một từ đồng nghĩa với this, được sử dụng để gọi các phương thức được định nghĩa bởi lớp servlet được biên dịch. |
9 | Exception Đối tượng Exception cho phép các dữ liệu ngoại lệ được truy cập bằng JSP được chỉ định. |
Nội dung chính
1. Đối tượng request
Đối tượng request là một thể hiện của javax.servlet.http.HttpServletRequest. Mỗi lần client request một trang thì JSP engine tạo ra một đối tượng mới để đại diện cho request đó.
Đối tượng request cung cấp các phương thức để lấy thông tin HTTP header bao gồm Form data, cookie, HTTP method vv.
2. Đối tượng response
Đối tượng response là một thể hiện của javax.servlet.http.HttpServletResponse. Cũng như việc server tạo ra các đối tượng resquest, nó cũng tạo ra một đối tượng response để đại diện cho các phản hồi cho client.
Đối tượng response cũng định nghĩa các giao diện để tạo ra HTTP header mới. Thông qua đối tượng này, lập trình viên JSP có thể thêm cookie mới hoặc date stamps, HTTP status code, vv.
3. Đối tượng out
Đối tượng ngầm ẩn là một thể hiện của javax.servlet.jsp.JspWriter và được sử dụng để gửi nội dung trong một phản hồi.
Đối tượng JspWriter ban đầu được khởi tạo bằng cách khác nhau tùy thuộc vào việc trang được buffered hay không. Buffer có thể dễ dàng bị tắt bằng cách sử dụng thuộc tính buffered = 'false' của page directive.
Đối tượng JspWriter chứa hầu hết các phương thức tương tự như lớp java.io.PrintWriter. Tuy nhiên, JspWriter có một số phương thức bổ sung được thiết kế để đối phó với buffering. Không giống như đối tượng PrintWriter, JspWriter throw IOExceptions.
Bảng sau liệt kê ra các phương thức quan trọng mà chúng ta sẽ sử dụng để ghi kiểu dữ liệu char, boolean, int, double, object, String , vv
S.No. | Phương thức & Mô tả |
---|---|
1 | out.print(dataType dt) In giá trị của kiểu dữ liệu. |
2 | out.println(dataType dt) In giá trị kiểu dữ liệu với ký tự dòng mới. |
3 | out.flush() Xả stream. |
4. Đối tượng session
Đối tượng session là một thể hiện của javax.servlet.http.HttpSession và hoạt động chính xác theo cách mà các đối tượng session trong Java Servlets.
Đối tượng session được sử dụng để theo dõi phiên của các request của client.
5. Đối tượng application
Đối tượng application là thể hiện của một đối tượng javax.servlet.ServletContext.
Đối tượng này là một đại diện của trang JSP thông qua toàn bộ vòng đời của nó. Đối tượng này được tạo ra khi trang JSP được khởi tạo và sẽ bị xóa khi trang JSP bị xóa bởi phương thức jspDestroy().
Bằng cách thêm thuộc tính vào application, bạn có thể đảm bảo rằng tất cả các tệp JSP của ứng dụng web của bạn đều có quyền truy cập vào nó.
6. Đối tượng config
Đối tượng config là thể hiện của một đối tượng javax.servlet.ServletConfig.
Đối tượng này cho phép lập trình viên JSP truy cập vào các tham số khởi tạo Servlet hoặc JSP engine như đường dẫn hoặc vị trí tập tin, vv.
Phương thức sau trả về tên servlet, là chuỗi chứa trong phần tử <servlet-name> được định nghĩa trong file WEB-INF\web.xml.
config.getServletName();
7. Đối tượng pageContext
Đối tượng pageContext là một thể hiện của javax.servlet.jsp.PageContext. Đối tượng pageContext được sử dụng để đại diện cho toàn bộ trang JSP.
Đối tượng này được dùng như một phương tiện để truy cập thông tin về trang trong khi vẫn tránh được hầu hết các chi tiết thực hiện.
Đối tượng này chứa các tham chiếu tới các đối tượng request và đối tượng response cho mỗi yêu cầu. Các đối tượng application, config, session, và out được bắt nguồn bằng cách truy cập các thuộc tính của đối tượng này.
Đối tượng pageContext cũng chứa thông tin về các chỉ thị được cấp cho trang JSP, bao gồm thông tin về bộ đệm, errorPageURL và phạm vi trang.
Lớp PageContext định nghĩa một số trường, bao gồm định nghĩa bốn phạm vi PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE và APPLICATION_SCOPE. Nó cũng hỗ trợ hơn 40 phương thức, khoảng một nửa trong số đó được kế thừa từ lớp javax.servlet.jsp.JspContext.
Một trong những phương pháp quan trọng là removeAttribute. Phương thức này chấp nhận một hoặc hai đối số. Ví dụ, pageContext.removeAttribute ("attrName") loại bỏ các thuộc tính từ tất cả các phạm vi, trong khi mã sau chỉ loại bỏ nó từ phạm vi trang:
pageContext.removeAttribute("attrName", PAGE_SCOPE);
8. Đối tượng page
Đối tượng này là một tham chiếu thực tế tới thể hiện của một page. Nó có thể được coi như một đối tượng đại diện cho toàn bộ trang JSP.
Đối tượng page là tương đương vơi đối tượng this.
9. Đối tượng exception
Đối tượng ngoại lệ là một wrapper có chứa ngoại lệ được ném ra từ trang trước. Nó thường được sử dụng để tạo ra một phản hồi phù hợp với điều kiện lỗi.