




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
/JSP動態網頁制作技術JavaServerPages(JSP)是一種結合了跨平臺與跨網站效勞器機制,以Java為主的技術來產生動態網頁。JSP與微軟的ASP(ActiveServerPages)相容,但它是使用類似HTML的標簽以及Java代碼片段而不是VBScript。當你所使用的網站效勞器沒有提供本地ASP支援,也就是Apache或Netscape效勞器時,你可以考慮使用JSP。雖然你可以取得這些效勞器的ASP附加配備程序,但價格相當昂貴,而目前Sun并沒有對你所要的JSP組件收取費用(雖然Sun未來有可能會收費)。對於Solaris與Linux以及Windows,這些組件也都很容易取得。請不要將JSP與效勞器端的JavaScript混為一談。網站效勞器會自動將以JSP寫成的Java代碼片段轉換成Javaservlets。而許多先前必須以Perl手寫程式或效勞器特定的API(如ASP)控制的功能也都可透過JSP來自動化處理。現在就讓我們開始動手幫助你建立一個可執行JSP范例網站。一、如何安裝好你的機器來使用JSP你將需要Java2軟件開發工具(JSDK),它原來的名稱是Java開發工具(JDK)以及JavaServer網站開發工具(JSWDK),Tomcat,或是其他支援JSP的網絡效勞器。Sun免費提供JSDK與JSWDK來供Windows,Solaris,以及Linux平臺使用。如果你想要在你目前的網絡效勞器上使用JSP,但效勞器本身并不支援JSP與Javaservlets,你可以試試看Allaire的Jrun,它的作用就像是針對Netscape企業版與FastTrack效勞器、微軟的網絡資訊效勞器(IIS)與個人網絡效勞器(PWS)、Apache、以及其他效勞器的網絡效勞器附加設備。你也可以使用Apache網絡效勞器的Java版本,最新的JSWDK里有提供。1、下載與安裝你需要的組件目前發表的1.2.2-001,JSDK可下載的版本是以可安裝的壓縮文檔形式。下載的文件大約是20MB,可提供完整的Java開展環境,讓你能建立利用標準API為核心的Java解決之道。然而,你的網絡效勞器需要應用到JSP的唯一一件事是Java編譯器。要讓網絡效勞器知道編譯器的位置,將環境參數JAVA.HOME設到JSDK的安裝目錄。如果你是在Windows上安裝并且接受預設目錄,將這行代碼setJAVA.HOME=C:\1.2.2加到你的autoexec.bat文件并且重新開機。在安裝好JSDK之後,下載并且安裝JSWDK或beta版的Tomcat,以Java為主的Apache網絡效勞器。安裝在哪里并不重要,重要的是你可以找到它。一般而言,它會放在上層目錄,這種方式可以讓你取代JSWDK或JSDK的網絡效勞器,不需要移動其他的網絡效勞器。在你安裝好這個文件之後,你就可以準備使用JSP了。在你正確的安裝JSWDK之後,執行startserver指令來啟動網絡效勞器,預設通訊口為8080。要看你在啟動效勞器之後是否有正確的安裝工具,你可以載入范例JSP文件中的任何一個()。如果你能夠成功的執行一個范例文件,你可以知道你已經正確的設定好軟件了。如果你在啟動效勞器的控制臺視窗看到錯誤訊息,那麼你需要解決這個問題。最常發生的問題是沒有設定(或者不正確設定)環境參數JAVA.HOME。要檢查目前的環境設定,在DOS模式下鍵入set。2、開始解釋JSP語法之前,先建立一個顯示目前日期與時間的快速網頁并且將它儲存成sample.jsp:<html><head><title>FirstPage</title></head><body><H3>Todayis:<%=newjava.util.Date()%></H3></body></html>.將這個文件與你所有的HTML與JSP網頁放在你JSWDK安裝目錄下的網頁目錄里.你可以在下載此頁.當你第一次參觀這個網頁時,網站效勞器會將JSP翻譯成Javaservlet代碼,那你就會看到目前的日期與時間.現在你已經下載,安裝,并且架構好環境,你已經準備好要了解JSP語法與建立你自己的JSP為主的解決之道.二、JSP語法的根本原理安裝之後,接下來我們要討論JSP的語法.如果要偷懶,你可以下載語法卡,如果你不熟悉Java的程序設計,你可能會想要參考Sun的使用手冊;然而,網站建立者不應該做太多的Java使用程序,除了幾個函數式之外,出現在你JSP網頁上的Java程序碼應該將它減到最少。記住這點之後,現在讓我們先來看看JSP的編譯器指引與指令元件,之後我們將解釋JavaBeans與內部物件.JSP編譯器指引與指令元件有五種型態.JSP1.0之後,大局部的JSP是包含在以<%作為開始%>作為結束的單一標簽里,新的JSP1.1規格已經發表了,它同時也與XML相容。1、JSP的編譯器指引與指令元件編譯器指引<%@編譯器指引%>預定義<%!預定義%>運算式<%=運算式%>程序碼片段/小型指令<%程序碼片段%>注解<%--注解--%>2、編譯器指引JSP的編譯器指引是針對JSP引擎。它們并不會直接產生任何看得見的輸出;相反的,它們是在告訴引擎如何處理其他的JSP網頁。它們永遠包含在<%@?%>標簽里。兩個主要的指引是page與include。我們不會討論taglib編譯器指引但它可以在JSP1.1里用來建立自訂標簽。你幾乎可以在你所有的JSP網頁最上面找到page編譯器指引。雖然這不是必須的,但它可以讓你指定到那里可以找到支持的Java類別:<%@pageimport="java.util.Date"%>,當發生Java問題的事件時應該將信息傳送到那里:<%@pageerrorPage="errorPage.jsp"%>,以及你是否要為使用者管理通話期的通信,可能存取多個網頁(稍後在JavaBeans里會有更多通話期的討論):<%@pagesession="true"%>。include編譯器指引讓你將你的內容分成幾個可管理的元件,就像那些有表頭或注腳的網頁。所包含的網頁可以是固定格式的HTML網頁或者是JSP內容的網頁:<%@includefile=""%>。3、JSP預定義讓你定義網頁層的參數,來儲存信息或定義支持的函數式,讓JSP網頁的其余局部能夠使用。如果你發現自己有太多的程序碼,你最好將它們放在不同的Java類別里。你可以在<%!?%>標簽里找到預定義。記住要在參數預定義的後面加上分號,就跟任何有效的Java敘述的形式一樣:<%!inti=0;%>。4、JSP里有運算式,評估運算式的結果可以轉換成字串并且直接使用在輸出網頁上。JSP運算是屬於<%=?%>標簽里,并不包含分號,加引號字串的無用局部:<%=i%><%="Hello"%>。5、JSP程序碼片段或小型指令文件是包含在<%?%>標簽里。當網絡效勞器接受這段請求時,這段Java程序碼會執行。小型指令文件可以是原始的HTML或XML,其內部的程序碼片段可以讓你建立有條件的執行程序碼,或者只是一些使用另一塊程序碼的東西。舉例來說,以下的程序碼結合了運算式與小型指令文件,在H1,H2,H3,以及H4標簽里顯示字串"Hello"。小型指令文件不限於一行的原始程序碼:<%for(inti=1;i<=4;i++){%><H<%=i%>>Hello</H<%=i%>><%}%>。注解.最後一個主要JSP元件是嵌入式注解。雖然你可以在你的文件里包含HTML注解,如果使用者檢視網頁的原始碼,他們也會看到這些注解。如果你不要讓使用者看到你的注解,你可以將它放在<%--?--%>標簽里:<%--針對效勞器端的注解--%>。三、JSP與JavaBean雖然你可以在小型指令檔里放入一大塊的代碼,但是大多數的Java代碼是屬於可以重復使用的元件,稱為JavaBean。JavaBean就跟ActiveX控制項一樣:它們提供的功能,并且是為了可隨時重復使用的目的而設計的。JavaBean的¤值在於它可以經由一組特性來使用,而這些特性則提供對JavaBean設定的存取。以人來作范例,此人就是JavaBean,而他的姓名,社會福利平安號碼,以及住址可以是特性。對於JSP網站,根本上你是將'JavaBean'動態的連接到你的網站。假設JavaBean是在建立網站之前建好的,你要做的第一件事是告訴JSP網頁它所需要使用JavaBean,這工作可以用<jsp:useBean>標簽來完成:<jsp:useBeanid="localName"class="com.jjj.Person"scope="application"/>.<jsp:useBean>標簽需要你以id屬性來辨識usebean.在這里,你提供一個名稱讓JSP網頁來辨識usebean,除了id屬性之外,你也必須告訴網頁要到哪里去找這個usebean,或者是它的Java類別名稱。類別屬性提供如何在各式方法之中找到它,最後一個需要的元件是scope屬性。有了范圍屬性的幫助,你可以告訴usebean,要它為單一網頁(預設)[scope="page"];為一個被請求的網頁[scope="request"];為通話期[scope="session"];或為整個應用程式[scope="application"]來維護它自己的資源。對於通話期范圍,你可以很容易的維護JSP網頁里的工程,例如購物車:一旦你宣告了JavaBean之後,你就可以存取它的特性來訂購它。要取得一特性的值,使用<jsp:getProperty>標簽。有了<jsp:getProperty>標簽,你可以指定要使用的usebean名稱(從useBean的id欄位),以及你要取得值的特性。接著,真正的值就會放在輸出里:<jsp:getPropertyid="localName"property="name"/>.要更改JavaBean的特性,你需要使用<jsp:setProperty>標簽.對這個標簽,你也需要識別usebean以及要修正的特性,除此之外,你還需要提供新值。如果命名正確,這些可以直接經由規定的格式取得:<jsp:setPropertyid="localName"property="*"/>;要從一參數取得,你必須直接命名此特性以及參數:<jsp:setPropertyid="localName"property="address"param="parameterName"/>;或是直接以名稱與值來設定:<jsp:setPropertyid="localName"property="serialNumber"value="string"/>or<jsp:setPropertyid="localName"property="serialNumber"value=<%=expression%>/>.有關JavaBean的最後一點:要讓網絡效勞器可以找到JavaBean,你要將它們的類別文件放在特別位置。對JSWDK而言,最簡單的地方是在安裝目錄里的類別目錄,例如\jswdk-1.0.1\classes.四、JSP的內部物件最後一個與JSP語法有關的元件叫做內部物件.在JSP小型指令檔內,你可以存取這些內部物件來與執行JSP網頁的servlet環境相互作用。許多對內部物件的存取應該要簡化。然而,這些是范例,它們的存取都是可接受的,要完整的利用內部物件設定則要對最新的JavaServletAPI有所了解。有關內部物件說明:request用戶端請求,此請求會包含來自GET/POST請求的參數response網頁傳回用戶端的回應pageContext網頁的屬性是在這里管理session與請求有關的通話期applicationservlet正在執行的內容out用來傳送回應的輸出資料流configservlet的架構物件pageJSP網頁本身exception針對錯誤網頁,未捕捉的例外那麼,這些是做什麼的,而你應該如何使用它們呢?根本上,在你的小型指令檔里,你可以使用它們來存取執行JSP代碼的servlet。為了防止談論到太多ServletAPI的細節,讓我們來檢驗一些你可以利用它們來做的事:不必使用運算式,你可以直接存取內部out物件來列印一些東西到response:<%out.println("Hello");%>.不必直接傳送參數到JavaBean,你可以藉由請求物件來取得參數的值:<%Stringname=request.getParameter("name");out.println(name);%>。當你以JSP寫了許多的應用程式之後,如果你建立了JavaBeans或者發現你自己將太多的Java原始碼放入你的JSP檔案,你需要建立支援的Java類別,這樣可以鼓勵重復使用并且降低JSP網頁轉換時所需要的時間。當你需要建立Java類別時,你必須:將JDSWK的安裝目錄\bin目錄加到你的PATH。在你的autoexec.bat檔案的PATH行的最後,參加C:\1.2.2\bin;。以下面的指令將JAR檔案復制到\jre\lib\ext目錄:copyc:\jswdk-1.0.1\lib\servlet.jarc:\jdk1.2.2\jre\lib\ext.五、建立一JSP網站現在到了將所有的JSP語法放在一起使用的時候了。我們將會建立一個具有輸入格式的網站,讓使用者來輸入股票代號并且獲得目前股票的價格(大約延遲20分鐘)。如果有錯誤,則錯誤網頁會顯示。quote.jsp首先,以這段代碼建立quote.jsp并且將它儲存在JSWDK安裝目錄的網頁目錄里。網頁的大局部內容是標準的HTML格式,而JSP代碼分散各處。第6行是網頁編輯器指引,指示將任何錯誤傳送到errorPage.jsp檔案。第13行到15行是小型指示碼,根本上是說只有當"symbol"參數存在時才顯示表格。這個if區段包含了第32行到34行的代碼。第17行定義要使用的JavaBean,而第18行從參數載入它的符號特性。第27行到29行指示顯示use
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 賒銷額度協議書
- 樓棟長志愿服務協議書
- 背書轉讓協議書
- 變更孩子撫養權協議書
- 綜合還款協議書
- 考研錄取協議書
- 房屋代買賣合同協議書
- 酒場休戰協議書
- 道路綠化協議書
- 米油回收協議書
- 煤礦礦安全風險評估報告
- 《公路路基路面現場測試規程》(3450-2019)
- 診所收費標準價目表
- 高血壓病人自我-管理行為測評量表
- 起重作業培訓-指揮手勢-旗語
- 碳鋼管道焊接工藝規程完整
- 《送元二使安西》完整課件
- 防騙反詐類知識考試題庫100題(含答案)
- 北師大版小學數學二年級下冊第7單元《奧運開幕》練習試題
- 山西河曲晉神磁窯溝煤業有限公司煤炭資源開發利用、地質環境保護與土地復墾方案
- 高考英語分層詞匯1800(適合藝考生使用)
評論
0/150
提交評論