亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

jsp中page指令用法詳解

2020-07-27 21:30:10
字體:
來源:轉載
供稿:網友

本文實例講述了jsp中page指令用法。分享給大家供大家參考。具體如下:

一、JSP 指令

JSP 指令(directive)影響由 JSP 頁面生成的 servlet 的整體結構。下面的模板給出指令的兩種可能形式。屬性值兩邊的雙引號可以替換為單引號,但引號標記不能完全省略。如果要在屬性值中使用引號,則要在它們之前添加反斜杠,' 使用 /'," 使用 /"

<% directive attribute="value" %><% directive attribute1="value1"attribute2="value2"......attribute3="value3" %>

在 JSP 中,主要有3種類型的指令:page,include 和 taglib。page 指令允許通過類的導入、servlet 超類的定制、內容類型的設置、以及諸如此類的事物來控制 servlet 的結構。page 指令可以放在文檔中的任何地方。第二個指令,include 允許在 JSP 文件轉換到 servlet 時,將一個文件插入到 JSP 頁面中。include 指令應該放 置在文檔中希望插入文件的地方。第三個指令,taglib,定義自 定義的標記標簽。

二、JSP page 指令

page 指令可以定義下面這些大小寫敏感的屬性(大致按照使用的頻率列出):import、contentType、pageEncoding、session、isELIgnored(只限 JSP 2.0)、buffer、autoFlush、info、errorPage、isErrorPage、isThreadSafe、language 和 extends。

2.1 import 屬性

使用 page 指令的 import 屬性指定 JSP 頁面轉換成的 servlet 應該輸入的包。在 JSP 中,包是絕對必需的。原因是,如果沒有使用包,系統則認為所引用的類與當前類在同一個包中。例如,假定一個 JSP 頁面包含下面的 scriptlet:

復制代碼 代碼如下:
<% Test t=new Test(); %>

在此,如果 Test 在某個輸入包中,則沒有歧義。但是,如果 Test 不在包中,或者頁面沒有明確地導入 Test 所屬的包,那么系統將會認為 Test 就在這個自動生成的 servlet 所在的包中。但問題是自動生成的 servlet 所在的包是未知的!服務器在創建 servlet 時,常常會根據 JSP 頁面所在的目錄來決定它的包。別的服務器可能使用其他不同的方式。因此,不能指望不使用包的類能夠正常工作。對于 bean 也同樣如此,因為 bean 不過是遵循某些簡單命名約定和結構約定的類。

默認情況下,servlet 導入 java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*,也許還包括一些服務器特有的包。編寫 JSP 代碼時,絕不要依靠任何自動導入的服務器特有類。這樣做會使得代碼不可移植。

使用 import 屬性時,可以采用下面兩種形式:

<%@ page import="package.class" %><%@ page import="package.class1, ..., package.classN" %>

例如,下面的指令表示 java.util 包和 cn.foololdfat 包中的所有類在使用時無需給出明確的包標識符:

復制代碼 代碼如下:
<%@ page import="java.uti1.*, cn.foololdfat.*" %>

import 是 page 的屬性中惟一允許在同一文檔中多次出現的屬性。盡管 page 指令可以出現在文檔中的任何地方,但一般不是將 import 語句放在文檔頂部附近,就是放在相應的包首次使用之前。

2.2 contentType 和 pageEncoding 屬性

contentType 屬性設置 Content-Type 響應報頭,標明即將發送到客戶程序的文檔的 MIME 類型。有關MIME 類型的更多信息,參見Java Web 開發 (5) HTTP 響應報頭。

使用 contentType 屬性時,可以采用下面兩種形式:

<%@ page contentType="MIME-TYPE" %><%@ page contentType="MIME-Type; charset=Character-Set" %>

例如,指令

復制代碼 代碼如下:
<%@ page contentType="application/vnd.ms-excel" %>

和下面的 scriptlet 所起到的作用基木相同

復制代碼 代碼如下:
<% responce.setContentType("application/vnd.ms-excel"); %>

兩種形式的第一點不同是,response.setContentType 使用明確的 Java 代碼(這是一些開發人員力圖避免使用的方式),而 page 指令只用到 JSP 語法。第二點不同是,指令被特殊處理,它們不是在出現的位置直接成為 _jspService 代碼。這意味著 response.setContentType 能夠有條件地調用,而 page 指令不能。條件性地設置內容的類型主要用在同一內容能夠以多種不同的形式進行顯示的情況下。

