C08第五章JSP程序開發(fā)-JSP程序開發(fā)基礎3_第1頁
C08第五章JSP程序開發(fā)-JSP程序開發(fā)基礎3_第2頁
C08第五章JSP程序開發(fā)-JSP程序開發(fā)基礎3_第3頁
C08第五章JSP程序開發(fā)-JSP程序開發(fā)基礎3_第4頁
C08第五章JSP程序開發(fā)-JSP程序開發(fā)基礎3_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、五、JSP程序開發(fā)基礎(3),JSP程序開發(fā)基礎的主要內(nèi)容,5.5 JSP的動態(tài)頁面處理,5.6 JSP中使用JavaBean,JSP的動態(tài)頁面處理,JSP的動態(tài)頁面處理有兩種方式 在JSP中包含頁面 在JSP中跳轉(zhuǎn)訪問其他頁面 JSP有三種方法包含外部程序或頁面的: 指令 動作 動作 JSP有兩種跳轉(zhuǎn)訪問其他頁面 sendRedirect方法 動作,在JSP中包含頁面,JSP包含外部程序或頁面的三種方法: 指令:編譯器指令,在編譯的時候?qū)⑺捻撁嬉?,一起轉(zhuǎn)譯成Java程序; 動作:動作指令,在JSP頁面執(zhí)行的時候進行調(diào)用; 動作:jsp:plugin元素可以將使用Java插件的appl

2、et查入JSP頁,主要用于嵌入Web的applet格式的客戶端Java。,在JSP中包含頁面,包含一個靜態(tài)或動態(tài)文件. 的語法格式有如下形式: 不帶參數(shù)的格式: flush=true / 參數(shù)的格式: flush=true / ”指可以有多個“”標記。),在JSP中包含頁面, 的屬性 page:指定引用包含文件的相對URL; flush:指定主頁的輸出流是否應該在頁的包含前清除,缺省為false; 元素 被包含文件自動共享與原先的請求頁相同的請求參數(shù)(Request的作用域); 如果想要增加某些參數(shù)在頁面間傳遞,可以使用元素,通過Request對象傳遞; ,在JSP中包含頁面,和用法的區(qū)別 預

3、先編譯好,執(zhí)行效率高; 如果包含文件改變,則使用它的所有JSP文件都要更新(不用服務器可能會有所不同); 被包含文件中可以含有影響頁面的響應頭設置,但不能和主體文件的沖突。 動態(tài)調(diào)用,執(zhí)行效率低; 不需要在修改了包含文件后更新主文件,是主要采用的包含方式; 主提頁面已經(jīng)在請求時被轉(zhuǎn)換成servlet,因此被包含的頁不能含有總體上影響主體頁面的JSP程序或頁面。,在JSP中跳轉(zhuǎn)訪問頁面,JSP跳轉(zhuǎn)訪問頁面的兩種方法: sendRedirect方法: 通知瀏覽器進行頁面跳轉(zhuǎn) Response.sendRedirect(“l(fā)ogin.html”); 方法: 在服務器端進行頁面的跳轉(zhuǎn) ,在JSP中重定

4、向 基本語法 / / ,在JSP中跳轉(zhuǎn)頁面,舉例 注意事項 從一個JSP文件向另一個文件傳遞一個包含用戶請求的request對象 標簽以下的代碼將不會被執(zhí)行 如果使用了標簽目標文件必須是程序,JSP的語法,在JSP中跳轉(zhuǎn)頁面,在JSP中跳轉(zhuǎn)訪問頁面,兩種調(diào)轉(zhuǎn)方法的區(qū)別 Redirect方法 通知瀏覽器進行進行頁面跳轉(zhuǎn),參數(shù)是需要跳轉(zhuǎn)的URL 瀏覽器接收到響應后,按照新的URL鏈接重新發(fā)起請求 跳轉(zhuǎn)前和跳轉(zhuǎn)后是在另個不同的Request請求域 Forward方法 由服務器端將請求交由跳轉(zhuǎn)的頁面繼續(xù)處理,因此參數(shù)是需要跳轉(zhuǎn)的程序 跳轉(zhuǎn)前和跳轉(zhuǎn)后是在一個Request的請求域內(nèi),共享訪問同一個Req

5、uest對象 對于瀏覽器,看不到所跳轉(zhuǎn)的頁面地址,JSP的動態(tài)頁面處理,和的區(qū)別 相同點 都是在服務器端調(diào)用其他頁面繼續(xù)執(zhí)行請求的處理 request.getRequestDispatcher(jsp2.jsp).forward(request, response); request.getRequestDispatcher(jsp2.jsp).include(request, response); 都是在一個Request的作用域內(nèi),共享使用Request對象 不同點 是在一個主頁面的框架只執(zhí)行所包含的頁面,被包含頁面執(zhí)行完成后,需要回到主頁面繼續(xù)執(zhí)行; 是順序執(zhí)行頁面。執(zhí)行調(diào)轉(zhuǎn)后,當前頁面

