版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第1章JavaWeb基礎(chǔ)知識與Web開發(fā)環(huán)境配置了解Web應(yīng)用程序中的靜態(tài)網(wǎng)站、動態(tài)網(wǎng)站、前端、后端的基本概念了解Web開發(fā)中的B/S架構(gòu)、C/S架構(gòu)了解HTTP協(xié)議的基本概念掌握HTTP請求報文及響應(yīng)報文的格式掌握獲取HTTP請求報頭的方法掌握設(shè)置HTTP響應(yīng)報頭的方法掌握Tomcat服務(wù)器的安裝及啟動掌握在Eclipse中配置Tomcat服務(wù)器及創(chuàng)建Web應(yīng)用掌握在IDEA中配置Tomcat服務(wù)器及創(chuàng)建Web應(yīng)用學(xué)習(xí)目標(biāo)1.1.1靜態(tài)網(wǎng)站與動態(tài)網(wǎng)站一個Web應(yīng)用程序由完成特定任務(wù)的各種Web組件(Webcomponents)構(gòu)成并通過Web將服務(wù)展示給外界。在實際應(yīng)用中,Web應(yīng)用程序由Servlet、JSP頁面、HTML文件及圖像文件等多種元素組成。簡單來說,Web應(yīng)用程序就是各種網(wǎng)站,網(wǎng)站由一系列的網(wǎng)頁構(gòu)成,網(wǎng)站又分為靜態(tài)網(wǎng)站和動態(tài)網(wǎng)站。1.1Web應(yīng)用程序基本概念靜態(tài)網(wǎng)站的所有網(wǎng)頁直接用HTML(HyperTextMarkupLanguage,超文本標(biāo)記語言)編寫,所有的網(wǎng)頁均是標(biāo)準(zhǔn)的HTML文件,一般文件名以htm、html或shtml等為后綴。網(wǎng)頁上可以展現(xiàn)各種視覺動態(tài)效果,如GIF動畫、FLASH動畫、滾動字幕等,但是它展示的內(nèi)容一般是固定不變的,用戶在不同時間、不同地點訪問網(wǎng)站的同一靜態(tài)網(wǎng)頁時,其顯示出來的內(nèi)容是一樣的。動態(tài)網(wǎng)站是指網(wǎng)站內(nèi)容可根據(jù)不同情況動態(tài)變更的網(wǎng)站,在相同的網(wǎng)站、相同的時間,不同的人訪問時展示出來的內(nèi)容是不同的,即使同一用戶在不同時間或不同地點訪問同一動態(tài)網(wǎng)頁,其展示出的內(nèi)容也可以是不同的。動態(tài)網(wǎng)站通過數(shù)據(jù)庫進行架構(gòu),網(wǎng)頁中變化的內(nèi)容主要來自數(shù)據(jù)庫中數(shù)據(jù)的變化。動態(tài)網(wǎng)頁的技術(shù)主要有ASP、PHP、JSP等。1.1Web應(yīng)用程序基本概念1.1.2Web前端與Web后端Web前端是在Web應(yīng)用中用戶可以看得見的部分,包括Web頁面的結(jié)構(gòu)、Web的外觀視覺展現(xiàn)及Web層面的交互實現(xiàn)。Web前端主要涉及的技術(shù)有DIV+CSS、HTML、JS和JQuery等。Web后端主要指服務(wù)器端的工作,通常負(fù)責(zé)對數(shù)據(jù)庫進行交互以處理相應(yīng)的業(yè)務(wù)邏輯,需要考慮的是如何實現(xiàn)功能、數(shù)據(jù)的存取、平臺的穩(wěn)定性與性能等。1.1Web應(yīng)用程序基本概念1.1.3C/S架構(gòu)與B/S架構(gòu)C/S架構(gòu)是一種早期的分布式架構(gòu),客戶端需要安裝專門的客戶端程序,服務(wù)器端通常為高性能的PC或工作站,并采用大型數(shù)據(jù)庫系統(tǒng),嚴(yán)格意義上它是個數(shù)據(jù)庫服務(wù)器,多個客戶端程序可以同時訪問這個數(shù)據(jù)庫服務(wù)器,如圖1-1所示。這種結(jié)構(gòu)可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到客戶端和服務(wù)器,從而降低系統(tǒng)的通信開銷。1.1Web應(yīng)用程序基本概念圖1-1C/S架構(gòu)模式B/S架構(gòu)借助IE等瀏覽器來運行,它是Web興起后的一種網(wǎng)絡(luò)架構(gòu)模式。在這種模式中,客戶端不需要安裝專門的客戶端程序,而是使用瀏覽器向Web服務(wù)器發(fā)送請求,服務(wù)器進行處理后將處理結(jié)果返回給客戶端,如圖1-2所示。此時的服務(wù)器不僅是數(shù)據(jù)庫服務(wù)器,它還是應(yīng)用服務(wù)器。這種結(jié)構(gòu)能夠利用現(xiàn)在普及的瀏覽器技術(shù)實現(xiàn)原來需要復(fù)雜專用軟件才能實現(xiàn)的強大功能,能有效節(jié)約開發(fā)成本,是一種全新的軟件體系結(jié)構(gòu),也是目前應(yīng)用軟件的首選體系結(jié)構(gòu)。1.1Web應(yīng)用程序基本概念圖1-2B/S架構(gòu)模式1.2.1HTTP協(xié)議HTTP是HypertextTransferProtocol的縮寫,即超文本傳輸協(xié)議,是瀏覽器與Web服務(wù)器進行數(shù)據(jù)交互時需要遵守的規(guī)范。當(dāng)客戶端與服務(wù)器端建立連接后,客戶端就可以向服務(wù)器發(fā)送URL(UniformResourceLacator,統(tǒng)一資源定位符)請求,被稱為HTTP請求,服務(wù)器端在接收到請求后會做出響應(yīng),被稱為HTTP響應(yīng)??蛻舳伺c服務(wù)器在HTTP下的交互過程如圖1-3所示。1.2Web的工作原理圖1-3客戶端與服務(wù)器的交互過程1.2.2HTTP報文格式1.HTTP請求報文
當(dāng)用戶在瀏覽器中訪問某個網(wǎng)址、單擊某個鏈接或提交網(wǎng)頁上的表單時,瀏覽器會向服務(wù)器發(fā)送請求數(shù)據(jù),即HTTP請求報文。一個完整的HTTP請求報文由三個部分組成:請求行、請求頭、請求正文。1.2Web的工作原理圖1-4HTTP請求報文1.2.2HTTP報文格式1.HTTP請求報文(1)請求行
請求行位于請求報文的第一行,它由請求方式、資源路徑和所使用的HTTP版本三個部分組成。格式為:請求方式URL協(xié)議版本1.2Web的工作原理請求方式含義GET請求獲取請求行的URI所標(biāo)識的資源POST向指定資源提交數(shù)據(jù),請求服務(wù)器進行處理(如提交表單或上傳文件)HEAD請求獲取由URI所標(biāo)識資源的響應(yīng)消息頭OPTIONS請求查詢Web服務(wù)器的性能,或者查詢與資源相關(guān)的選項和需求PUT將網(wǎng)頁放置到指定URL位置(上傳/移動)DELETE請求服務(wù)器刪除URI所指定的資源,是與PUT相反的方法TRACE請求Web服務(wù)器端將之前的請求通信環(huán)回給客戶端CONNECT保留將來使用HTTP的常用請求方式1.2.2HTTP報文格式1.HTTP請示報文(2)請求頭
請求頭主要用于向服務(wù)器端傳遞附加消息,例如,客戶端可以接收的數(shù)據(jù)類型、壓縮方法、語言及發(fā)送請求的超鏈接所屬頁面的URL地址等信息。請求頭由一個頭字段名稱和一個值構(gòu)成,頭字段名稱和值之間用冒號(:)和空格分隔,格式為:頭部字段名:值常用的請求頭字段說明詳見教材表1-2所示。1.2Web的工作原理1.2.2HTTP報文格式2.HTTP響應(yīng)報文
服務(wù)器接收到請求數(shù)據(jù)時,會將處理后的數(shù)據(jù)傳送給客戶端,即HTTP響應(yīng)報文。一個完整的響應(yīng)報文由三個部分組成:響應(yīng)狀態(tài)行、響應(yīng)頭、響應(yīng)實體1.2Web的工作原理圖1-5HTTP響應(yīng)報文1.2.2HTTP報文格式2.HTTP響應(yīng)報文
(1)響應(yīng)狀態(tài)行
位于響應(yīng)報文的第一行,它包含三個部分,即HTTP版本、一個表示成功或錯誤的整數(shù)代碼(狀態(tài)碼)和對狀態(tài)碼進行描述的文本信息。格式為:協(xié)議版本狀態(tài)碼狀態(tài)碼描述1.2Web的工作原理1.2.2HTTP報文格式2.HTTP響應(yīng)報文
(1)響應(yīng)狀態(tài)行1.2Web的工作原理狀態(tài)碼說明101(切換協(xié)議)如果客戶端發(fā)送的請求使用另外一種協(xié)議與服務(wù)器進行對話,服務(wù)器發(fā)送101響應(yīng)狀態(tài)碼表示自己將遵從客戶端請求,轉(zhuǎn)換到另外一種協(xié)議200(正常)客戶端的請求成功,響應(yīng)消息返回正常的請求結(jié)果。201(已創(chuàng)建)服務(wù)器已經(jīng)根據(jù)客戶端的請求創(chuàng)建了文檔,文檔的URL為響應(yīng)消息中Location響應(yīng)頭的值302(找到)表示請求的資源臨時從不同的URL響應(yīng)請求,但請求者應(yīng)繼續(xù)使用原有位置進行以后的請求305(使用代理)客戶端應(yīng)通過Location頭所指定的代理服務(wù)器獲得請求的文檔404(找不到)表示服務(wù)器上不存在客戶端請求的資源408(請求超時)在服務(wù)器等待的時間內(nèi),客戶端沒有發(fā)出任何請求500(內(nèi)部服務(wù)器錯誤)表示服務(wù)器發(fā)生錯誤,無法處理客戶端的請求503(服務(wù)不可用)由于服務(wù)器目前過載或者處于維護狀態(tài),不能處理客戶端的請求常見狀態(tài)碼說明1.2.2HTTP報文格式2.HTTP響應(yīng)報文
(2)響應(yīng)頭
服務(wù)器端通過響應(yīng)頭向客戶端傳遞附加信息,包括服務(wù)程序名、被請求資源需要的誰方式、客戶端請求資源的最后修改時間、重定向地址等。當(dāng)服務(wù)器向客戶端回送響應(yīng)消息時,根據(jù)情況不同,發(fā)送的響應(yīng)頭也不相同。1.2Web的工作原理頭字段說明Accept-Range用于說明服務(wù)器是否接收客戶端使用Range請求頭字段請求資源Age用于指出當(dāng)前網(wǎng)頁文檔可以在客戶端或代理服務(wù)器中緩存的有效時間,以秒為單位Content-Length表示內(nèi)容長度Content-Type表示后面的文檔屬于什么類型。Servlet默認(rèn)為text/plain,但通常需要顯式地指定為text/html。Date當(dāng)前的GMT時間。Etag用于向客戶端傳送代表實體內(nèi)容特征的標(biāo)記信息Location用于通知客戶端獲取請求文檔的新地址,其值為一個使用絕對路徑的URL地址Retry-After可以與503狀態(tài)碼配合使用,告訴客戶端在什么時間可以重新發(fā)送請求Server用于指定服務(wù)器軟件產(chǎn)品的名稱Vary用于指定服務(wù)器軟件產(chǎn)品的名稱Refresh用于告知瀏覽器自動刷新頁面的時間,以秒為單位常用的響應(yīng)頭字段1.2.2HTTP報文格式2.HTTP響應(yīng)報文
(3)響應(yīng)實體
響應(yīng)實體用于存放需要返回給客戶端的數(shù)據(jù)信息。1.2Web的工作原理
在客戶端和服務(wù)器之間進行請求——響應(yīng)時,兩種最常被用到的方法是GET方法和POST方法。GET方法用于從指定的資源請求數(shù)據(jù);POST方法用于向指定的資源提交要被處理的數(shù)據(jù)。1.2.3GET方法當(dāng)客戶端要從服務(wù)器端中讀取文檔時,使用GET方法。使用GET方法時,請求的參數(shù)和對應(yīng)的值被附加在URL地址后面,一起被發(fā)送到服務(wù)器。舉例如下。/test/form.jsp?id=1001&name=zhang從這個例子中我們可以看到,問號(?)代表URL的結(jié)尾與請求參數(shù)的開始,參數(shù)由參數(shù)名和參數(shù)值組成,中間用等號(=)連接。如果有多個參數(shù),參數(shù)之間用&分隔。因此GET方法在通過URL提交數(shù)據(jù)時,數(shù)據(jù)在URL中是可以被看到的,若用戶輸入的數(shù)據(jù)是非敏感數(shù)據(jù),則可以使用GET。1.2Web的工作原理1.2.4POST方法當(dāng)客戶端給服務(wù)器端發(fā)送請求時可以使用POST方法,比如當(dāng)用戶提交表單時,瀏覽器將使用POST方法提交表單內(nèi)容。POST方法將請求參數(shù)放置在RequestBody內(nèi),可以傳輸大量數(shù)據(jù),也可用來傳送文件。舉例如下。POST/form.jspHTTP/1.1Host:id=1001&name=zhangPOST方法不會像GET方法那樣將參數(shù)顯示在地址欄上,因此如果用戶輸入的數(shù)據(jù)是敏感數(shù)據(jù),那么還是使用POST為好。1.2Web的工作原理1.2Web的工作原理GET方法的特點:以GET方法獲取的數(shù)據(jù)
能夠被緩存GET方法獲取的數(shù)據(jù)會保存在瀏覽器的瀏覽記錄中以GET方法請求的URL能夠保存為瀏覽器書簽GET方法獲取的數(shù)據(jù)有長度限制GET方法主要用于獲取數(shù)據(jù)GET方法不應(yīng)在處理敏感數(shù)據(jù)時使用POST方法的特點:以POST方法提交的數(shù)據(jù)
不會被緩存POST方法提交的數(shù)據(jù)不會保留在瀏覽器歷史記錄POST方法提交的數(shù)據(jù)不能被收藏至?xí)濸OST方法對提交的數(shù)據(jù)長度沒有要求。
在搭建Web應(yīng)用的開發(fā)環(huán)境時,首先需要安裝開發(fā)工具包JDK,其次安裝Web服務(wù)器和數(shù)據(jù)庫。1.3.1Servlet容器介紹Servlet(ServerApplet)是JavaServlet的簡稱,稱為小服務(wù)程序或服務(wù)連接器,是用Java語言編寫的運行在服務(wù)器端的程序,主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動態(tài)Web內(nèi)容。其主要作用包括:①通過請求對象讀取用戶程序發(fā)送過來的顯式數(shù)據(jù)(如表單數(shù)據(jù));②通過請求對象讀取用戶程序發(fā)送過來的隱式數(shù)據(jù)(請求報頭);③處理數(shù)據(jù)并生成響應(yīng)內(nèi)容或設(shè)置響應(yīng)報頭。1.3Tomcat服務(wù)器1.3.2Tomcat簡介Tomcat是由Apache軟件基金會下屬的Jakarta項目開發(fā)的一個重要子項目,是按照Sun公司(已被Oracle收購)提供的技術(shù)規(guī)范,實現(xiàn)了對Servlet和JavaServerPage(JSP)的支持,是一個免費的開放源代碼的Web應(yīng)用服務(wù)器。1.3.3Tomcat的安裝配置1.3.4測試Tomcat1.3.5在Eclipse中配置Tomcat1.3.6在IDEA中配置TomcatTomcat的安裝、配置、測試詳見教材1.3.3、1.3.4、1.3.5、1.3.61.3Tomcat服務(wù)器1.4創(chuàng)建Web應(yīng)用示例1.4.1在Eclipse中創(chuàng)建Web應(yīng)用1.啟動Eclipse,菜單欄中選擇File→New→DynamicWebProject。2.打開NewDynamicWebProject窗口,在Projectname文本框中輸入項目的名稱“firstProject”,其他采用默認(rèn),并依次單擊Next,打開如下圖所示界面,在此界面中,Contextroot用于指定Web項目的根目錄,此處我們設(shè)置為chap1,Contentdirectory用于指定存放Web資源的目錄,我們采用默認(rèn)的設(shè)置,單擊Finish按鈕。1.4創(chuàng)建Web應(yīng)用示例1.4.2在IDEA中創(chuàng)建Web應(yīng)用1.打開IDEA,點擊菜單File→New→Project,打開“NewProject”窗口,在窗口左側(cè)選擇“Java”,右側(cè)選擇項目SDK版本,再依次單擊Next按鈕。如下圖所示。1.4創(chuàng)建Web應(yīng)用示例1.4.2在IDEA中創(chuàng)建Web應(yīng)用2.在打開的窗口中,輸入項目名稱“secondProject”,并設(shè)置好項目存放路徑,單擊Finish按鈕。如下圖所示。3.項目建立后,在打開的主界面中,選中左側(cè)的項目名稱“secondProject”,單擊右鍵,在打開的菜單中選擇“AddFrameworkSupport…”。1.4創(chuàng)建Web應(yīng)用示例1.4.2在IDEA中創(chuàng)建Web應(yīng)用4.在之后的界面中選中“WebAppliction(4.0)”,并點擊OK按鈕。確定后在項目中會生成Web文件夾。5.選擇菜單File→ProjectStructure,打開ProjectStructure窗口,在該窗口中的左側(cè)選擇Modules,右側(cè)選擇Dependencies選項卡。6.單擊右側(cè)的“+”號,并選擇“2Libraries”,如下圖所示。1.4創(chuàng)建Web應(yīng)用示例1.4.2在IDEA中創(chuàng)建Web應(yīng)用7.打開ChooseLibraires窗口,在此窗口中選擇ApplicationServerLibraries下的配置好的Tomcat版本,點擊AddSelected按鈕,再次返回到如下圖所示的窗口。將此窗口中將添加的Tomcat選項打勾,依次單擊Apply按鈕及OK按鈕。至此,一個完整的Web項目已經(jīng)創(chuàng)建完成。本章首先介紹了Web應(yīng)用程序基本概念、工作原理,其次介紹了Tomcat服務(wù)器,包括安裝、配置及測試,最后詳細描述了在Eclipse及IDEA中創(chuàng)建Web應(yīng)用的過程。
1.5本章小結(jié)第2章JSP技術(shù)掌握J(rèn)SP的基本語法掌握J(rèn)SP注釋與聲明使用的方法掌握J(rèn)SP與HTML混合使用的方法掌握J(rèn)SP幾種編譯指令的運用掌握J(rèn)SP幾種動作標(biāo)簽的運用掌握J(rèn)SP的隱含對象學(xué)習(xí)目標(biāo)2.1.1什么是JSPJSP技術(shù)是由SUN公司(現(xiàn)被Oracle收購)提出,并于1999年推出的一款建設(shè)動態(tài)網(wǎng)頁的方法,是建立在Servlet規(guī)范上的動態(tài)網(wǎng)頁開發(fā)技術(shù),全稱為JavaServerPage。JSP的網(wǎng)頁實際上是在HTML文件中加入Java代碼及JSP的特殊標(biāo)記構(gòu)成的,其中,HTML代碼用于實現(xiàn)網(wǎng)頁中靜態(tài)內(nèi)容的顯示,Java代碼用于實現(xiàn)網(wǎng)頁中動態(tài)內(nèi)容的顯示。JSP文件的擴展名為“.jsp”。2.1JSP簡介2.1.2JSP的特點(1)當(dāng)用戶通過瀏覽器訪問JSP頁面時,服務(wù)器將對JSP頁面代碼進行一次且僅進行一次編譯。當(dāng)JSP頁面首次被加載時需要編譯,編譯好的代碼將會保存,在用戶下一次訪問時會直接執(zhí)行編譯好的代碼,這樣不僅響應(yīng)的速度會更快,而且節(jié)約了服務(wù)器的CPU資源。(2)由于JSP基于Java語言,而Java本身就有跨平臺的特性,因此JSP也是跨平臺的。當(dāng)更換服務(wù)平臺時,JSP幾乎可以不做任何變動或少量修改就可以完成服務(wù)平臺的遷移;當(dāng)需要更換Web服務(wù)器時,JSP也可以做到幾乎不做任何變動就可以在新的Web服務(wù)器中編譯、運行。(3)在項目開發(fā)過程中可以進行分工,即界面設(shè)計與業(yè)務(wù)邏輯分離,網(wǎng)頁設(shè)計師專注于頁面的美化,JSP程序開發(fā)人員則負(fù)責(zé)動態(tài)部分。2.1JSP簡介2.1.3JSP工作原理JSP的工作模式是請求/響應(yīng)模式。客戶端首先向Web服務(wù)器發(fā)出請求,請求訪問JSP文件,JSP文件收到請求后,會先轉(zhuǎn)換成一個Java源文件,并將其編譯成相應(yīng)的字節(jié)碼文件,即*.class。再將此class文件加載到內(nèi)存中執(zhí)行,最后由服務(wù)器將處理結(jié)果返回給客戶端。如果在此過程中,JSP第一次編譯后,再重復(fù)調(diào)用此JSP頁面時,如果發(fā)現(xiàn)此JSP頁面沒有被改動,就會直接使用編譯后的class文件,若頁面被修改過,則需要重新加載編譯。JSP工作流程如圖所示。2.1JSP簡介2.2.1一個簡單的JSP程序例2-1創(chuàng)建一個JSP程序,用于顯示系統(tǒng)當(dāng)前時間。
在第1章中,我們在IDEA中創(chuàng)建了一個Web工程secondProject,在該工程的web目錄下自動創(chuàng)建了一個名為index.jsp的JSP文件,如下圖所示。2.2JSP標(biāo)準(zhǔn)語法2.2.1一個簡單的JSP程序輸入如下代碼,運行結(jié)果如下圖所示。2.2JSP標(biāo)準(zhǔn)語法HTML代碼中嵌入了Java代碼,Java代碼包含在“<%”和“%>”之間2.2.2JSP注釋1.HTML中的注釋。由于JSP文件中可以包含HTML代碼,所以HTML中的注釋同樣可以在JSP文件中使用。HTML注釋語法如下。<!--注釋內(nèi)容-->2.JSP的注釋。JSP的注釋的語法格式如下。<%--注釋內(nèi)容--%>2.2JSP標(biāo)準(zhǔn)語法2.2.2JSP注釋3.JSP腳本注釋在JSP腳本程序中包含了Java代碼,所以在腳本程序中的注釋與在Java中的注釋是相同的,即有三種注釋方法,分別為單行注釋、多行注釋、文檔注釋。(1)單行注釋的格式://注釋內(nèi)容(2)多行注釋的格式:/*
注釋內(nèi)容1
注釋內(nèi)容2 …*/2.2JSP標(biāo)準(zhǔn)語法(3)文檔注釋的格式:/**
提示信息1
提示信息2 …*/2.2.3JSP腳本JSP腳本元素是指嵌套在“<%”和“%>”中的一條或多條Java程序代碼,這些Java代碼需要嚴(yán)格遵守Java語法規(guī)范,通過JSP腳本元素可以將Java代碼嵌入HTML頁面。JSP腳本元素主要分為三種類型,分別為代碼腳本、表達式腳本、聲明腳本。1.代碼腳本代碼腳本就是一段Java代碼,它以“<%”開始,以“%>”結(jié)束,語法格式:<%Java代碼%>2.表達式腳本表達式腳本主要用于將程序數(shù)據(jù)輸出到客戶端,它以“<%=”開始,以“%>”結(jié)束,語法格式:<%=表達式%>注意:JSP表達式中的變量或表達式之后不能有分號,“<%”和“=”之間不能有空格。例如:<%=5+5%><%=newDate()%><%=”hello”%>2.2JSP標(biāo)準(zhǔn)語法2.2.3JSP腳本3.聲明腳本聲明腳本主要用于聲明變量、方法和類,它是以“<%!”開始,以“%>”結(jié)束,語法格式:<%!定義變量/定義方法/定義類%>(1)聲明變量。在“<%!”和“%>”之間聲明的變量,可以是Java允許的任何數(shù)據(jù)類型,聲明的變量在整個JSP頁面內(nèi)都有效,例如:<%!inti=0;%><%!intx,y,z;%>(2)聲明方法。在“<%!”和“%>”之間聲明的方法,在整個JSP頁面有效,但是在方法內(nèi)定義的變量只在該方法內(nèi)有效。2.2JSP標(biāo)準(zhǔn)語法2.2.3JSP腳本例2-4:聲明方法,統(tǒng)計訪問該網(wǎng)頁的人數(shù)。在secondProject工程的web目錄下創(chuàng)建一個名為count.jsp的JSP文件2.2JSP標(biāo)準(zhǔn)語法重啟Tomcat服務(wù)器,在瀏覽器中輸入地址http://localhost:8080/count.jsp,運行結(jié)果如圖:2.2.3JSP腳本3.聲明腳本(3)聲明類??梢栽凇?lt;%!”和“%>”之間聲明一個類,該類在JSP頁面內(nèi)有效,即在JSP頁面的Java程序段部分均可以使用該類創(chuàng)建對象。2.2JSP標(biāo)準(zhǔn)語法2.2.4JSP與HTML的混合使用例2-5求n!(1)在secondProject項目的Web文件夾中創(chuàng)建名為calculate.jsp的JSP文件,用于展示計算結(jié)果,代碼如下2.2JSP標(biāo)準(zhǔn)語法2.2.4JSP與HTML的混合使用例2-5求n!(2)在web文件夾中創(chuàng)建名為jiecheng.html的HTML文件,代碼如下2.2JSP標(biāo)準(zhǔn)語法2.2.4JSP與HTML的混合使用例2-5求n!(3)重啟Tomcat服務(wù)器,在瀏覽器的地址欄中輸入http://localhost:8080/jiecheng.html,打開的界面如下圖所示。2.2JSP標(biāo)準(zhǔn)語法在此例中,n的值是在jiecheng.html文件中輸入,計算的過程、結(jié)果及結(jié)果的顯示在calculate.jsp文件中完成。JSP編譯指令用來設(shè)置整個JSP頁面相關(guān)的屬性,如網(wǎng)頁的編碼方式和腳本語言,JSP常見的三個編譯指令為page、include、taglib。2.3.1include指令在JSP頁面中,如果要把其他資源文件包含到當(dāng)前JSP頁面中,那么可以通過include指令來實現(xiàn),被包含的資源文件可以是JSP文件、HTML文件或文本文件。這些包含的文件就好像是該JSP文件的一部分,會被同時編譯執(zhí)行。其語法格式如下。<%@includefile=“被包含的文件地址”%>其中file屬性用于指定包含到JSP頁面的文件資源,一般該文件資源的路徑為相對路徑。2.3JSP編譯指令2.3.1include指令例2-6:了解include指令的用法。(詳見教材例2-6)2.3.2page指令在JSP頁面中,當(dāng)需要對頁面的某些特性進行描述時,可以通過page指令來實現(xiàn)。其語法格式如下。<%@page屬性名="屬性值"%>page指令的常用屬性見教材表2-12.3JSP編譯指令2.3.3taglib指令JSP頁面中不僅可以使用標(biāo)準(zhǔn)標(biāo)簽庫,還允許用戶自定義新的標(biāo)簽在頁面中執(zhí)行,語法格式如下。<%@taglib
uri="uri"prefix="prefixOfTag"%>其中,屬性uri用來表示自定義標(biāo)簽庫存放的地址,屬性prefix指定標(biāo)簽的前綴,此處要注意不要用jsp、jspx、java、javax、servlet、sun和sunw作為前綴。2.3JSP編譯指令利用JSP動作可以實現(xiàn)動態(tài)地插入文件、把用戶重定向到另外的頁面、為Java插件生成HTML代碼等。2.4.1forward動作<jsp:forward>動作用于把請求轉(zhuǎn)發(fā)給另一個JSP目標(biāo)頁面,目標(biāo)頁面可以通過方法獲得參數(shù)進行下一步處理。語法格式如下。<jsp:forwardpage="相對URL地址"/>或<jsp:forwardpage="相對URL地址"/>
<jsp:paramname=”參數(shù)”value=“參數(shù)值”/></jsp:forward>屬性page是一個相對URL地址,<jsp:param>用于向轉(zhuǎn)向的目標(biāo)頁面?zhèn)鬟f參數(shù)。2.4JSP動作例2-7在工程secondProject的web目錄下創(chuàng)建一個JSP文件:forward.jsp,在該文件中使用<jsp:forward>動作將頁面重定向到例2-6中的circle.jsp頁面。文件forward.jsp內(nèi)容如下。2.4JSP動作<%@pagecontentType="text/html;charset=UTF-8"language="java"%>
<html>
<head>
<title>forward測試</title>
</head>
<body>
<jsp:forwardpage="circle.jsp"/></body>
</html>
啟動Tomcat服務(wù)器,在瀏覽器地址欄中輸入地址http://localhost:8080/forward.jsp,運行結(jié)果如下圖所示。
2.4.2include動作<jsp:include>動作語法格式如下。<jsp:includepage="相對URL地址"flush="true/false"/>或<jsp:includepage="相對URL地址"flush="true/false"/>
<jsp:paramname=”參數(shù)”value=“參數(shù)值”/></jsp:include>屬性page用于指定包含文件的相對路徑,屬性flush是可選項,用于設(shè)置在包含文件前是否刷新緩存區(qū),默認(rèn)值為false。<jsp:param>用于向被包含的頁面中傳遞參數(shù)。include動作的應(yīng)用詳見教材例2-8。2.4JSP動作JSP隱含對象是指在JSP頁面系統(tǒng)中已經(jīng)默認(rèn)內(nèi)置的Java對象,這些對象不需要開發(fā)人員聲明即可在腳本代碼和表達式中隨意使用。2.5.1輸出對象outout對象主要用來向客戶端瀏覽器輸出內(nèi)容,同時管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)。out對象的常用方法及說明見下表所示。2.5JSP的隱含對象方法說明voidprintln()向客戶端打印字符串。默認(rèn)會自動刷新緩沖區(qū)voidflush()將緩沖區(qū)的內(nèi)容輸出到客戶端voidclear()清除輸出緩沖區(qū)的內(nèi)容,如果在flush之后調(diào)用會拋出異常voidclearBuffer()清除輸出緩沖區(qū)的內(nèi)容,在flush之后調(diào)用不會拋出異常intgetBufferSize()取得目前緩沖區(qū)的大?。↘B)intgetRemaining()取得目前使用后還剩下的緩沖區(qū)大?。↘B)booleanisAutoFlush()緩沖區(qū)滿時,是否自動清空緩沖區(qū);false表示不會自動清空并且產(chǎn)生異常voidclose()關(guān)閉輸出流,清除所有的內(nèi)容out對象的常用方法及說明2.5.2請求對象request客戶每次向JSP服務(wù)器發(fā)送請求時,JSP引擎都會創(chuàng)建一個request對象,request對象封裝了客戶請求參數(shù)以及客戶端的信息,包括HTTP頭信息、傳遞的參數(shù)及參數(shù)值、系統(tǒng)信息等。request對象的常用方法及說明見下表所示。2.5JSP的隱含對象request對象的常用方法及說明方法說明getParameter()獲取請求中指定的參數(shù)值,返回String類型getParameterValues()獲取客戶端提交頁面中一組控件的值,返回值一個String數(shù)組getParameterName()獲取參數(shù)名getHeader()獲取HTTP頭文件中的指定值getHeaders
()獲取表頭信息getRemoteAddr()獲取客戶主機的IP地址getRemoteHost()獲取客戶主機的名稱getRemotePort()獲取客戶主機端口getMethod()獲取客戶提交信息的方式getServerPort()獲取服務(wù)器端口getServerName()獲取服務(wù)器的名稱2.5.2請求對象request例2-9創(chuàng)建getInfo.jsp文件,用于獲取客戶主機及服務(wù)器信息,代碼如下。獲取客戶端及服務(wù)器信息的運行結(jié)果如右圖所示。2.5JSP的隱含對象<%@pagecontentType="text/html;charset=UTF-8"language="java"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
out.println("客戶主機IP:"+request.getRemoteAddr()+"<br>");
out.println("客戶主機名稱:"+request.getRemoteHost()+"<br>");
out.println("客戶主機端口:"+request.getRemotePort()+"<br>");
out.println("服務(wù)器IP:"+request.getServerName()+"<br>");
out.println("服務(wù)器端口:"+request.getServerPort()+"<br>");
%>
</body>
</html>
2.5.3響應(yīng)對象responseresponse對象是對request對象請求的響應(yīng),主要將JSP處理數(shù)據(jù)后的結(jié)果傳回客戶端。response對象的常用方法及說明如下表所示。2.5JSP的隱含對象方法說明sendRedirect(Stringuri)頁面重定向setStatus(intcode)設(shè)置頁面的響應(yīng)狀態(tài)代碼addCookie(Cookiecookie)添加Cookie信息addHeader(Stringname,Stringvalue)新增String類型的值到name標(biāo)頭setHeader(Stringname,Stringvalue)指定String類型的值到name標(biāo)頭addIntHeader(Stringname,intvalue)新增int類型的值到name標(biāo)頭setIntHeader(Stringname,intvalue)指定int類型的值到name標(biāo)頭response對象的常用方法及說明2.5.4會話對象sessionHTTP是無狀態(tài)協(xié)議,這意味著每次客戶端請求網(wǎng)頁時,服務(wù)器收到請求并返回響應(yīng)后,連接就結(jié)束了,服務(wù)器不會記錄下先前客戶端請求的任何信息。如果用戶的瀏覽器沒有關(guā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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《急救護理困擾》課件
- 《護理教育學(xué)輔導(dǎo)》課件
- 【大學(xué)課件】土木工程概論 土木工程材料
- 高端裝備數(shù)字化智能工廠項目可行性研究報告寫作模板-備案審批
- 《莫言英文簡介》課件
- 單位人力資源管理制度匯編大全十篇
- 甘肅省武威市涼州區(qū)2024-2025學(xué)年高一上學(xué)期期末考試歷史試卷(含答案)
- 循環(huán)經(jīng)濟產(chǎn)業(yè)園雨污分流改造及再生水回用項目可行性研究報告寫作模板-備案審批
- 單位管理制度收錄大合集【職工管理篇】
- 【課件】大學(xué)課程演進的回顧與展望
- 2024年醫(yī)院培訓(xùn)計劃
- 2023年湖南出版中南傳媒招聘筆試真題
- 呼吸內(nèi)科臨床診療指南及操作規(guī)范
- 學(xué)生管理教育課件
- 物業(yè)經(jīng)理轉(zhuǎn)正述職
- 貿(mào)易崗位招聘面試題及回答建議(某大型國企)2025年
- 世界職業(yè)院校技能大賽高職組“關(guān)務(wù)實務(wù)組”賽項參考試題及答案
- 高中歷史教師資格考試面試試題及解答參考(2024年)
- 銀行貸款房產(chǎn)抵押合同樣本
- 北師大版(2024新版)生物七年級上冊期末考點復(fù)習(xí)提綱
- 期末 試題 -2024-2025學(xué)年人教PEP版英語六年級上冊 (含答案)
評論
0/150
提交評論