不同于常規 servlet (默認的 MIME 類型為 text/plain),JSP 頁面的默認 MIME 類型是 text/html (默認字符集為 ISO-8859-1)。因此,如果 JSP 頁曲以 Latin 字符集輸出 HTML則根本無需使用 contentType,如果希望同時更改內容的類型和字符集,可以使用下面的語句:

復制代碼 代碼如下:
<%@ page contentType="someMimeType; charset=someCharacterSet" %>

但是,如果只想更改字符集,使用 pageEncoding 屬性更為簡單。例如,中文 JSP 頁面可以使用下面的語句:

復制代碼 代碼如下:
<%@ page pageEncoding="GBK" %>

可考慮將Java Web 開發 (5) HTTP 響應報頭中生成 Excel 表格的例子用 JSP 實現,以體會 contentType 的作用。
2.3 session 屬性
session 屬性控制頁面是否參與 HTTP 會話。使用這個屬性時,可以采用下面兩種形式:

<%@ page session="true" %> <%--Default--%><%@ page session="false" %>

true 值(默認)表示,如果存在已有會話,則預定義變量 session (類型為HttpSession)應該綁定到現有的會話;否則,創建新的會話并將其綁定到 session。false 值表示不自動創建會話,在 JSP 頁面轉換成 servlet 時,對變量 session 的訪問會導致錯誤。
對于高流量的網站,使用 session="false" 可以節省大量的服務器內存。但要注意,session="false" 并不禁用會話跟蹤,它只是阻止 JSP 頁面為那些尚不擁有會話的用戶創建新的會話。由于會話是針對用戶,不是針對貞面,所以,關閉某個頁面的會話跟蹤沒有任何益處,除非有可能在同一客戶會話中訪問到的相關頁面都關閉會話跟蹤。
2.4 isELIgnored 屬性
isELIgnored 屬性控制的是:忽略(true)JSP 2.0 表達式語言(EL),還是進行正常的求值(false)。這是 JSP 2.0 新引入的屬性;在只支持 JSP 1.2 及早期版本的服務器中,使用這項屬性是不合法的。這個屬性的默認值依賴于 Web 應用所使用的 web.xml 的版本。如果 web.xml 指定 servlet 2.3(對應JSP 1.2)或更早版本,默認值為 true(但變更默認值依舊是合法的,JSP 2.0 兼容的服務器中都允許使用這項屬性,不管 web.xml 的版本如何)。如果 web.xml 指定 servlet 2.4(對應 JSP 2.0)或之后的版本,那么默認值為false。使用這個屬性時,可以采用下面兩種形式:

<%@ page isELIgnored="false" %><%@ page isELIgnored="true" %>

2.5 buffer 和 autoFlush 屬性
buffer 屬性指定 out 變量(類型為 JspWriter )使用的緩沖區的大小。使用這個屬性時,可以采用下面兩種形式:

<%@ page buffer="sizekb" %><%@ page buffer="none" %>

服務器實際使用的緩沖區可能比指定的更大,但不會小于指定的大小。例如,<%@ page buffer="32kb" %> 表示應該對文檔的內容進行緩存,除非累積至少為32KB、頁面完成或明確地對輸出執行清空(例如使用 response. flushBuffer),否則不將文檔發送給客戶。

默認的緩沖區大小與服務器相關,但至少8KB。如果要將緩沖功能關閉,應該十分小心:這樣做要求設置報頭或狀態代碼的 JSP 元素都要出現在文件的頂部,位于任何 HTML 內容之前。另一方面,有時輸出內容的每一行都需要較長的生成時間,此時禁用緩沖或使用小緩沖區會更有效率;這樣,用戶能夠在每一行生成之后立即看到它們,而不是等待更長的時間看到成組的行。

autoFlush 屬性控制當緩沖區充滿之后,是應該自動清空輸出緩沖區(默認),還是在緩沖區溢出后拋出一個異常(autoFlush="false")。使用這個屬性時,可以采用下面兩種形式:

<%@ page autoFlush="true" %> <%--Default--%><%@ page autoFlush="false" %>