6、的執(zhí)行就全部結束,進入到下一個頁面執(zhí)行,當前頁面中后續(xù)的內(nèi)容就不再被執(zhí)行。,JSP使用JavaBean,JavaBean的基本概念 JavaBean定義了可重復使用的軟件代碼打包標準,是為了實現(xiàn)類的復用,而滿足特殊規(guī)范的Java類; JavaBean是Java語言中最重要的組件類,在各類需要進行類復用的場合被廣泛使用; VO:存儲數(shù)據(jù)對象 DTO:數(shù)據(jù)傳輸 POJO:純Java類 在編寫JSP時,應該將程序的邏輯部分編寫為JavaBean,而JSP中只負責用戶視圖的處理,例如HTML頁面的生成,JavaBean需要滿足條件 必須有一個不帶有參數(shù)的公用構造器 例如 public UserLogi

7、n(); 所有Bean的屬性都必需定義為私有變量 例如 Private userName; 如果需要使用Bean的屬性,則應該為每個屬性設置set和get方法,且必需與屬性的變量名相同, 例如public setUserName(); public getUserName(); 對于每個需要的操作,應該有一個公用方法 例如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)點 標準Java語法 使對象共享更為簡單 請求參數(shù)和對象屬性之間的便利通信 使用Java Bean的JSP語法 :創(chuàng)建JavaBean的實例,或者引用一個JavaBean的實例; :設置JavaBean的屬性; :獲得JavaBean的屬性;,JSP使用JavaBean,用于創(chuàng)建一個Bean實例并指定它的

9、名字和作用范圍。 語法格式如下: type=package.class / / other elements ,id=“beanInstanceName”屬性 在要求的范圍中定義Bean的變量,程序中使用此變量名來標識不同的Bean ; 這個變量名對大小寫敏感,必須符合所使用的Java語言的規(guī)定; 如果Bean已經(jīng)在別的標記中創(chuàng)建,則在通過這個標記引用時,id的值必須與原來的那個id值一致,否則意味著創(chuàng)建了同一個類的兩個不同的對象。,scope=page|request|session|application Bean存在的范圍以及id變量名的有效范圍,缺省值是page page :當前頁面作

10、用域中有效 request :在請求作用域中有效 session :在會話作用域中有效 Application:在應用作用域中有效 Bean存在的范圍以及id變量名的有效范圍,標識了JSP容器用什么對象存儲Bean 對象,例如 jsp:userBean id=“testBean”,scope=“request” request.setAttribute(“testBean”,testBean),page,session,request,缺省值 針對當前請求放在PageContext對象中,bean將存儲在與當前請求相聯(lián)的httpSession中,bean對象應該針對當前請求期間放在Servle

11、tRequest中,application,bean將存儲在共享的ServletContext變量中 同一個web應用中的所有servlet共享,class=package.class 創(chuàng)建Java Bean需要用到的屬性; 指明Java Bean所對應的class 文件; 相當于使用new關鍵字一個Java Bean的類中實例化一個對象 TestBean testBean=new TestBean(); type=package.class 獲取Java Bean需要用到的屬性; 如果指定Bean已經(jīng)在指定的范圍中存在,那么賦予這個Bean標識的數(shù)據(jù)類型; (TestBean)request

12、.getAttribute(“testBean”);,的語法格式如下: 從Java Bean中獲得指定屬性的值 等效于調(diào)用 的屬性有: name=“beanInstanceName” bean的名字,由中的id屬性指定。 property=“propertyName”,所指定的Bean的屬性名。, test Calendar of ,用來設置Bean的屬性值 語法格式如下: /,name=“beanInstanceName” 在中創(chuàng)建的Bean實例的名字,標識對JavaBean的引用; property=“*” 自動匹配設置Bean中的屬性,儲存用戶輸入的值; 這個方式JSP引擎可以自動將re

13、quest對象中存儲的用戶參數(shù)依據(jù)參數(shù)名稱和JavaBean中的屬性相匹配; property=propertyName param=parameterName 指定Bean屬性值所配置具體輸入?yún)?shù),存儲用戶輸入的值; 其中property指定Bean的屬性名,param指定request中的參數(shù)名;,property=propertyName value=string | 直接通過指定的值來設定Bean屬性; 這個值可以是字符串,也可以是表達式。如果這個字符串,那么它就會被轉(zhuǎn)換成Bean屬性的類型,如果是一個表達式,那么它的類型就必須和將要設定的屬性值的類型一致; 如果參數(shù)值為空值,那么對應的屬性值也不會被設定; 不能在同一個“”中同時使用param和val

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論