Directive trong JSP



JSP directive cung cấp các chỉ dẫn và chỉ lệnh tới container, nói cho nó cách để xử lý các mặt cụ thể của tiến trình xử lý JSP.

Một Directive trong JSP ảnh hưởng tới cấu trúc tổng thể của lớp Servlet. Nó thường có form sau:

<%@ directive attribute="value" %>

Directive có thể có các thuộc tính mà bạn có thể liệt kê dưới dạng các cặp key-value và được phân biệt bởi dấu phảy.

Các khoảng trống giữa ký hiệu @ và tên directive, và giữa thuộc tính cuối cùng và ký hiệu đóng %>, là tùy ý.

Có 3 loại thẻ directive trong JSP:

Directive Miêu tả
<%@ page ... %>Định nghĩa một thuộc tính page-dependent (phụ thuộc trang), như ngôn ngữ scripting, trang lỗi và các yêu cầu bộ đệm
<%@ include ... %>Include một file trong suốt giai đoạn phiên dịch
<%@ taglib ... %>Khai báo một thư viện thẻ, chứa các action tùy biến, được sử dụng trong trang đó

page Directive trong JSP

page Directive trong JSP được sử dụng để cung cấp các chỉ lệnh tới container mà liên quan tới JSP page hiện tại. Bạn có thể mã hóa page directive bất cứ đâu trong JSP page của bạn. Theo qui ước, page directive được mã hóa tại trên cùng của JSP page.

Sau đây là cú pháp cơ bản của page Directive trong JSP:

<%@ page attribute="value" %>

Bạn có thể viết XML tương đương với cú pháp trên như sau:


Các thuộc tính của page directive trong JSP

Bảng dưới liệt kê các thuộc tính liên kết với page Directive trong JSP:

Thuộc tính Mục đích
bufferXác định một mô hình đệm cho Output Stream
autoFlushĐiều khiển hành vi của Output buffer của Servlet
contentTypeĐịnh nghĩa giản đồ mã hóa ký tự
errorPageĐịnh nghĩa URL của JSP khác mà báo cáo trên Java các unchecked runtime exception
isErrorPageChỉ rằng nếu JSP page này là một URL được xác định bởi thuộc tính ErrorPage của JSP page khác
extendsXác định một lớp cha mà Servlet đã tạo phải kế thừa
importXác định một danh sách các package hoặc class để sử dụng trong JSP khi lệnh import trong Java làm việc cho các lớp Java
infoĐịnh nghĩa một chuỗi mà có thể được truy cập với phương thức getServletInfo() của Servlet
isThreadSafeĐịnh nghĩa mô hình thread cho Servlet đã tạo
languageĐịnh nghĩa ngôn ngữ lập trình được sử dụng trong JSP page
sessionXác định có hay không JSP page tham dự trong các HTTP session
isELIgnoredXác định có hay không EL expression bên trong JSP page sẽ bị bỏ qua
isScriptingEnabledQuyết định nếu các phần tử scripting được cho phép sử dụng

Bạn có thể hiểu chi tiết hơn về các thuộc tính trên tại: Page Directive trong JSP.

Include Directive trong JSP

include Directive trong JSP được sử dụng để bao một file trong suốt giai đoạn phiên dịch. Directive này nói cho container sáp nhập content của file ngoại vi khác với JSP hiện tại trong quá trình phiên dịch. Bạn có thể mã hóa include directive bất cứ đâu trong JSP page.

Dưới đây là form chung cho include directive trong JSP:

<%@ include file="relative url" >

Tên file trong include directive là một URL quan hệ thực sự. Nếu bạn chỉ xác định một tên file mà không có đường liên kết, thì JSP compiler giả sử rằng file đó là trong cùng thư mục như JSP của bạn.

Bạn có thể viết XML tương đương với cú pháp trên:


Bạn có thể kiểm tra chi tiết về include directive tại: Include Directive trong JSP.

Taglib Directive trong JSP

Java Server Pages API cho phép bạn định nghĩa các Custom Tags trong JSP, mà giống như các thẻ HTML hoặc XML và một thư việc thẻ (tag library) là một tập hợp các thẻ được định nghĩa bởi người sử dụng mà triển khai các hành vi tùy biến.

taglib directive khai báo rằng: JSP page của bạn sử dụng một tập hợp các Custom Tags, thông báo vị trí của thư viện, và cung cấp một phương thức để nhận diện các Custom Tags đó trong JSP page của bạn.

Cú pháp của taglib directive trong JSP như sau:

<%@ taglib uri="uri" prefix="prefixOfTag" >

Ở đây, giá trị thuộc tính uri biểu diễn một vị trí mà container có thể hiểu và thuộc tính prefix thông báo một container về các bit đánh dấu nào là các action tùy biến.

Bạn có thể viết XML tương đương với cú pháp trên như sau:


Kiểm tra chi tiết hơn về taglib directive tại: Taglib Directive trong JSP.

Các bài học JSP khác tại VietJack: