版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、,Java Web技術(shù),JSP 動(dòng)作元素,1、JSP動(dòng)作元素的概念 2、基本的JSP動(dòng)作元素 3、頁(yè)面復(fù)用技術(shù),1、JSP動(dòng)作元素的概念,JSP技術(shù)規(guī)范定義了一些所有兼容的Web容器都必須實(shí)現(xiàn)的標(biāo)準(zhǔn)JSP動(dòng)作元素。這些JSP動(dòng)作與JSP指令作用在JSP的轉(zhuǎn)義階段不同,它們是在用戶(hù)請(qǐng)求處理階段才被JSP引擎處理的。 JSP1.2規(guī)范中,主要有以下幾項(xiàng)動(dòng)作元素: ,1、JSP動(dòng)作元素的概念 2、基本的JSP動(dòng)作元素 3、頁(yè)面復(fù)用技術(shù),2、基本的JSP動(dòng)作元素 2.1 2.2 2.3 2.4,2.1 ,概念 元素允許在一個(gè)JSP響應(yīng)中動(dòng)態(tài)包含來(lái)自該JSP外的其他內(nèi)容。這種包含是動(dòng)態(tài)的,在每次JSP被
2、調(diào)用時(shí),被包含的內(nèi)容將被重新計(jì)算。這一點(diǎn)與指令是不同的。 語(yǔ)法 ” flush=“true | false ” / 或 flush=true | false / ,page可以代表一個(gè)相對(duì)路徑,即你所要包含進(jìn)來(lái)的文件位置或是經(jīng)過(guò)表達(dá)式所運(yùn)算出的相對(duì)路徑。,flush 接受的值為boolean,假若為true,緩沖區(qū)滿(mǎn)時(shí),將會(huì)被清空。flush 的默認(rèn)值為false。在JSP 1.2 之前,flush 必須設(shè)為true。,若page屬性需要參數(shù),則可在元素中指定參數(shù)的名稱(chēng)和值。參數(shù)值甚至可以指定表達(dá)式。,2.1 ,例子: http:/localhost:8080/JSPTest/IncludeF
3、irst.jsp 利用include動(dòng)作與參數(shù)值進(jìn)行不同頁(yè)面顯示。,2.1 ,動(dòng)作元素的工作原理,A.jsp頁(yè)面被訪(fǎng)問(wèn)。注意到A.jsp中有一個(gè)包含動(dòng)作:,A.jsp頁(yè)面已經(jīng)轉(zhuǎn)譯好的A$jsp.class被訪(fǎng)問(wèn)。在A$jsp.class的_jspService方法中,存在專(zhuān)門(mén)的Java代碼,以向B.jsp請(qǐng)求信息。,B.jsp受到來(lái)自A.jsp的請(qǐng)求后,用處理來(lái)自客戶(hù)端請(qǐng)求類(lèi)似的方法處理來(lái)自A.jsp的請(qǐng)求。結(jié)果返回給A.jsp。,A.jsp將來(lái)自B.jsp的結(jié)果合并到響應(yīng)文本中,一同返回給客戶(hù)端。,2.1 ,動(dòng)作元素的工作特點(diǎn) 一、注意與include指令的區(qū)別。include指令是在JSP
4、轉(zhuǎn)譯前起作用的。假設(shè)A.jsp用包含指令包含了B.jsp,則包含進(jìn)來(lái)的B.jsp的原文。B.jsp的內(nèi)容將直接影響轉(zhuǎn)譯的結(jié)果。因此,一般對(duì)B.jsp內(nèi)容有一定要求,如:要避免使用、等。include動(dòng)作是在處理用戶(hù)請(qǐng)求時(shí)起作用的。假設(shè)A.jsp用包含動(dòng)作包含了B.jsp,其實(shí)包含進(jìn)來(lái)的是B.jsp的運(yùn)行結(jié)果。B.jsp的內(nèi)容并不參與A.jsp的轉(zhuǎn)譯過(guò)程。因此可以進(jìn)行參數(shù)傳遞。 二、每次訪(fǎng)問(wèn)A.jsp都會(huì)引起對(duì)B.jsp的調(diào)用 假設(shè)A.jsp用包含動(dòng)作包含了B.jsp,則當(dāng)用戶(hù)訪(fǎng)問(wèn)A.jsp時(shí),A$jsp.class會(huì)動(dòng)態(tài)調(diào)用B$jsp.class。如果B.jsp發(fā)生的變化,在運(yùn)行必然會(huì)引起JS
5、P容器檢查B.jsp是否發(fā)生變化,B.jsp重新轉(zhuǎn)譯后才輸出結(jié)果給A.jsp。,2.1 Include動(dòng)作與include指令的區(qū)別示例,http:/localhost:8080/JSPTest/IncludeA.jsp 1.當(dāng)IncludeA.jsp中使用的是include指令包含InC.jsp 2. 當(dāng)IncludeA.jsp中使用的是include動(dòng)作包含InC.jsp,2.1 ,-B.jsp- -A.jsp- CH5 - A.jsp ,兩個(gè)包含動(dòng)作將在A$jsp.java的_jspService方法中留下兩個(gè)“代碼片斷”,這些代碼片斷負(fù)責(zé)向B.jsp發(fā)出請(qǐng)求并獲得結(jié)果。 在A$jsp.
6、class運(yùn)行時(shí),向B.jsp請(qǐng)求的結(jié)果被合并到A.jsp的輸出中。,http:/localhost:8080/JSPTest/CH05/IncludeAction/A.jsp,2.1 ,與include指令相同,include動(dòng)作也是位置敏感的,即被包含JSP的運(yùn)行結(jié)果將輸出在include動(dòng)作的位置上。,2.2 ,概念 動(dòng)作將客戶(hù)端所發(fā)出來(lái)的請(qǐng)求,從一個(gè)JSP 網(wǎng)頁(yè)轉(zhuǎn)交給另一個(gè)JSP網(wǎng)頁(yè)。forward動(dòng)作將會(huì)引起Web服務(wù)器的請(qǐng)求目標(biāo)轉(zhuǎn)發(fā)。轉(zhuǎn)發(fā)的工作機(jī)制與重定向不同,這些工作都是在服務(wù)器端進(jìn)行的,不會(huì)引起用戶(hù)端的二次請(qǐng)求,因此效率較重定向要高。不過(guò)有一點(diǎn)要特別注意,標(biāo)簽之后的程序?qū)⒉荒軋?zhí)
7、行。 語(yǔ)法 與include動(dòng)作相同,可以使用jsp:param設(shè)定轉(zhuǎn)發(fā)的請(qǐng)求參數(shù)。,示例,- ForwardFrom.jsp - CH5 - ForwardFrom ,- ForwardTo.jsp - CH5 - ForwardTo 由ForwardFrom.jsp傳遞過(guò)來(lái)的參數(shù)為: ,示例,http:/localhost:8080/JSPTest/CH05/ForwardFrom.jsp,工作原理,客戶(hù)端向服務(wù)器的ForwardFrom.jsp發(fā)出請(qǐng)求 http:/mycompany/ForwardAction/ForwardFrom.jsp,ForwardFrom.jsp在處理過(guò)程中,
8、遇到動(dòng)作 ,ForwardFrom.jsp向客戶(hù)端返回響應(yīng)。注意這個(gè)響應(yīng)其實(shí)是由ForwardTo.jsp返回的。,ForwardFrom.jsp向ForwardTo.jsp發(fā)出請(qǐng)求,并從ForwardTo.jsp捕獲響應(yīng)。,客戶(hù)端訪(fǎng)問(wèn)ForwardFrom.jsp的結(jié)果。在整個(gè)過(guò)程中,客戶(hù)端完全不了解服務(wù)器端ForwardTo.jsp的存在。 完全是一種服務(wù)器端行為。,2.3 ,概念 用來(lái)提供key/value 的信息,它通常與、和 一起搭配使用。 的語(yǔ)法 有兩個(gè)屬性:name 和 的值就是parameter 的名稱(chēng);而value 的值就是parameter 的值。 示例
9、 ,參數(shù)規(guī)則 當(dāng)使用或者時(shí),被包含的網(wǎng)頁(yè)或轉(zhuǎn)向后的網(wǎng)頁(yè)會(huì)先檢查request對(duì)象里除了原本的參數(shù)值之外,有沒(méi)有再增加新的參數(shù)值,如果有增加新的參數(shù)值時(shí),則新的參數(shù)值在執(zhí)行時(shí),有較高的優(yōu)先權(quán)。 例如: 一個(gè)request對(duì)象有一個(gè)參數(shù)A=foo;另一個(gè)參數(shù)A=bar是在轉(zhuǎn)發(fā)時(shí)所傳遞的參數(shù),則網(wǎng)頁(yè)中的request的參數(shù)A=bar。注意:新的參數(shù)值有較高的優(yōu)先權(quán)。,2.4,概念 用于在瀏覽器中播放或顯示一個(gè)對(duì)象(通常為Applet 或 Bean)。當(dāng)JSP 網(wǎng)頁(yè)被編譯后送往瀏覽器執(zhí)行時(shí),將會(huì)根據(jù)瀏覽器的版本替換成標(biāo)簽或者標(biāo)簽。一般來(lái)說(shuō),會(huì)指定對(duì)象Applet或Bean,同樣也會(huì)指定類(lèi)的名字和位置,
10、另外還會(huì)指定將從哪里下載這個(gè)組件。 可以將params標(biāo)簽進(jìn)行分組,然后傳遞參數(shù) 則作為的子元素出現(xiàn)。當(dāng)不能啟動(dòng)Applet或Bean時(shí),那么瀏覽器會(huì)有一段錯(cuò)誤信息。,課堂練習(xí),1.將Include指令練習(xí)中的頁(yè)面改為Include動(dòng)作。 2.利用forword和param動(dòng)作,進(jìn)行參數(shù)的傳遞。 在一個(gè)JSP頁(yè)面A1.JSP中傳遞兩個(gè)參數(shù)“name”和“password”,值任意設(shè)定. 利用forword動(dòng)作,將參數(shù)傳遞給A2.jsp.在A2.JSP頁(yè)面中進(jìn)行參數(shù)獲得 方法:參數(shù)值=request.getParameter(參數(shù)名)。之后,在 A2.JSP中使用if語(yǔ)句進(jìn)行判斷 當(dāng)name為a
11、,password為123時(shí),顯示登陸成功,否則顯示登陸失敗。,1、JSP動(dòng)作元素的概念 2、基本的JSP動(dòng)作元素 3、頁(yè)面復(fù)用技術(shù),什么是頁(yè)面的復(fù)用,在一個(gè)大型的Web應(yīng)用程序中會(huì)有很多各式各樣的頁(yè)面,通常為了方便用戶(hù)使用,相同性質(zhì)的網(wǎng)頁(yè)最好套用一致的外觀風(fēng)格。,設(shè)計(jì)頁(yè)面布局文件,常用的方法是:制作一個(gè)頁(yè)面布局文件,利用標(biāo)簽將整個(gè)頁(yè)面劃分為四個(gè)區(qū)域,然后在每個(gè)區(qū)域插入一個(gè)HTML文件或JSP文件,由此組合出一個(gè)新的網(wǎng)頁(yè)。例如: ,在頁(yè)面布局文件中插入其他頁(yè)面,在JSP頁(yè)面內(nèi)包含其他JSP內(nèi)容的方法有兩種 使用JSP指令中的include指令 使用JSP動(dòng)作中的include動(dòng)作 無(wú)論使用哪種形式,都應(yīng)注意的是:要加入的JSP文件或HTML文件中不應(yīng)當(dāng)包含、等標(biāo)簽。,使用include指令,include指令是一種編譯時(shí)的靜態(tài)動(dòng)作,只有當(dāng)要包含的頁(yè)面很少發(fā)生變化時(shí)才使用這種方法,因?yàn)楫?dāng)被包含的文件發(fā)生改變時(shí)不會(huì)引起包含文件JSP的重新編譯。 例如,一個(gè)公司的商標(biāo)和版權(quán)信息不是經(jīng)常要
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025浙江杭州市蕭山區(qū)機(jī)關(guān)事業(yè)單位第三次招聘編外人員35人備考題庫(kù)及一套參考答案詳解
- 2025廣東廣州市云迅供應(yīng)鏈管理有限公司第二次招聘12人備考題庫(kù)帶答案詳解
- 2026江西南昌市勞動(dòng)保障事務(wù)代理中心外包員工招聘1人備考題庫(kù)及答案詳解(易錯(cuò)題)
- 2026山東濱州市某汽車(chē)服務(wù)公司招聘?jìng)淇碱}庫(kù)有答案詳解
- 2026廣西玉林市北流市殘疾人聯(lián)合會(huì)招聘社區(qū)殘疾人專(zhuān)職委員2人備考題庫(kù)及參考答案詳解1套
- 2026吉林大學(xué)化學(xué)學(xué)院面向海內(nèi)外誠(chéng)聘教師1人備考題庫(kù)及答案詳解(新)
- 2026云南昆明市委黨校引進(jìn)高層次人才招聘3人備考題庫(kù)及答案詳解1套
- 2026安徽合肥海恒控股集團(tuán)有限公司招聘18人備考題庫(kù)及一套參考答案詳解
- 2025年福建省福州市福建華南女子職業(yè)學(xué)院冬季人才招聘?jìng)淇碱}庫(kù)(含答案詳解)
- 2026云南省執(zhí)業(yè)藥師注冊(cè)中心招聘1人備考題庫(kù)含答案詳解
- 蒙古駕駛證考試題目及答案
- 引水隧洞非爆破施工方案
- 文書(shū)模板-生產(chǎn)環(huán)節(jié)的大氣、水體、固體以及噪聲排放污染等符合相關(guān)標(biāo)準(zhǔn)的情況說(shuō)明
- 2025年時(shí)事政治試題全年答案
- 財(cái)務(wù)共享服務(wù)2025年發(fā)展趨勢(shì)與挑戰(zhàn)研究報(bào)告
- (初級(jí))小紅書(shū)種草營(yíng)銷(xiāo)師認(rèn)證考試真題試題(附答案)
- 2026 年廣西普通高等教育專(zhuān)升本考試(含高職升本新大綱)數(shù)學(xué)第16套(含答案解析)
- 頭發(fā)白轉(zhuǎn)黑課件
- 周邊建筑物、原地下管網(wǎng)及市政設(shè)施專(zhuān)項(xiàng)保護(hù)方案
- 2024-2025學(xué)年貴州省畢節(jié)市七星關(guān)區(qū)七年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 家紡產(chǎn)品綠色生命周期管理
評(píng)論
0/150
提交評(píng)論