WEB應(yīng)用與開(kāi)發(fā)-02JSP工作原理與運(yùn)行環(huán)境_第1頁(yè)
WEB應(yīng)用與開(kāi)發(fā)-02JSP工作原理與運(yùn)行環(huán)境_第2頁(yè)
WEB應(yīng)用與開(kāi)發(fā)-02JSP工作原理與運(yùn)行環(huán)境_第3頁(yè)
WEB應(yīng)用與開(kāi)發(fā)-02JSP工作原理與運(yùn)行環(huán)境_第4頁(yè)
WEB應(yīng)用與開(kāi)發(fā)-02JSP工作原理與運(yùn)行環(huán)境_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第六章:JAVABEAN編程JSP工作原理與運(yùn)行環(huán)境

課題JSP工作原理與運(yùn)行環(huán)境目的要求掌握J(rèn)SP的工作原理及在JDK與TOMCAT下的環(huán)境配置教學(xué)重點(diǎn)JSP的工作模式、環(huán)境配置、配置文件的修改、虛擬目錄的建立教學(xué)難點(diǎn)配置文件的修改、虛擬目錄的建立教學(xué)課時(shí)4(含2課時(shí)上機(jī))教學(xué)方法講解、示例與啟發(fā)式教學(xué)相結(jié)合教學(xué)內(nèi)容和步驟2.1JSP(JavaServer

Pages)工作原理JSP是由Sun

Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種

動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),其網(wǎng)址為/products/jsp。

在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(yè)(*.jsp)。Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送

email

等等,這就是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對(duì)客戶瀏覽器的要求最低,可以實(shí)現(xiàn)無(wú)Plugin,無(wú)ActiveX,無(wú)Java

Applet,甚至無(wú)Frame。JSP規(guī)范給出了使用JSP頁(yè)面構(gòu)建Web應(yīng)用程序的兩個(gè)方案:JSP模型1和模型2體系結(jié)構(gòu)。這兩個(gè)模型的區(qū)別在于處理的位置。在模型1的體系結(jié)構(gòu)中,如圖1所示,JSP頁(yè)面負(fù)責(zé)處理請(qǐng)求并將響應(yīng)發(fā)送給客戶端。

圖1:JSP模型1體系結(jié)構(gòu)

模型2體系結(jié)構(gòu),如圖2所示,集成使用了servlets和JSP頁(yè)面。在該模型中,JSP頁(yè)面用于表示層,并且servlets負(fù)責(zé)處理各類任務(wù)。Servlet作為一個(gè)控制器,負(fù)責(zé)處理請(qǐng)求并創(chuàng)建JSP頁(yè)面所需的任何bean。該控制器也負(fù)責(zé)確定將該請(qǐng)求傳遞到哪個(gè)JSP頁(yè)面。JSP頁(yè)面檢索servlet創(chuàng)建的對(duì)象,并提取動(dòng)態(tài)內(nèi)容插入在一個(gè)模板中。

圖2:JSP模型2體系結(jié)構(gòu)該模型促進(jìn)了模型視圖控制器(MVC)體系結(jié)構(gòu)風(fēng)格設(shè)計(jì)模式的使用。注意,早就存在多個(gè)框架能夠?qū)崿F(xiàn)該有用的設(shè)計(jì)模式,并將內(nèi)容和表示真正地獨(dú)立開(kāi)來(lái)。ApacheStruts是MVC的形式化框架。該框架非常適用于復(fù)雜的應(yīng)用程序,在這些復(fù)雜的應(yīng)用程序中單個(gè)請(qǐng)求或表單提交會(huì)產(chǎn)生看起來(lái)截然不同的結(jié)果。2.2

JSP運(yùn)行環(huán)境

在Sun正式發(fā)布JSP(JavaServerPages)之后,這種新的Web應(yīng)用開(kāi)發(fā)技術(shù)很快引起了人們的關(guān)注。JSP為創(chuàng)建高度動(dòng)態(tài)的Web應(yīng)用提供了一個(gè)獨(dú)特的開(kāi)發(fā)環(huán)境。按照Sun的說(shuō)法,JSP能夠適應(yīng)市場(chǎng)上包括ApacheWebServer、IIS4.0在內(nèi)的85%的服務(wù)器產(chǎn)品。JSP與ASP的簡(jiǎn)單比較JSP與Microsoft的ASP技術(shù)非常相似。兩者都提供在HTML代碼中混合某種程序代碼、由語(yǔ)言引擎解釋執(zhí)行程序代碼的能力。在ASP或JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來(lái)描述處理邏輯。普通的HTML頁(yè)面只依賴于Web服務(wù)器,而ASP和JSP頁(yè)面需要附加的語(yǔ)言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。ASP和JSP都是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。

ASP的編程語(yǔ)言是VBScript之類的腳本語(yǔ)言,JSP使用的是Java,這是兩者最明顯的區(qū)別此外,ASP與JSP還有一個(gè)更為本質(zhì)的區(qū)別:兩種語(yǔ)言引擎用完全不同的方式處理頁(yè)面中嵌入的程序代碼。在ASP下,VBScript代碼被ASP引擎解釋執(zhí)行;在JSP下,代碼被編譯成Servlet并由Java虛擬機(jī)執(zhí)行,這種編譯操作僅在對(duì)JSP頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。(2)運(yùn)行環(huán)境①jdk,j2sdk,j2se,j2ee之間的區(qū)別:jdk:javadevolopkit--java開(kāi)發(fā)包(運(yùn)行java最基本的環(huán)境)j2sdk:在1.4版以前稱為jdk,可以理解j2sdk是jdk的升級(jí)版本,所以我們只要安了j2sdk即可,JDK就沒(méi)必要了。j2sdk有幾個(gè)版本對(duì)應(yīng)于java2的幾個(gè)版本,其中j2ee需要用到開(kāi)發(fā)工具就是J2eesdk了,只不過(guò)大部分應(yīng)用服務(wù)器(weblogicjboss等)都內(nèi)置了j2eesdk。j2se:j2sdk也就是標(biāo)準(zhǔn)版,一般來(lái)說(shuō)j2sdk指的就是j2se.j2ee:也稱j2eesdk,用來(lái)進(jìn)行企業(yè)級(jí)開(kāi)發(fā)。jre:是javaruntimeenvionment--java運(yùn)行環(huán)境,jdk中包括了它,但是對(duì)于不需要開(kāi)發(fā)只是運(yùn)行的用戶是可以只單獨(dú)安裝jre的,所以sun提供了jre的下載,執(zhí)行JSP代碼需要在服務(wù)器上安裝JSP引擎。此處我們使用的是Sun的JavaServerWebDevelopmentKit(JSWDK)。為便于學(xué)習(xí),這個(gè)軟件包提供了大量可供修改的示例。安裝JSWDK之后,只需執(zhí)行startserver命令即可啟動(dòng)服務(wù)器。在默認(rèn)配置下服務(wù)器在端口8080監(jiān)聽(tīng),使用http://localhost:8080即可打開(kāi)缺省頁(yè)面。在運(yùn)行JSP示例頁(yè)面之前,請(qǐng)注意一下安裝JSWDK的目錄,特別是"work"子目錄下的內(nèi)容。執(zhí)行示例頁(yè)面時(shí),可以在這里看到JSP頁(yè)面如何被轉(zhuǎn)換成Java源文件,然后又被編譯成class文件(即Servlet)。JSWDK軟件包中的示例頁(yè)面分為兩類,它們或者是JSP文件,或者是包含一個(gè)表單的HTML文件,這些表單均由JSP代碼處理。與ASP一樣,JSP中的Java代碼均在服務(wù)器端執(zhí)行。因此,在瀏覽器中使用"查看源文件"菜單是無(wú)法看到JSP源代碼的,只能看到結(jié)果HTML代碼。所有示例的源代碼均通過(guò)一個(gè)單獨(dú)的"examples"頁(yè)面提供JavaServlet是一種開(kāi)發(fā)Web應(yīng)用的理想構(gòu)架。

JSP以Servlet技術(shù)為基礎(chǔ),又在許多方面作了改進(jìn)。JSP頁(yè)面看起來(lái)象普通HTML頁(yè)面,但它允許嵌入執(zhí)行代碼,在這一點(diǎn)上,它和ASP技術(shù)非常相似。利用跨平臺(tái)運(yùn)行的JavaBean組件,JSP為分離處理邏輯與顯示樣式提供了卓越的解決方案。JSP必將成為ASP技術(shù)的有力競(jìng)爭(zhēng)者。②環(huán)境變量設(shè)置:JAVA_HOME=c:\j2sdk1.4.2;classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;不能少,表示當(dāng)前路徑)path=%JAVA_HOME%\bin;(系統(tǒng)里已經(jīng)有了path變量,只需要在path最前面加上去即可)安裝Tomcat后,在我的電腦->屬性->高級(jí)->環(huán)境變量->系統(tǒng)變量中添加以下環(huán)境變量(假定你的tomcat安裝在c:\tomcat5):CATALINA_HOME=c:\tomcat5;CATALINA_BASE=c:\tomcat5;然后修改環(huán)境變量中的classpath,把tomcat安裝目錄下的common\lib下的servlet-api.jar(此文件在tomcat5以前名為:servlet.jar)追加到classpath中去,修改后的classpath如下:classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar;(最好再拷貝到:C:\j2sdk1.4.2\jre\lib\ext目錄下)接著可以啟動(dòng)tomcat,在IE中訪問(wèn)http://localhost:8080,如果看到tomcat的歡迎頁(yè)面的話說(shuō)明安裝成功了。(3)建立自己的jspapp目錄①到Tomcat的安裝目錄的webapps目錄,可以看到ROOT,examples等Tomcat自帶的的目錄;②在webapps目錄下新建一個(gè)目錄,起名叫myapp;③myapp下新建一個(gè)目錄WEB-INF,注意,目錄名稱是區(qū)分大小寫的;④WEB-INF下新建一個(gè)文件web.xml,內(nèi)容如下:<?xmlversion="1.0"encoding="ISO-8859-1"?><!DOCTYPEweb-appPUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN""/dtd/web-app_2_3.dtd"><web-app><display-name>MyWebApplication</display-name><description>Aapplicationfortest.</description></web-app>在myapp下新建一個(gè)測(cè)試的jsp頁(yè)面,文件名為index.jsp,文件內(nèi)容如下:<html><head><title>大家好</title></head><body><%out.println("大家好,我的第一個(gè)jsp程序");%></body></html>重啟Tomcat⑤打開(kāi)瀏覽器,輸入http://localhost:8080/myapp/index.jsp即可.(4)配虛擬目錄。①server.xml里不再管虛擬目錄了,只能配虛擬主機(jī)host,但是要記住這個(gè)host的名字,一般是localhost。另外還要記住當(dāng)前的tomcat服務(wù)名,默認(rèn)是<Servicename="Catalina">,即Catalina②在tomcat的conf目錄建立兩級(jí)子目錄,第一級(jí)是服務(wù)名,即Catalina,第二級(jí)是主機(jī)名,即localhost。③在localhost目錄下,建立你想要的虛擬目錄.xml文件,比如aptime.xml,那么將來(lái)在瀏覽器里輸入http://localhost/aptime才能找到你的目錄,即文件名要與將來(lái)用的目錄同名。④在這個(gè)xml文件里寫虛擬目錄的配置:比如<ContextdocBase="c:/tomcat55/webapps/aptime"debug="0"reloadable="true"crossContext="true"/>

相比原來(lái)的寫法,就是不要了path,因?yàn)閜ath就是你的xml文件名。docBase與tomcat目錄或host的appBase目錄無(wú)關(guān)。⑤重新啟動(dòng)tomcat5。附:默認(rèn)端口號(hào)8080還是在server.xml里修改。2.3JSP的生命周期JSP的生命周期將分為三個(gè)階段:⑴裝載和實(shí)例化:服務(wù)端為JSP頁(yè)面查找已有的實(shí)現(xiàn)類,如果沒(méi)找到則創(chuàng)建新的JSP頁(yè)面的實(shí)現(xiàn)類,然后把這個(gè)類載入JVM。在實(shí)現(xiàn)類裝載完成之后,JVM將創(chuàng)建這個(gè)類的一個(gè)實(shí)例。這一步會(huì)在裝載后立刻執(zhí)行,或者在第一次請(qǐng)求時(shí)執(zhí)行。⑵初始化:初始化JSP頁(yè)面對(duì)象。如果你希望在初始化期間執(zhí)行某些代碼,那么你可以向頁(yè)面中增加一個(gè)初始化方法(method),在初始化的時(shí)候就會(huì)調(diào)用該方法。⑶請(qǐng)求處理:由頁(yè)面對(duì)象響應(yīng)客戶端的請(qǐng)求。需要注意的是,單個(gè)對(duì)象實(shí)例將處理所有的請(qǐng)求。在執(zhí)行完處理之后,服務(wù)器將一個(gè)響應(yīng)(response)返回給客戶端。這個(gè)響應(yīng)完全是由HTML標(biāo)簽和其他數(shù)據(jù)構(gòu)成的,并不會(huì)把任何Java源碼返回給客戶端。⑷生命周期終止:服務(wù)器不再把客戶端的請(qǐng)求發(fā)給JSP。在所有的請(qǐng)求處理完成之后,會(huì)釋放掉這個(gè)類的所有實(shí)例。一般這種情況會(huì)發(fā)生在服務(wù)器關(guān)閉的時(shí)候,但是也有其他的可能性,比如服務(wù)器需要保存資源、檢測(cè)到有JSP文件更新,或者由于其他某些原因需要終止實(shí)例等情況。如果想讓代碼執(zhí)行清除工作,那么可以實(shí)現(xiàn)一個(gè)方法,并且在這個(gè)類實(shí)例釋放之前調(diào)用該方法。本章隨后一節(jié)“處理JSP的初始化和終止”將對(duì)此加以討論。.jsp.java.class客戶端以實(shí)例形式保存在服務(wù)呂結(jié)束JSP在服務(wù)器的運(yùn)行.jsp

.java.class客戶端以實(shí)例形式保存在服務(wù)呂結(jié)束JSP在服務(wù)器的運(yùn)行圖3:JSP的生命周期結(jié)構(gòu)圖作業(yè)①:上機(jī)配置JSP服務(wù)器、設(shè)定一個(gè)虛擬目錄(用建立相應(yīng).xml文件與修改server.xml文件二種方法完成)②:自編一個(gè)簡(jiǎn)單JSP頁(yè)面,在瀏覽器窗口輸出“HelloWorld”并調(diào)試運(yùn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論