jsp 七大動作指令1) jsp:include 指令用于在請求處理階段包含來自一個Servlet或jsp頁面的響應峦椰。和編譯指令中的include不同聂使,include只能用于包含靜態(tài)頁面壁拉,而jsp:include指令則可以包含靜態(tài)和動態(tài)頁面。 格式:
Java代碼
1. --------(靜態(tài)頁面)
2. --------(動態(tài)頁面)
.....
2) jsp:forword 指令用于執(zhí)行頁面轉向柏靶,將請求的處理轉發(fā)到下一頁面弃理。格式:
Java代碼
1. ------(跳向靜態(tài)頁面)
2. ------(跳向動態(tài)頁面)
…….
3) jsp:useBean 指令用來在jsp頁面內創(chuàng)建一個JavaBean實例格式:
Java代碼
說明: id屬性指定了javaBean的名稱,只要是在他的有效范圍內屎蜓,均可以使用這個名稱來調用他痘昌。Scope屬性為javaBean的有效范圍(四大范圍:request、page、session辆苔、application)算灸,class屬性指定了javaBean所屬的類(包名.類名)。4) jsp:setProparty 指令用來設置Bean對象的屬性格式:
Java代碼
1.
2.
3.
4.
說明:proparty=”*”時驻啤,表示保存用戶在jsp頁面中輸入的所有值菲驴,用于匹配javaBean的屬性。當proparty有具體的值時骑冗,表示匹配Bean的一個屬性赊瞬。Param屬性表示根據(jù)指定的request對象中的參數(shù)與屬性匹配。Value屬性表示使用指定的值來設置Bean的屬性贼涩。5) jsp:getProparty 指令用來讀取Bean對象的屬性巧涧,并將其轉換為一個字符串顯示在頁面上。 格式:
Java代碼
6) jsp:plugin 指令(不常用)用于下載服務器端的javaBean或Applet到客戶端執(zhí)行遥倦。7) jsp:param 指令(不常用)用于設置參數(shù)谤绳,不能單獨使用,主要用在jsp:include jsp:forword jsp:plugin指令中袒哥。注意:include指令和include動作都能實現(xiàn)將外部文檔包含到JSP文檔中的功能闷供,名稱也很相似,非常容易混淆统诺。include指令和include動作到底有什么分別歪脏,哪一種方式會更好呢?(1).include指令include可以在JSP頁面轉換成Servlet之前粮呢,將JSP代碼插入其中婿失。它的主要優(yōu)點是功能強大,所包含的代碼可以含有總體上影響主頁面的JSP構造啄寡,比如屬性豪硅、方法的定義和文檔類型的設定。它的缺點是難于維護只要被包含的頁面發(fā)生更改挺物,就得更改主頁面懒浮,這是因為主頁面不會自動地查看被包含的頁面是否發(fā)生更改。include指令的語法格式如下
Java代碼
<%@ include file="Relative Url"%>
(2)include動作jsp:include動作是在主頁面被請求時识藤,將次級頁面的輸出包含進來砚著。盡管被包含的頁面的輸出中不能含有JSP,但這些頁面可以是其他資源所產生的結果痴昧。服務器按照正常的方式對指向被包含資源的URL進行解釋稽穆,因而這個URL可以是Servlet或JSP頁面。服務器以通常的方式運行被包含的頁面赶撰,將產生的輸出放到主頁面中舌镶,這種方式與RequestDispatcher類的include方法一致柱彻。它的優(yōu)點是在被包含的頁面發(fā)生更改時,無須對主頁面做出修改餐胀。它的缺點是所包含的是次級頁面的輸出哟楷,而非次級頁面的實際代碼,所以在被包含的頁面中不能使用任何有可能在整體上影響主頁面的JSP構造否灾。jsp:include動作的完整語法如下
Java代碼
其中jsp:include之間不能有空格吓蘑,page屬性指定被包含的頁面,這個屬性是必需的坟冲,是指向某種資源的相對URL。如果這個相對URL不是以/開頭溃蔫,則將其解釋為相對于主頁面的路徑健提;如果是以/開頭,是這個URL被解釋為相對于當前WEB應用的根目錄伟叛,而不是服務器的根目錄私痹,這是因為該URL是由服務器來解釋的,不是由用戶的瀏覽器來解釋的统刮。像下面這行代碼紊遵,是由用戶的瀏覽器進行解釋的,因此會按照相對于服務器的根目錄進行解釋侥蒙。
flush屬性是一個可選的次級屬性暗膜,默認值為false,它指定在將頁面包含進來之前是否應該清空主頁面的輸出流鞭衩。
注意:在JSP1.1中学搜,flush是必需的屬性,而且聚會只能是true论衍。(3).兩者的區(qū)別和比較jsp:include動作和include指令之間的根本性的不同在于它們被調用的時間瑞佩。jsp:include動作在請求期間被激活,而include指令在頁面轉換期間被激活坯台。兩者之間的差異決定著它們在使用上的區(qū)別炬丸。使用include指令的頁面要比使用jsp:include動作的頁面難于維護。
前面已經說過蜒蕾,使用JSP指令稠炬,如果包含的JSP頁面發(fā)生變化,那么用到這個頁面的所有頁面都需要手動更新咪啡。在JSP服務器的相關規(guī)范中并沒要求能夠檢測出包含的文件什么時候發(fā)生改變酸纲,實際上大多數(shù)服務器頁都有去實現(xiàn)這種機制。這樣就會導致十分嚴重的維護問題瑟匆,需要記住所有包含某一個頁面的其他頁面闽坡,或者重新編譯所有的頁面栽惶,以使更改能夠生效。在這點上疾嗅,jsp:include就體現(xiàn)出了十分巨大的優(yōu)勢外厂,它在每次請求時重新把資源包含進來。在實現(xiàn)文件包含上代承,應該盡可能地使用jsp:include動作汁蝶。
jsp:include動作直比于include指令在維護上有著明顯優(yōu)勢,而include指令仍然能夠得以存在论悴,自然在其他方面有特殊的優(yōu)勢掖棉。這個優(yōu)勢就是include指令的功能更強大,執(zhí)行速度也稍快膀估。include指令允許所包含的文件中含有影響主頁面的JSP代碼幔亥,比如響應報送的設置和屬性方法的定義。了解到jsp:include動作和include指令各自的功能和區(qū)別察纯,在使用時帕棉,就可以通過考慮各方面的因素,來決定使用哪一種方式饼记。盡管各自都有一定的優(yōu)缺點香伴,在實際使用中,還是應優(yōu)先考慮使用jsp:include動作具则,這是因為它在代碼維護上的優(yōu)勢遠勝過其在功能上的不足咐吼。
技術分享:www.kaige123.com