在 buffer="none" 時,false 值是不合法的。如果客戶程序是常規的 Web 瀏覽器,那么 autoFlush="false" 的使用極為罕見。但是,如果客戶程序是定制應用程序,可能希望確保應用程序要么接收到完整的消息,要么根本沒有消息。false 值還可以用來捕獲產生過多數據的數據庫查詢,但是,一般說來,將這些邏輯放在數據訪問代碼中(而非表示代碼)要更好一些。

2.6 info 屬性

info 屬性定義一個可以在 servlet 中通過 getServletInfo 方法獲取的字符串,使用 info 屬性時,采用下面的形式:

復制代碼 代碼如下:
<%@ page info="Some Message" %>

2.7 errorPage 和 isErrorPage 屬性

errorPage 屬性用來指定一個 JSP 頁面,由該頁面來處理當前頁面中拋出但未被捕獲的任何異常(即類型為 Throwable 的對象)。它的應用方式如下:

復制代碼 代碼如下:
<%@ page errorPaqe="Relative URL" %>

指定的錯誤頁面可以通過 exception 變量訪問拋出的異常。
isErrorPage 屬性表示當前頁是否可以作為其他 JSP 頁面的錯誤頁面。使用 isErrorPage 屬性時,可以采用下面兩種形式:

<%@ page isErrorPage="true" %><%@ page isErrorPage="false" %> <%--Default--%>

2.8 isThreadSafe 屬性

isThreadSafe 屬性控制由 JSP 頁面生成的 servlet 是允許并行訪問(默認),還是同一時間不允許多個請求訪問單個 servlet 實例(isThreadSafe="false")。使用 isThreadSafe 屬性時,可以采用下面兩種形式:

<%@ page isThreadSafe="true" %> <%--Default--%><%@page isThreadSafe="false" %>

遺憾的是,阻止并發訪問的標準機制是實現 SingleThreadModel接口。盡管在早期推薦使用 SingleThreadModel 和 isThreadSafe="false",但最近的經驗表明 SingleThreadModel 的設計很差,使得它基本土毫無用處。因而,應該避免使用 isThreadSafe,采用顯式的同步措施取而代之。

2.9 extends 屬性

extends 屬性指定 JSP 頁面所生成的 servlet 的超類(superclass )。它采用下面的形式:

復制代碼 代碼如下:
<%@ page extends="package.class" %>

這個屬性一般為開發人員或提供商保留,由他們對頁面的運作方式做出根本性的改變(如添加個性化特性)。一般人應該避免使用這個屬性,除非引用由服務器提供商專為這種目的提供的類。

2.10 language 屬性

從某種角度講,language 屬性的作用是指定頁面使用的腳本語言,如下所示:

復制代碼 代碼如下:
<%@ page language="java" %>

就現在來說,由于 Java 既是默認選擇,也是惟一合法的選擇,所以沒必要再去關心這個屬性。

