JAVA WEB開發(fā)教程 第四章JSP技術(shù)基礎(chǔ)知識ppt課件_第1頁
JAVA WEB開發(fā)教程 第四章JSP技術(shù)基礎(chǔ)知識ppt課件_第2頁
JAVA WEB開發(fā)教程 第四章JSP技術(shù)基礎(chǔ)知識ppt課件_第3頁
JAVA WEB開發(fā)教程 第四章JSP技術(shù)基礎(chǔ)知識ppt課件_第4頁
JAVA WEB開發(fā)教程 第四章JSP技術(shù)基礎(chǔ)知識ppt課件_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第四章 JSP技術(shù)基礎(chǔ)知識 JSPJava Server Page是SUN公司開發(fā)的一種服務(wù)器端的腳本語言,自從2019年推出以來,逐步發(fā)展為開發(fā)Web應(yīng)用一項重要技術(shù)。JSP可以嵌套在HTML中,而且支持多個操作系統(tǒng)平臺,一個用JSP開發(fā)的Web應(yīng)用系統(tǒng),不用做什么改動就可以在不同的操作系統(tǒng)中運行。在本章接下來的內(nèi)容中,首先將簡單介紹JSP的運行原理和基本語法,然后重點介紹在實際開發(fā)過程中技巧和方法。4.1 JSP簡介 JSP本質(zhì)上就是把Java代碼嵌套到HTML中,然后經(jīng)過JSP容器的編譯執(zhí)行,可以根據(jù)這些動態(tài)代碼的運行結(jié)果生成對應(yīng)的HTML代碼,從而可以在客戶端的瀏覽器中正常顯示。在這個

2、小節(jié)中將介紹JSP的運行原理、JSP的優(yōu)點和其運行環(huán)境的搭建。 4.1.1 運行原理 如果JSP頁面是第一次被請求運行,服務(wù)器的JSP編譯器會生成JSP頁面對應(yīng)的Java代碼,并且編譯成類文件。當(dāng)服務(wù)器再次收到對這個JSP頁面請求的時候,會判斷這個JSP頁面是否被修改過,如果被修改過就會重新生成Java代碼并且重新編譯,而且服務(wù)器中的垃圾回收方法會把沒用的類文件刪除。如果沒有被修改,服務(wù)器就會直接調(diào)用以前已經(jīng)編譯過的類文件。(具體內(nèi)容請參照書。)4.1.2 選擇JSP的原因 在Web應(yīng)用開發(fā)中,可供選擇的動態(tài)頁面語言技術(shù)有很多,例如PHP,ASP,JSP等,在這些動態(tài)頁面語言中,JSP憑借其自

3、身的優(yōu)點成為開發(fā)人員最喜歡的語言之一。下面列出的幾條就是開發(fā)人員鐘愛JSP的重要原因。4.1.3 環(huán)境搭建 要運行JSP程序,必需為其提供一個JSP容器,也就是需要一個Web服務(wù)器。支持JSP的服務(wù)器非常多,Tomcat、Resin、Weic、WebSphere等對JSP的支持都非常好,但是由于Weic和WebSphere都是功能非常強大的重量級服務(wù)器,而且價格昂貴,對計算機(jī)的硬件配置要求也比較高,所以在一般情況下,如果只用到JSP的技術(shù),是沒有必要選擇這兩個服務(wù)器的。(具體內(nèi)容請參照書。)4.2 JSP基本語法 本書的重點內(nèi)容是介紹基于JSP的Web開發(fā)技術(shù),對于Java的語法在此不做詳細(xì)的

4、介紹,這里所涉及JSP語法指的是在JSP中所特有的語法規(guī)范,在接下來的章節(jié)中將假設(shè)讀者已經(jīng)了解Java的基本語法,只介紹JSP的結(jié)構(gòu)、變量聲名、表達(dá)式、動作、指令等JSP的特有語法。如對Java語法有疑問的讀者可以參考相關(guān)語法書籍。4.3 程序結(jié)構(gòu) JSP就是把Java代碼嵌套在HTML中,所以JSP程序的結(jié)構(gòu)可以分為兩大部分:一部分是靜態(tài)的HTML代碼;另一部分是動態(tài)的Java代碼和JSP自身的標(biāo)簽和指令;當(dāng)JSP頁面第一次被請求的時候,服務(wù)器的JSP編譯器會把JSP頁面編譯成對應(yīng)的Java代碼,根據(jù)動態(tài)Java代碼執(zhí)行的結(jié)果,生成對應(yīng)的純HTML的字符串返回給瀏覽器,這樣就可以把動態(tài)程序的

5、結(jié)果展示給用戶。(具體內(nèi)容請參照書。)4.4 JSP動作指令 在Web程序涉及中經(jīng)常需要用到JSP的動作指令,例如在使用JavaBean的時候就離不開userBean的指令,JSP的強大功能和它豐富的動作指令標(biāo)簽是分不開的。在接下來的章節(jié)中將對這些指令進(jìn)行詳細(xì)的介紹,讀者可以仔細(xì)體會每個動作的示例程序,在示例程序中掌握這些動作指令的基本用法。4.4.1 include動作指令 include動作指令可以在JSP頁面中動態(tài)包含一個文件,這與include指令不同,前者可以動態(tài)包含一個文件,文件的內(nèi)容可以是靜態(tài)的文件也可以是動態(tài)的腳本,而且當(dāng)包含的動態(tài)文件被修改的時候JSP引擎可以動態(tài)對其進(jìn)行編譯

6、更新。而include指令僅僅是把一個文件簡單的包含在一個JSP頁面中,從而組合成一個文件,僅僅是簡答的組合的作用。其功能沒有include動作指令強大。(具體內(nèi)容請參照書。)4.4.2 forward 動作指令 forward動作指令可以用來控制網(wǎng)頁的重定向。即從當(dāng)前頁面跳轉(zhuǎn)到另一個頁面。 forward動作的使用方法非常簡單,具體使用格式如下。 4.4.3 param動作指令 在上面forward動作指令中可以用程序控制頁面的跳轉(zhuǎn),如果需要在跳轉(zhuǎn)的時候同時傳遞參數(shù),這時候就需要用到param動作指令。param動作指令的具體使用方法可以參考下面的示例程序。(具體內(nèi)容請參照書。)4.4.4

7、plugin動作指令 元素用于在瀏覽器中播放或顯示一個對象典型的就是applet和bean),而這種顯示需要在瀏覽器的java插件。當(dāng)jsp文件被編譯,送往瀏覽器時,元素將會根據(jù)瀏覽器的版本替換成或者元素。4.4.5 useBean動作指令useBean動作指令可以在JSP中引用JavaBean,這個動作指令在實際開發(fā)過程中經(jīng)常會用到。在第六章JavaBean的講解過程中將對這個動作指令做詳細(xì)的介紹。在這里我們僅僅知道其基本用法即可,而且在這里不在用示例程序說明。useBean的使用格式如下。 其中id為所用到的JavaBean的實例對象名稱,class是JavaBean對應(yīng)類的包路徑,包括包

8、名和類名。scope是這個JavaBean的有效范圍,共有page、request、session、application四個值可以選擇。4.4.6 setProperty動作指令setProperty一般情況下是和JavaBean配合使用的,用來給JavaBean的實例對象進(jìn)行賦值操作,setProperty的基本方法有以下兩種。上面這種方法是setProperty動作指令最基本的用法,用來給JavaBean實例對象的某一個屬性賦值。上面這種JavaBean的賦值方法也是經(jīng)常用到的, 4.4.7 getProperty動作指令 getProperty一般情況下也是和JavaBean配合使用的

9、,用來取出JavaBean實例對象的屬性值。這個動作指令的基本使用方法如下。 4.5 JSP指令 JSP的指令雖然沒有動作指令那么豐富,但是其作用卻是不容忽視的,例如page指令,在設(shè)置顯示編碼、引入類的包路徑、設(shè)置錯誤頁面等方面都是必不可少的。在接下來的章節(jié)中將介紹JSP的兩個指令標(biāo)簽。4.5.1 page指令 page指令可以用來定義JSP也面的全局屬性。例如編碼、錯誤頁面等。page指令的屬性很多,下面來具體介紹它的各個屬性。(具體內(nèi)容請參照書。)4.5.2 include指令 include指令可以在當(dāng)前的JSP頁面中包含一個文件,從而和當(dāng)前頁面組成一個整體的文件。這中包含僅僅是靜態(tài)包

10、含。(具體內(nèi)容請參照書。)4.6 JSP內(nèi)置對象簡介 JSP內(nèi)置對象即無需聲名就可以直接使用的對象實例,在實際的開發(fā)過程中,比較常用的JSP內(nèi)置對象有reqest、response、session、out、application等,在接下來的章節(jié)中將詳細(xì)介紹這幾個JSP內(nèi)置對象的使用方法。JSP其他的幾個內(nèi)置對象在實際的開發(fā)中并不十分常用,在這里不做具體介紹。4.7 request對象 request對象代表這從用戶發(fā)送過來的請求,從這個對象中間可以取出客戶端用戶提交的數(shù)據(jù)或者是參數(shù)。這個對象只有接受用戶請求的頁面才可以訪問。4.7.1 request對象使用場合 如果要與用戶的互動,必須要知

11、道用戶的需求,然后根據(jù)這個需求生成用戶期望看到的結(jié)果。這樣才能實現(xiàn)與用戶的互動。在Web應(yīng)用中,用戶的需求就抽象成一個request對象,這個對象中間包括用戶所有的請求數(shù)據(jù),例如通過表單提交的表單數(shù)據(jù),或者是通過URL等方式傳遞的參數(shù),這些就是用戶的需求。request正是用來收集類似這些用戶的輸入數(shù)據(jù)和參數(shù)。同時,request對象中還包括一些服務(wù)器的信息,例如端口、真實路徑、訪問協(xié)議等信息,通過request對象可以取得服務(wù)器的這些參數(shù)。4.7.2 request對象主要方法 request對象的方法非常多,在這里我們只介紹其中最常用的幾種方法,其他方法可以參考相關(guān)類庫的介紹。(具體內(nèi)容請

12、參照書。)4.7.3 request對象使用示例 1使用request對象取得表單數(shù)據(jù) request獲取用戶數(shù)據(jù)的一個主要方式就是獲取表單數(shù)據(jù),(具體內(nèi)容請參照書。)4.8 response對象 response對象是服務(wù)器端向客戶端返回的數(shù)據(jù),從這個對象中間可以取出一部分與服務(wù)器互動的數(shù)據(jù)和信息。只有接受這個對象的頁面才可以訪問這個對象。4.8.1 response對象使用場合 既然用戶可以對服務(wù)器發(fā)出請求,服務(wù)器就需要對用戶的請求做出反應(yīng)。這里服務(wù)器就可以使用response對象向用戶發(fā)送數(shù)據(jù)。response是對應(yīng)request的一個對象。如果需要獲取服務(wù)器返回的處理信息,就可以對re

13、sponse進(jìn)行操作,同時當(dāng)服務(wù)器需要再客戶端進(jìn)行某些操作的時候也需要用到response對象,例如服務(wù)器要在客戶端生成Cookies,那么這時候response對象就是一個很好的選擇。4.8.2 response對象主要方法 response的方法也很多,但是常用的也就其中的幾個,下面介紹比較常用的幾個方法。1addCookieCookie cookie這個方法可以添加一個Cookie對象,用來保存客戶端的用戶信息。 2containsHeaderString name這個方法判斷指定的頭信息是否存在。(具體內(nèi)容請參照書。)4.8.3 response對象使用示例 response的用法很多

14、,在這里我們用response來實現(xiàn)一個頁面的重定向, 4.9 session對象 session對象維護(hù)著客戶端用戶和服務(wù)器端的狀態(tài),從這個對象中間可以取出用戶和服務(wù)器交互的過程中的數(shù)據(jù)和信息。這個對象在用戶關(guān)閉瀏覽器離開Web應(yīng)用之前一直有效。4.9.1 session對象使用場合 session對象中保存的內(nèi)容是用戶與服務(wù)器整個交互過程中的信息,如果是想在整個交互的過程中都可以訪問到的信息,就可以選擇存放在session對象中。例如在用戶登錄的過程中,可以在session中記錄用戶的登錄狀態(tài),這樣用戶就不必在每個頁面都重新登錄,只要用戶沒有離開當(dāng)前的Web應(yīng)用系統(tǒng),就可以一直保存登錄的狀

15、態(tài)。 4.9.2 session對象主要方法 session所提供的方法并沒有前面幾個內(nèi)置對象那么多,但是基本都是非常常用的。4.9.3 session對象使用示例 在這里我們模擬一個簡單的用戶登錄動作,在這個示例程序中,我們不對提交的登錄信息做具體的驗證,只要用戶名和密碼都不為空就可以登錄系統(tǒng),這樣處理只是為了方便展示session的使用方法,在具體的開發(fā)中必須要對登錄信息進(jìn)行驗證的。(具體內(nèi)容請參照書。)4.10 out對象 這個對象是在Web應(yīng)用開發(fā)過程中使用最多的一個對象,其功能就是動態(tài)的向JSP頁面輸出字符流,從而把動態(tài)的內(nèi)容轉(zhuǎn)化成HTML形式來展示。這個對象在任何JSP頁面中都可以

16、任意訪問。4.10.1 out對象使用場合 out對象的功能就是向JSP頁面輸出數(shù)據(jù)信息。所以當(dāng)有動態(tài)信息要展示給用戶的時候就要用到out對象。在前面的很多示例中已經(jīng)多次用到這個對象,讀者從中可以很清楚的看到,out對象就是用來輸入動態(tài)內(nèi)容信息的。4.10.2 out對象主要方法 在這里只介紹out對象最常用的方法。 1clear() 這個方法可以清除緩沖區(qū)的數(shù)據(jù),但是僅僅是清除,并不向用戶輸出。 2clearBuffer() 這個方法可以清除緩沖區(qū)的數(shù)據(jù),同時把這些數(shù)據(jù)向用戶輸出。(具體內(nèi)容請參照書。)4.10.3 out對象使用示例 out對象在前面的示例中已經(jīng)多次使用到,在這里就不再針對

