jsp與javabean
雖然你可以在小型指令文件里放入一大塊的程序代碼,但是大多數的java程序代碼是屬于可以重復使用的組件,稱為javabean。javabean就跟activex控件一樣:它們提供已知的功能,并且是為了可隨時重復使用的目的而設計的。
javabean的價值在于它可以經由一組特性來使用,而這些特性則提供對javabean設定的存取。以人來作范例,此人就是javabean,而他的姓名,社會福利安全號碼,以及住址可以是特性。對于jsp網站,基本上你是將'javabean'動態的連接到你的網站。
假設javabean是在建立網站之前建好的,你要做的第一件事是告訴jsp網頁它所需要使用javabean.這工作可以用<jsp:usebean>卷標來完成:<jsp:usebean id="localname" class="com.jguru.person" scope="application" />.
<jsp:usebean>卷標需要你以id 屬性來辨識豆子.在這里,你提供一個名稱讓jsp網頁來辨識豆子,除了id 屬性之外,你也必須告訴網頁要到哪里去找這個豆子,或者是它的java類別名稱。類別屬性提供如何在各式方法之中找到它,最后一個需要的組件是scope 屬性.有了范圍屬性的幫助,你可以告訴豆子,要它為單一網頁(預設)[scope="page"];為一個被請求的網頁[scope="request"];為通話期[scope="session"];或為整個應用程序[scope="application"]來維護它自己的信息.對于通話期范圍,你可以很容易的維護jsp網頁里的項目,例如購物車。
一但你宣告了javabean之后,你就可以存取它的特性來訂定它。要取得一特性的值,使用<jsp:getproperty>卷標。有了<jsp:getproperty>卷標,你可以指定要使用的豆子名稱(從usebean的id字段),以及你要取得值的特性。接著,真正的值就會放在輸出里:<jsp:getproperty id="localname" property="name" />.
要更改javabean的特性,你需要使用<jsp:setproperty>卷標.對這個卷標,你也需要辨認豆子以及要修正的特性,除此之外,你還需要提供新值.如果命名正確,這些可以直接經由規定的格式取得:<jsp:setproperty id="localname" property="*" />;
要從一參數取得,你必須直接命名此特性以及參數: <jsp:setproperty id="localname" property="address" param="parametername" />;
或是直接以名稱與值來設定: <jsp:setproperty id="localname" property="serialnumber" value="string" /> or <jsp:setproperty id="localname" property="serialnumber" value= <%= expression %> />.
有關javabean的最后一點:要讓網絡服務器可以找到javabean,你需要將它們的類別檔案放在特別位置。對jswdk而言,最簡單的地方是在安裝目錄里的類別目錄,例如 jswdk-1.0.1classes.
jsp的內部對象
最后一個與jsp語法有關的組件叫做內部對象.在jsp小型指令文件內,你可以存取這些內部對象來與執行jsp網頁的servlet環境相互作用。許多對內部對象的存取應該要簡化。然而,這些是范例,它們的存取都是可接受的,要完整的利用內部對象設定則需要對最新的java servlet api有所了解。
下表列出你可以使用的內部對象。
內部對象說明
request 客戶端請求,此請求會包含來自get/post請求的參數
response 網頁傳回客戶端的響應
pagecontext 網頁的屬性是在這里管理
session 與請求有關的會話
application servlet正在執行的內容
out 用來傳送響應的輸出流
config servlet的架構對象
page jsp網頁本身
exception 針對錯誤網頁,未捕捉的例外
那么,這些是做什么的,而你應該如何使用它們呢?基本上,在你的小型指令文件里,你可以使用它們來存取執行jsp程序代碼的servlet。為了避免談論到太多servlet api 的細節,讓我們來檢視一些你可以利用它們來做的事:
不必使用表達式,你可以直接存取內部out對象來打印一些東西到response:
<% out.println("hello"); %>.
不必直接傳送參數到javabean,你可以藉由請求對象來取得參數的值:
<% string name=request.getparameter("name"); out.println(name); %>。
當你以jsp寫了許多的應用程序之后,如果你建立了javabeans或者發現你自己將太多的java原始碼放入你的jsp檔案,你需要建立支持的java類別,這樣可以鼓勵重復使用并且降低jsp網頁轉換時所需要的時間。當你需要建立java類別時,你必須:
將jdswk的安裝目錄in目錄加到你的path。在你的autoexec.bat檔案的path行的最后,加入c:1.2.2in; 。
以下面的指令將jar檔案復制到jrelibext目錄:
copy c:jswdk-1.0.1libservlet.jar c:jdk1.2.2jrelibext.
新聞熱點
疑難解答