希望本文所述對大家的JSP程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国语精品自产拍在线观看| 青青a在线精品免费观看| 亚洲美女动态图120秒| 亚洲国产女人aaa毛片在线| 亚洲aa在线观看| 欧美大胆a视频| 国产婷婷97碰碰久久人人蜜臀| 日韩高清人体午夜| 国产成人福利视频| 久久精品99久久香蕉国产色戒| 久久精品夜夜夜夜夜久久| 国产精品爱啪在线线免费观看| 久久精品亚洲国产| 久久久久久久激情视频| 国产婷婷色综合av蜜臀av| 成人免费福利视频| 日韩第一页在线| 丝袜情趣国产精品| 韩剧1988免费观看全集| 国内精品久久久久伊人av| 欧美不卡视频一区发布| 九九视频直播综合网| 一区二区三区视频免费在线观看| 日韩在线观看免费全集电视剧网站| 欧美一区二区三区免费观看| 中文字幕亚洲综合久久| 久久精品亚洲国产| 亚洲女人被黑人巨大进入al| 国产精品日韩在线一区| 98午夜经典影视| 亚洲一区二区中文| 91国产精品91| 欧美一性一乱一交一视频| 国产亚洲精品一区二555| 国产视频久久久久久久| 91免费电影网站| 伊人久久大香线蕉av一区二区| 岛国精品视频在线播放| 中文字幕国产亚洲| 国产亚洲精品久久久久久| 亚洲区bt下载| 国产精品中文字幕在线| 久久99精品久久久久久青青91| 国产精品美女www| 97婷婷大伊香蕉精品视频| 91wwwcom在线观看| 亚洲精品久久久一区二区三区| 97在线观看视频| 久久国产精品亚洲| 中文字幕在线亚洲| 成人精品久久av网站| 日韩欧美在线视频日韩欧美在线视频| 这里只有精品视频在线| 欧美日韩一区二区免费视频| 国产欧美日韩精品专区| 欧美激情xxxx性bbbb| 热久久这里只有| www日韩欧美| 久久影院中文字幕| 亚洲欧美激情一区| 亚洲国产精品成人av| 8090理伦午夜在线电影| 欧美天天综合色影久久精品| 国产精品69精品一区二区三区| 91沈先生在线观看| 亚洲精品国产精品乱码不99按摩| 久久久久中文字幕2018| 亚洲高清一区二| 亚洲成人精品视频在线观看| 永久免费看mv网站入口亚洲| 国产日韩欧美在线视频观看| 另类少妇人与禽zozz0性伦| 国产专区精品视频| 精品久久久久久久久久ntr影视| 国产一区二区日韩| 欧美二区乱c黑人| 岛国av一区二区在线在线观看| 亚洲小视频在线| 日韩动漫免费观看电视剧高清| 亚洲欧美一区二区三区久久| 久久久国产91| 日韩成人在线视频| 91亚洲精品一区二区| 久久九九热免费视频| 中文字幕国内精品| 日韩在线小视频| 综合136福利视频在线| 久久久久免费视频| 久国内精品在线| 亚洲国产欧美在线成人app| 激情成人中文字幕| 久久久久五月天| 日韩av网站大全| 亚洲欧美国产一区二区三区| 成人日韩在线电影| 国产日韩欧美自拍| 91av免费观看91av精品在线| 国产在线视频2019最新视频| 狠狠色狠狠色综合日日五| 久久精品视频免费播放| 国产精品久久久久久中文字| 久久91精品国产| 91最新在线免费观看| 在线视频免费一区二区| 欧美日韩午夜剧场| 成人免费大片黄在线播放| 亚洲国产精品久久久久| 国产精品久久久久久久久久久久久久| 草民午夜欧美限制a级福利片| 日韩免费高清在线观看| 亚洲精品国产综合久久| 国产欧美一区二区三区久久人妖| 久久免费精品日本久久中文字幕| 日韩在线小视频| 美女福利精品视频| www.xxxx欧美| 久久夜色精品国产亚洲aⅴ| 日韩av在线免播放器| 久久久久久噜噜噜久久久精品| 欧美xxxx做受欧美.88| 精品美女久久久久久免费| 成人免费视频97| 欧美日韩在线视频一区| 中文字幕久久亚洲| 久久人人爽人人爽人人片亚洲| 成人精品aaaa网站| 一区二区三区国产在线观看| 韩剧1988在线观看免费完整版| 97人人模人人爽人人喊中文字| 色与欲影视天天看综合网| 在线日韩中文字幕| 亚洲性xxxx| 亚洲欧美国产精品| 欧美亚洲成人免费| 久久久亚洲国产天美传媒修理工| 欧美亚洲另类制服自拍| 亚洲影视中文字幕| 国产噜噜噜噜久久久久久久久| 国产精品第三页| 日本精品视频网站| 日韩大片免费观看视频播放| 欧美日韩一区二区免费视频| 国产精品一区二区3区| 国产在线高清精品| 久久久精品国产一区二区| 欧美电影第一页| 国产啪精品视频| 欧美日韩在线第一页| 欧美成aaa人片免费看| 91精品久久久久久久| 成人av在线天堂| 日韩欧美在线播放| 精品美女永久免费视频| 亚洲网站在线看| 少妇av一区二区三区| 中文日韩在线观看| 久久久噜噜噜久久| 最近2019年好看中文字幕视频| 欧美一级片免费在线| 久色乳综合思思在线视频| 日本精品视频在线观看| 国产精品三级久久久久久电影| 欧美日韩国产999| 久久免费视频网|