17、這個對象舉例說明。4.11 application對象 application對象保存著整個Web應(yīng)用運行期間的全局?jǐn)?shù)據(jù)和信息,從Web應(yīng)用開始運行開始,這個對象就會被創(chuàng)建,在整個Web應(yīng)用運行期間可以在任何JSP頁面中訪問這個對象。4.11.1 application對象使用場合 application中保存的信息可以在整個應(yīng)用的任何地方訪問,這個session對象類似,但和session對象還是有所區(qū)別的。只要Web應(yīng)用還在正常運行,application對象就可以訪問,而session對象在用戶離開系統(tǒng)就被注銷。4.11.2 application對象主要方法 下面介紹applicati

18、on對象的最常用的主要方法。 1getAttributeString name) 2getServerInfo() 3removeAttributeString name) 4setAttributeString name,Object o)4.11.3 application對象使用示例 在這里我們要實現(xiàn)一個簡單的計數(shù)器,這個計數(shù)器就是利用application對象來儲存計數(shù)器的值,用來統(tǒng)計服務(wù)器開始運行以來的訪問量。4.12 JSP中文問題完全解決方案 對于中文亂碼問題Java中才用的默認(rèn)編碼方式是Unicode,而中文的編碼方式一般情況是GB2312,因為編碼格式的不同,導(dǎo)致在中文不能正

19、常顯示。在不同的JDK版本和不同的應(yīng)用服務(wù)器中的處理方法是不同的。但是其本質(zhì)上都是一樣的,就是把中文字符轉(zhuǎn)化成合適的編碼方式,或者是把在顯示中文的環(huán)境中聲名采用GB2312的編碼。統(tǒng)一編碼方案之后自然可以正常顯示。4.12.1 JSP頁面中文亂碼 在JSP頁面中,中文顯示亂碼有兩種情況:一種是HTML中的中文亂碼,另一中是在JSP中動態(tài)輸出的中文亂碼。(具體內(nèi)容請參照書。)4.12.2 URL傳遞參數(shù)中文亂碼 在一般情況下,可以用類似localhost:8080/chapt4/URLCharset.jsp?param=中文這種形式來傳遞參數(shù),而且HTML在處理表單的時候,當(dāng)表單的method采

20、用get方法的時候,傳遞參數(shù)的形式與URL傳遞參數(shù)的形式基本一樣。(具體內(nèi)容請參照書。)4.12.3 表單提交中文亂碼 對于表單中提交的數(shù)據(jù),可以使用request.getParameter()的方法獲取。但是當(dāng)表單中如果出現(xiàn)中文數(shù)據(jù)的時候就會出現(xiàn)亂碼。(具體內(nèi)容請參照書。)4.12.4 數(shù)據(jù)庫操作中文亂碼 在建立數(shù)據(jù)庫的時候,應(yīng)該選擇支持中文的編碼格式,最好能和JSP頁面的編碼格式保持一致,這樣就可以盡可能減少數(shù)據(jù)庫操作的中文亂碼問題。同時在JDBC連接數(shù)據(jù)庫的時候可以使用類似下面這種形式的URL。jdbc:microsoft:sqlserverlocalhost:1433;Database

21、Name=pubs;useUnicode=true;characterEncoding=gb23124.12.5 Eclipse開發(fā)工具中JSP文件中文不能保存 在Eclipse中,JSP文件默認(rèn)的編碼格式為ISO-8859-1,所以在JSP代碼中間如果出現(xiàn)中文就不能保存,4.12.6 Eclipse開發(fā)工具中中文顯示亂碼 在Eclipse中,由于默認(rèn)的JSP編碼格式為ISO-8859-1,所以當(dāng)打開由其他編輯器編輯的JSP頁面就會出現(xiàn)亂碼,(具體內(nèi)容請參照書。)4.12.7 JSP下載中文文件名亂碼 在實現(xiàn)文件下載功能的時候,如果出現(xiàn)中文文件名,如果不進(jìn)行特殊的處理,下載下來的中文文件名會變成亂碼,在下載前,就需要對這個文件名進(jìn)行處理,然后才能正常顯示中文的文件名, 4.13 其他JSP開發(fā)技巧 (具體內(nèi)容請參照書。)4.13.1 自定義錯誤頁面 在JSP中,如果出現(xiàn)代碼的

溫馨提示

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

評論

0/150

提交評論