版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、五、JSP程序開發(fā)基礎(chǔ)(3),JSP程序開發(fā)基礎(chǔ)的主要內(nèi)容,5.5 JSP的動(dòng)態(tài)頁面處理,5.6 JSP中使用JavaBean,JSP的動(dòng)態(tài)頁面處理,JSP的動(dòng)態(tài)頁面處理有兩種方式 在JSP中包含頁面 在JSP中跳轉(zhuǎn)訪問其他頁面 JSP有三種方法包含外部程序或頁面的: 指令 動(dòng)作 動(dòng)作 JSP有兩種跳轉(zhuǎn)訪問其他頁面 sendRedirect方法 動(dòng)作,在JSP中包含頁面,JSP包含外部程序或頁面的三種方法: 指令:編譯器指令,在編譯的時(shí)候?qū)⑺捻撁嬉?,一起轉(zhuǎn)譯成Java程序; 動(dòng)作:動(dòng)作指令,在JSP頁面執(zhí)行的時(shí)候進(jìn)行調(diào)用; 動(dòng)作:jsp:plugin元素可以將使用Java插件的appl
2、et查入JSP頁,主要用于嵌入Web的applet格式的客戶端Java。,在JSP中包含頁面,包含一個(gè)靜態(tài)或動(dòng)態(tài)文件. 的語法格式有如下形式: 不帶參數(shù)的格式: flush=true / 參數(shù)的格式: flush=true / ”指可以有多個(gè)“”標(biāo)記。),在JSP中包含頁面, 的屬性 page:指定引用包含文件的相對(duì)URL; flush:指定主頁的輸出流是否應(yīng)該在頁的包含前清除,缺省為false; 元素 被包含文件自動(dòng)共享與原先的請(qǐng)求頁相同的請(qǐng)求參數(shù)(Request的作用域); 如果想要增加某些參數(shù)在頁面間傳遞,可以使用元素,通過Request對(duì)象傳遞; ,在JSP中包含頁面,和用法的區(qū)別 預(yù)
3、先編譯好,執(zhí)行效率高; 如果包含文件改變,則使用它的所有JSP文件都要更新(不用服務(wù)器可能會(huì)有所不同); 被包含文件中可以含有影響頁面的響應(yīng)頭設(shè)置,但不能和主體文件的沖突。 動(dòng)態(tài)調(diào)用,執(zhí)行效率低; 不需要在修改了包含文件后更新主文件,是主要采用的包含方式; 主提頁面已經(jīng)在請(qǐng)求時(shí)被轉(zhuǎn)換成servlet,因此被包含的頁不能含有總體上影響主體頁面的JSP程序或頁面。,在JSP中跳轉(zhuǎn)訪問頁面,JSP跳轉(zhuǎn)訪問頁面的兩種方法: sendRedirect方法: 通知瀏覽器進(jìn)行頁面跳轉(zhuǎn) Response.sendRedirect(“l(fā)ogin.html”); 方法: 在服務(wù)器端進(jìn)行頁面的跳轉(zhuǎn) ,在JSP中重定
4、向 基本語法 / / ,在JSP中跳轉(zhuǎn)頁面,舉例 注意事項(xiàng) 從一個(gè)JSP文件向另一個(gè)文件傳遞一個(gè)包含用戶請(qǐng)求的request對(duì)象 標(biāo)簽以下的代碼將不會(huì)被執(zhí)行 如果使用了標(biāo)簽?zāi)繕?biāo)文件必須是程序,JSP的語法,在JSP中跳轉(zhuǎn)頁面,在JSP中跳轉(zhuǎn)訪問頁面,兩種調(diào)轉(zhuǎn)方法的區(qū)別 Redirect方法 通知瀏覽器進(jìn)行進(jìn)行頁面跳轉(zhuǎn),參數(shù)是需要跳轉(zhuǎn)的URL 瀏覽器接收到響應(yīng)后,按照新的URL鏈接重新發(fā)起請(qǐng)求 跳轉(zhuǎn)前和跳轉(zhuǎn)后是在另個(gè)不同的Request請(qǐng)求域 Forward方法 由服務(wù)器端將請(qǐng)求交由跳轉(zhuǎn)的頁面繼續(xù)處理,因此參數(shù)是需要跳轉(zhuǎn)的程序 跳轉(zhuǎn)前和跳轉(zhuǎn)后是在一個(gè)Request的請(qǐng)求域內(nèi),共享訪問同一個(gè)Req
5、uest對(duì)象 對(duì)于瀏覽器,看不到所跳轉(zhuǎn)的頁面地址,JSP的動(dòng)態(tài)頁面處理,和的區(qū)別 相同點(diǎn) 都是在服務(wù)器端調(diào)用其他頁面繼續(xù)執(zhí)行請(qǐng)求的處理 request.getRequestDispatcher(jsp2.jsp).forward(request, response); request.getRequestDispatcher(jsp2.jsp).include(request, response); 都是在一個(gè)Request的作用域內(nèi),共享使用Request對(duì)象 不同點(diǎn) 是在一個(gè)主頁面的框架只執(zhí)行所包含的頁面,被包含頁面執(zhí)行完成后,需要回到主頁面繼續(xù)執(zhí)行; 是順序執(zhí)行頁面。執(zhí)行調(diào)轉(zhuǎn)后,當(dāng)前頁面
6、的執(zhí)行就全部結(jié)束,進(jìn)入到下一個(gè)頁面執(zhí)行,當(dāng)前頁面中后續(xù)的內(nèi)容就不再被執(zhí)行。,JSP使用JavaBean,JavaBean的基本概念 JavaBean定義了可重復(fù)使用的軟件代碼打包標(biāo)準(zhǔn),是為了實(shí)現(xiàn)類的復(fù)用,而滿足特殊規(guī)范的Java類; JavaBean是Java語言中最重要的組件類,在各類需要進(jìn)行類復(fù)用的場(chǎng)合被廣泛使用; VO:存儲(chǔ)數(shù)據(jù)對(duì)象 DTO:數(shù)據(jù)傳輸 POJO:純Java類 在編寫JSP時(shí),應(yīng)該將程序的邏輯部分編寫為JavaBean,而JSP中只負(fù)責(zé)用戶視圖的處理,例如HTML頁面的生成,JavaBean需要滿足條件 必須有一個(gè)不帶有參數(shù)的公用構(gòu)造器 例如 public UserLogi
7、n(); 所有Bean的屬性都必需定義為私有變量 例如 Private userName; 如果需要使用Bean的屬性,則應(yīng)該為每個(gè)屬性設(shè)置set和get方法,且必需與屬性的變量名相同, 例如public setUserName(); public getUserName(); 對(duì)于每個(gè)需要的操作,應(yīng)該有一個(gè)公用方法 例如public boolean checkUser();,JSP使用JavaBean,package resinsample.javabean; public class MessageBean private String message=初始化信息; public void
8、 messsageBean() public String getMessage() return message; public void setMessage(String message) this.message=message; ,JSP使用JavaBean,使用JavaBean的優(yōu)點(diǎn) 標(biāo)準(zhǔn)Java語法 使對(duì)象共享更為簡(jiǎn)單 請(qǐng)求參數(shù)和對(duì)象屬性之間的便利通信 使用Java Bean的JSP語法 :創(chuàng)建JavaBean的實(shí)例,或者引用一個(gè)JavaBean的實(shí)例; :設(shè)置JavaBean的屬性; :獲得JavaBean的屬性;,JSP使用JavaBean,用于創(chuàng)建一個(gè)Bean實(shí)例并指定它的
9、名字和作用范圍。 語法格式如下: type=package.class / / other elements ,id=“beanInstanceName”屬性 在要求的范圍中定義Bean的變量,程序中使用此變量名來標(biāo)識(shí)不同的Bean ; 這個(gè)變量名對(duì)大小寫敏感,必須符合所使用的Java語言的規(guī)定; 如果Bean已經(jīng)在別的標(biāo)記中創(chuàng)建,則在通過這個(gè)標(biāo)記引用時(shí),id的值必須與原來的那個(gè)id值一致,否則意味著創(chuàng)建了同一個(gè)類的兩個(gè)不同的對(duì)象。,scope=page|request|session|application Bean存在的范圍以及id變量名的有效范圍,缺省值是page page :當(dāng)前頁面作
10、用域中有效 request :在請(qǐng)求作用域中有效 session :在會(huì)話作用域中有效 Application:在應(yīng)用作用域中有效 Bean存在的范圍以及id變量名的有效范圍,標(biāo)識(shí)了JSP容器用什么對(duì)象存儲(chǔ)Bean 對(duì)象,例如 jsp:userBean id=“testBean”,scope=“request” request.setAttribute(“testBean”,testBean),page,session,request,缺省值 針對(duì)當(dāng)前請(qǐng)求放在PageContext對(duì)象中,bean將存儲(chǔ)在與當(dāng)前請(qǐng)求相聯(lián)的httpSession中,bean對(duì)象應(yīng)該針對(duì)當(dāng)前請(qǐng)求期間放在Servle
11、tRequest中,application,bean將存儲(chǔ)在共享的ServletContext變量中 同一個(gè)web應(yīng)用中的所有servlet共享,class=package.class 創(chuàng)建Java Bean需要用到的屬性; 指明Java Bean所對(duì)應(yīng)的class 文件; 相當(dāng)于使用new關(guān)鍵字一個(gè)Java Bean的類中實(shí)例化一個(gè)對(duì)象 TestBean testBean=new TestBean(); type=package.class 獲取Java Bean需要用到的屬性; 如果指定Bean已經(jīng)在指定的范圍中存在,那么賦予這個(gè)Bean標(biāo)識(shí)的數(shù)據(jù)類型; (TestBean)request
12、.getAttribute(“testBean”);,的語法格式如下: 從Java Bean中獲得指定屬性的值 等效于調(diào)用 的屬性有: name=“beanInstanceName” bean的名字,由中的id屬性指定。 property=“propertyName”,所指定的Bean的屬性名。, test Calendar of ,用來設(shè)置Bean的屬性值 語法格式如下: /,name=“beanInstanceName” 在中創(chuàng)建的Bean實(shí)例的名字,標(biāo)識(shí)對(duì)JavaBean的引用; property=“*” 自動(dòng)匹配設(shè)置Bean中的屬性,儲(chǔ)存用戶輸入的值; 這個(gè)方式JSP引擎可以自動(dòng)將re
13、quest對(duì)象中存儲(chǔ)的用戶參數(shù)依據(jù)參數(shù)名稱和JavaBean中的屬性相匹配; property=propertyName param=parameterName 指定Bean屬性值所配置具體輸入?yún)?shù),存儲(chǔ)用戶輸入的值; 其中property指定Bean的屬性名,param指定request中的參數(shù)名;,property=propertyName value=string | 直接通過指定的值來設(shè)定Bean屬性; 這個(gè)值可以是字符串,也可以是表達(dá)式。如果這個(gè)字符串,那么它就會(huì)被轉(zhuǎn)換成Bean屬性的類型,如果是一個(gè)表達(dá)式,那么它的類型就必須和將要設(shè)定的屬性值的類型一致; 如果參數(shù)值為空值,那么對(duì)應(yīng)的屬性值也不會(huì)被設(shè)定; 不能在同一個(gè)“”中同時(shí)使用param和val
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)三層電梯
- 道勘課程設(shè)計(jì)范文
- 2025年度合同履行違約賠償合同4篇
- 二零二五年度門窗安裝與室外照明系統(tǒng)合同4篇
- 幼兒園墻面介紹課程設(shè)計(jì)
- 年度液壓件液力件市場(chǎng)分析及競(jìng)爭(zhēng)策略分析報(bào)告
- 2025年度食堂環(huán)境衛(wèi)生管理承包服務(wù)合同4篇
- 2025年度企業(yè)間財(cái)務(wù)信息保密協(xié)議范本模板2篇
- 2025年度食堂承包商服務(wù)品質(zhì)提升協(xié)議4篇
- 2025年度農(nóng)業(yè)機(jī)械設(shè)備采購合同范本:農(nóng)機(jī)購置合作協(xié)議3篇
- 2024年萍鄉(xiāng)衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫標(biāo)準(zhǔn)卷
- DB32-T 4444-2023 單位消防安全管理規(guī)范
- 臨床三基考試題庫(附答案)
- 人員密集場(chǎng)所消防安全管理培訓(xùn)
- JCT587-2012 玻璃纖維纏繞增強(qiáng)熱固性樹脂耐腐蝕立式貯罐
- 員工信息登記表(標(biāo)準(zhǔn)版)
- 春節(jié)工地停工復(fù)工計(jì)劃安排( 共10篇)
- 新教材人教版高中物理選擇性必修第二冊(cè)全冊(cè)各章節(jié)課時(shí)練習(xí)題及章末測(cè)驗(yàn)含答案解析(安培力洛倫茲力電磁感應(yīng)交變電流等)
- 初級(jí)養(yǎng)老護(hù)理員培訓(xùn)全套
- 危重病人搶救登記表
- GB/T 41095-2021機(jī)械振動(dòng)選擇適當(dāng)?shù)臋C(jī)器振動(dòng)標(biāo)準(zhǔn)的方法
評(píng)論
0/150
提交評(píng)論