page Directive trong JSP



page directive đượ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:


Thuộc tính của page directive trong JSP

Bảng dưới liệt kê danh sách 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 (buffering model) 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

Thuộc tính buffer của page directive trong JSP

Thuộc tính buffer xác định các đặc trưng chuyển hoán đệm cho Server tạo đối tượng response.

Bạn có thể mã hóa một giá trị "none" để xác định rằng không có chuyển hoán đệm, để mà tất cả servlet output ngay lập tức được hướng tới đối tượng response hoặc bạn có thể mã hóa một kích cỡ đệm tối đa bằng giá trị kB, hướng Servlet để ghi tới bộ đệm trước khi ghi output tới đối tượng response.

Để hướng servlet ghi output trực tiếp tới đối tượng response, bạn sử dụng:

<%@ page buffer="none" %>

Sử dụng cú pháp sau để hướng servlet ghi output tới bộ đệm, có kích cỡ không nhỏ hơn 8 kB.

<%@ page buffer="8kb" %>

Thuộc tính autoFlush của page Directive trong JSP

Thuộc tính autoFlush xác định có hay không output đã được đệm nên được chuyển ra ngoài một cách tự động khi buffer đã đầy, hoặc có hay không một exception nên được nêu ra để chỉ tràn luồng bộ đệm.

Giá trị true mặc định chỉ rằng bộ đệm tự động flush và giá trị false ném một exception.

Directive sau làm Servlet ném một exception khi output buffer là đầy:

<%@ page autoFlush="false" %>

Directive sau làm Servlet sẽ chuyển output buffer ra ngoài khi đầy:

<%@ page autoFlush="true" %>

Thường thì, thuộc tính buffer và autoFlush được mã hóa trên một page directive đơn như sau:

<%@ page buffer="16kb" autoflush="true" %>

Thuộc tính contentType của page directive trong JSP

Thuộc tính contentType thiết lập mã hóa ký tự cho JSP page và cho trang phản hồi đã tạo. Kiểu nội dung mặc định là text/html, là content type chuẩn cho các trang HTML.

Nếu bạn muốn tạo XML từ JSP của bạn, sử dụng page directive sau:

<%@ page contentType="text/xml" %>

Lệnh sau hướng trình duyệt trả lại trang dạng HTML:

<%@ page contentType="text/html" %>

Directive sau thiết lập contentType dạng tài liệu Microsoft Word:

<%@ page contentType="application/msword" %>

Bạn cũng có thể xác định mã hóa ký tự cho Response. Ví dụ, nếu bạn muốn xác định trang kết quả, mà được trả về tới trình duyệt sử dụng ISO Latin 1, bạn sẽ sử dụng page directive trong JSP sau:

<%@ page contentType="text/html:charset=ISO-8859-1" %>

Thuộc tính errorPage của page directive trong JSP

Thuộc tính errorPage nói cho JSP engine: trang nào để hiển thị nếu có một error trong khi trang hiện tại đang chạy. Giá trị của thuộc tính errorPage là một URL quan hệ.

Directive sau hiển thị MyErrorPage.jsp khi tất cả exception chưa bị bắt được ném:

<%@ page errorPage="MyErrorPage.jsp" %>

Thuộc tính isErrrorPage của page directive trong JSP

Thuộc tính isErrrorPage chỉ rằng JSP hiện tịa có thể được sử dụng như là error page cho JSP khác.

Giá trị của isErrrorPage là true hoặc false. Giá trị mặc định của thuộc tính isErrrorPage là false.

Ví dụ, handleError.jsp thiết lập tùy chọn isErrrorPage là true bởi vì nó được hỗ trợ để xử lý các lỗi:

<%@ page isErrorPage="true" %>

Thuộc tính extends của page directive trong JSP

Thuộc tính extends xác định một lớp cha mà Servlet đã tạo phải kế thừa.

Ví dụ, directive sau hương JSP translator tạo Servlet để mà Servlet đó kế thừa somePackage.SomeClass:

<%@ page extends="somePackage.SomeClass" %>

Thuộc tính import của page directive trong JSP

Thuộc tính import vận hành và thực hiện các chức năng giống lệnh import trong Java. Giá trị của tùy chọn import là tên của package bạn muốn nhập:

Để nhập java.sql.*, bạn sử dụng page directive trong JSP sau:

<%@ page import="java.sql.*" %>

Để nhập nhiều package, bạn có thể xác định chúng phân biệt nhau bởi dấu phảy như sau:

<%@ page import="java.sql.*,java.util.*"  %>

Theo mặc định, một container tự động nhập java.lang.*, javax.servlet.*, javax.servlet.jsp.*, và javax.servlet.http.*.

Thuộc tính info của page directive trong JSP

Thuộc tính info cho bạn cung cấp một mô tả của JSP. Sau đây là ví dụ:

<%@ page info="This JSP Page Written By ZARA"  %>

Thuộc tính isThreadSafe của page directive trong JSP

Thuộc tính isThreadSafe đánh dấu một trang để là thread-safe (an toàn luồng). Theo mặc định, tất cả JSP được xem như là thread-safe. Nếu bạn thiết lập thuộc tính isThreadSafe là false, JSP engine đảm bảo rằng chỉ có một thread tại một thời điểm đang thực thi JSP của bạn.

page directive trong JSP sau thiết lập thuộc tính isThreadSafe là false:

<%@ page isThreadSafe="false"  %>

Thuộc tính language của page directive trong JSP

Thuộc tính language chỉ ngôn ngữ lập trình được sử dụng trong JSP page.

Ví dụ, vì bạn thường sử dụng Java là ngôn ngữ scripting, thuộc tính language sẽ giống như sau:

<%@ page language="java" %>

Thuộc tính session của page directive trong JSP

Thuộc tính session chỉ có hay không JSP page sử dụng HTTP session. Giá trị true nghĩa là JSP page có quyền truy cập tới đối tượng session có sẵn, và giá trị false nghĩa là JSP page không có quyền truy cập tới đối tượng session có sẵn.

Directive sau cho phép JSP page sử dụng bất kỳ phương thức của đối tượng session có sẵn như: session.getCreationTime() hoặc session.getLastAccessTime():

<%@ page session="true" %>

Thuộc tính isELIgnored của page directive trong JSP

Thuộc tính isELIgnored cho bạn khả năng để vô hiệu hóa sự ước lượng của Expression Language (EL), đã được giới thiệu trong JSP 2.0.

Giá trị mặc định của thuộc tính là true, nghĩa là các expression, $ {…}, được ước lượng như được xác định bởi JSP Specification. Nếu giá trị là false, thì expression không được ước lượng, nhưng được đối xử như là Static text.

page Directive trong JSP sau thiết lập một expression không được ước lượng:

<%@ page isELIgnored="false" %>

Thuộc tính isScriptingEnabled của page directive trong JSP

Thuộc tính isScriptingEnabled quyết định có hay không các phần tử scripting được cho phép sử dụng.

Giá trị mặc định (true) kích hoạt Scriptlet, Expression, và Declaration. Nếu giá trị là false, một translation-time error sẽ xuất hiện nếu JSP sử dụng bất kỳ Scriptlet, Expression (non-EL), hoặc Declaration nào.

Bạn có thể thiết lập giá trị này là false nếu bạn muốn hạn chế sự sử dụng của Scriptlet, Expression (non-EL), hoặc Declaration.

<%@ page isScriptingEnabled="false" %>

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


directive_trong_jsp.jsp