




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
JavaWeb工程師技術(shù)修煉圖譜JavaWeb技術(shù)開發(fā)實戰(zhàn)第二章:Servlet基礎(chǔ)Servlet概述Servlet開發(fā)入門Servlet接口及其實現(xiàn)類GenericServletHttpServlet類Servlet生命周期使用Eclipse開發(fā)Servlet類Servlet虛擬路徑的映射1(xml配置)Servlet虛擬路徑的映射2(@WebServlet配置)手動開發(fā)Servlet類ServletConfig類及其應(yīng)用ServletContext類及其應(yīng)用內(nèi)容概要:Servlet基礎(chǔ)——內(nèi)容概要Servlet概述Servlet開發(fā)入門Servlet接口Servlet接口及其實現(xiàn)類GenericServletHttpServlet類Servlet生命周期使用Eclipse開發(fā)Servlet類Servlet虛擬路徑的映射1(xml配置)Servlet虛擬路徑的映射2(@WebServlet配置)手動開發(fā)Servlet類ServletConfig接口及其應(yīng)用ServletContext接口及其應(yīng)用Servlet基礎(chǔ)——Servlet概述Servlet是使用Java語言編寫的運行在服務(wù)器端的程序。狹義的Servlet是指Java語言實現(xiàn)的一個接口,廣義的Servlet是指任何實現(xiàn)了這個Servlet接口的類,一般情況下,人們將Servlet理解為后者。Servlet主要用于處理客戶端傳來的HTTP請求,并返回一個響應(yīng),它能夠處理的請求有doGet()和doPost()等方法。Servlet由Servlet容器提供,所謂的Servlet容器是指提供了Servlet功能的服務(wù)器(本書中指Tomcat),Servlet容器將Servlet動態(tài)的加載到服務(wù)器上。與HTTP協(xié)議相關(guān)的Servlet使用HTTP請求和HTTP響應(yīng)與客戶端進行交互。因此,Servlet容器支持所有HTTP協(xié)議的請求和響應(yīng)。Servlet應(yīng)用程序的體系結(jié)構(gòu)如圖所示。Servlet基礎(chǔ)——Servlet概述Servlet的請求首先會被HTTP服務(wù)器接收,HTTP服務(wù)器只負責(zé)靜態(tài)HTML頁面的解析,對于Servlet的請求轉(zhuǎn)交給Servlet容器,Servlet容器會根據(jù)web.xml文件中的映射關(guān)系,調(diào)用相應(yīng)的Servlet,Servlet將處理的結(jié)果返回給Servlet容器,并通過HTTP服務(wù)器將響應(yīng)傳輸給客戶端。Servlet技術(shù)具有如下特點:方便:Servlet提供了大量的實用工具例程,如處理很難完成的HTML表單數(shù)據(jù)、讀取和設(shè)置HTTP頭,以及處理Cookie和跟蹤會話等。跨平臺:Servlet用Java類編寫,可以在不同操作系統(tǒng)平臺和不同應(yīng)用服務(wù)器平臺下運行。靈活性和可擴展性:采用Servlet開發(fā)的Web應(yīng)用程序,由于Java類的繼承性及構(gòu)造函數(shù)等特點,使得應(yīng)用靈活,可隨意擴展。除了上述幾點外,Servlet還具有功能強大、能夠在各個程序之間共享數(shù)據(jù)、安全性強等特點。Servlet基礎(chǔ)——開發(fā)入門針對Servlet技術(shù)的開發(fā),SUN公司提供了一系列接口和類,其中最重要的接口是javax.servlet.Servlet。在Servlet接口中定義了5個抽象方法,具體如表所示。Servlet基礎(chǔ)——開發(fā)入門Servlet、GenericServlet、HttpServlet類之間的繼承關(guān)系。Servlet基礎(chǔ)——Servlet接口使用Eclipse來開發(fā)一個Servlet(采用實現(xiàn)Servlet接口方式)步驟:1.編寫Servlet類2.配置映射虛擬訪問路徑3.運行測試Servlet基礎(chǔ)——Servlet生命周期在Java中,任何對象都有生命周期,Servlet也不例外,接下來,通過一張圖來描述Servlet的生命周期,如圖所示。右圖描述了Servlet的生命周期。按
照功能的不同,大致可以將Servlet
的生命周期分為三個階段,分別是
初始化階段、運行階段和銷毀階段。Servlet基礎(chǔ)——Servlet生命周期1.初始化階段當客戶端向Servlet容器發(fā)出HTTP請求要求訪問Servlet時,Servlet容器首先會解析請求,檢查內(nèi)存中是否已經(jīng)有了該Servlet對象,如果有直接使用該Servlet對象,如果沒有就創(chuàng)建Servlet實例對象,然后通過調(diào)用init()方法實現(xiàn)Servlet的初始化工作。需要注意的是,在Servlet的整個生命周期內(nèi),它的init()方法只被調(diào)用一次。2.運行階段這是Servlet生命周期中最重要的階段,在這個階段,Servlet容器會為這個請求創(chuàng)建代表HTTP請求的ServletRequest對象和代表HTTP響應(yīng)的ServletResponse對象,然后將它們作為參數(shù)傳遞給Servlet的service()方法。service()方法從ServletRequest對象中獲得客戶請求信息并處理該請求,通過ServletResponse對象生成響應(yīng)結(jié)果。在Servlet的整個生命周期內(nèi),對于Servlet的每一次訪問請求,Servlet容器都會調(diào)用一次Servlet的service()方法,并且創(chuàng)建新的ServletRequest和ServletResponse對象,也就是說,service()方法在Servlet的整個生命周期中會被調(diào)用多次。3.銷毀階段當服務(wù)器關(guān)閉或web應(yīng)用被移除出容器時,Servlet隨著web應(yīng)用的銷毀而銷毀。在銷毀Servlet之前,Servlet容器會調(diào)用Servlet的destroy()方法,以便讓Servlet對象釋放它所占用的資源。在Servlet的整個生命周期中,destroy()方法也只被調(diào)用一次。需要注意的是,Servlet對象一旦創(chuàng)建就會駐留在內(nèi)存中等待客戶端的訪問,直到服務(wù)器關(guān)閉,或web應(yīng)用被移除出容器時Servlet對象才會銷毀。Servlet基礎(chǔ)——Servlet生命周期Servlet基礎(chǔ)——虛擬路徑的映射(xml配置方式)在web.xml使用<servlet>與<servlet-mapping>標簽來配置虛擬路徑的配置,具體步驟見操作。Servlet基礎(chǔ)——虛擬路徑的映射(注解配置方式)@WebServlet注解映射Servlet:
Servlet3.0開始,配置Servlet支持注解方式,但還是保留了配置web.xml方式.Servlet基礎(chǔ)——自動加載Servlet類在實際開發(fā)時,有時候會希望某些Servlet程序可以在Tomcat啟動時隨即啟動。例如,當啟動一個Web項目時,首先需要對數(shù)據(jù)庫信息進行初始化。這時,只需要使用web.xml文件中<load-on-startup>元素,將初始化數(shù)據(jù)庫的Servlet配置為隨著web應(yīng)用啟動而啟動的Servlet即可。<load-on-startup>元素是<servlet>元素的一個子元素,它用于指定Servlet被加載的時機和順序。在<load-on-startup>元素中,設(shè)置的值必須是一個整數(shù)。如果這個值是一個負數(shù),或者沒有設(shè)定這個元素,Servlet容器將在客戶端首次請求這個Servlet時加載它;如果這個值是正整數(shù)或0,Servlet容器將在Web應(yīng)用啟動時加載并初始化Servlet,并且<load-on-startup>的值越小,它對應(yīng)的Servlet就越先被加載。Servlet基礎(chǔ)——ServletConfig接口在Servlet運行期間,經(jīng)常需要一些輔助信息,例如,文件使用的編碼、使用Servlet程序的共享等,這些信息可以在web.xml文件中使用一個或多個<init-param>元素進行配置。當Tomcat初始化一個Servlet時,會將該Servlet的配置信息封裝到一個ServletConfig對象中,通過調(diào)用init(ServletConfigconfig)方法將ServletConfig對象傳遞給Servlet。ServletConfig定義了一系列獲取配置信息的方法,接下來通過一張表來描述ServletConfig接口的常用方法,如表所示。Servlet基礎(chǔ)——ServletContext接口當Servlet容器啟動時,會為每個Web應(yīng)用創(chuàng)建一個唯一的ServletContext對象代表當前Web應(yīng)用,該對象不僅封裝了當前Web應(yīng)用的所有信息,而且實現(xiàn)了多個Servlet之間數(shù)據(jù)的共享。接下來,針對ServletContext接口的不同作用分別進行講解,具體如下:1.獲取Web應(yīng)用程序的初始化參數(shù)在web.xml文件中,不僅可以配置Servlet的初始化信息,還可以配置整個Web應(yīng)用的初始化信息。Web應(yīng)用初始化參數(shù)的配置方式具體如下所示:Servlet基礎(chǔ)——ServletContext接口2.實現(xiàn)多個Servlet對象共享數(shù)據(jù)由于一個Web應(yīng)用中的所有Servlet共享同一個ServletContext對象,因此ServletContext對象的域?qū)傩钥梢员辉揥eb應(yīng)用中的所有Servlet訪問。在ServletContext接口中定義了分別用于增加、刪除、設(shè)置ServletContext域?qū)傩缘乃膫€方法,如表所示。Servlet基礎(chǔ)——ServletContext接口3.讀取Web應(yīng)用下的資源文件在實際開發(fā)中,有時候可能會需要讀取Web應(yīng)用中的一些資源文件,比如配置文件,圖片等。為此,在ServletContext接口中定義了一些讀取Web資源的方法,這些方法是依靠Servlet容器來實現(xiàn)的。Servlet容器根據(jù)資源文件相對于Web應(yīng)用的路徑,返回關(guān)聯(lián)資源文件的IO流、資源文件在文件系統(tǒng)的絕對路徑等。表中列舉了ServletContext接口中用于獲取資源路徑的相關(guān)方法,具體如下:Servlet基礎(chǔ)——手動的編寫&編譯&運行Servlet1.使用記事本編寫一個Servlet類2.在DOS命令行對Servlet類進行編譯
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘肅機電職業(yè)技術(shù)學(xué)院《國家公園與地質(zhì)公園概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 9獵人海力布 教學(xué)設(shè)計-2024-2025學(xué)年五年級上冊語文統(tǒng)編版
- 鄭州電子商務(wù)職業(yè)學(xué)院《體育游戲組織與編創(chuàng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 皖南醫(yī)學(xué)院《軟件項目》2023-2024學(xué)年第二學(xué)期期末試卷
- 濟南大學(xué)《乳品研究與開發(fā)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧理工職業(yè)大學(xué)《中國時政與翻譯》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘇州衛(wèi)生職業(yè)技術(shù)學(xué)院《電子商務(wù)法規(guī)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津科技大學(xué)《水工程施工與管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川電影電視學(xué)院《激光技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣西培賢國際職業(yè)學(xué)院《土力學(xué)基礎(chǔ)工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 中小學(xué)課件人造衛(wèi)星課件
- 新版冀教版(冀人版)科學(xué)五年級下冊全冊教案
- 部編版八年級歷史(下)全冊教案
- 水土保持各種分級標準表與指標
- 部編版四年級語文下冊27《巨人的花園》PPT課件(共2課時)
- 測繪項目收費標準2009
- 《成本會計學(xué)》習(xí)題集及答案
- 社區(qū)醫(yī)院建設(shè)標準
- 個人所得稅稅率表【自動提取稅率計算】
- 浙美版小學(xué)美術(shù)五年級下冊課件1畫家故居
- 中國作家協(xié)會入會申請表
評論
0/150
提交評論