JavaWb技術開發(fā)-第02章-Servlet基礎_第1頁
JavaWb技術開發(fā)-第02章-Servlet基礎_第2頁
JavaWb技術開發(fā)-第02章-Servlet基礎_第3頁
JavaWb技術開發(fā)-第02章-Servlet基礎_第4頁
JavaWb技術開發(fā)-第02章-Servlet基礎_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JavaWeb工程師技術修煉圖譜JavaWeb技術開發(fā)實戰(zhàn)第二章:Servlet基礎Servlet概述Servlet開發(fā)入門Servlet接口及其實現(xiàn)類GenericServletHttpServlet類Servlet生命周期使用Eclipse開發(fā)Servlet類Servlet虛擬路徑的映射1(xml配置)Servlet虛擬路徑的映射2(@WebServlet配置)手動開發(fā)Servlet類ServletConfig類及其應用ServletContext類及其應用內(nèi)容概要:Servlet基礎——內(nèi)容概要Servlet概述Servlet開發(fā)入門Servlet接口Servlet接口及其實現(xiàn)類GenericServletHttpServlet類Servlet生命周期使用Eclipse開發(fā)Servlet類Servlet虛擬路徑的映射1(xml配置)Servlet虛擬路徑的映射2(@WebServlet配置)手動開發(fā)Servlet類ServletConfig接口及其應用ServletContext接口及其應用Servlet基礎——Servlet概述Servlet是使用Java語言編寫的運行在服務器端的程序。狹義的Servlet是指Java語言實現(xiàn)的一個接口,廣義的Servlet是指任何實現(xiàn)了這個Servlet接口的類,一般情況下,人們將Servlet理解為后者。Servlet主要用于處理客戶端傳來的HTTP請求,并返回一個響應,它能夠處理的請求有doGet()和doPost()等方法。Servlet由Servlet容器提供,所謂的Servlet容器是指提供了Servlet功能的服務器(本書中指Tomcat),Servlet容器將Servlet動態(tài)的加載到服務器上。與HTTP協(xié)議相關的Servlet使用HTTP請求和HTTP響應與客戶端進行交互。因此,Servlet容器支持所有HTTP協(xié)議的請求和響應。Servlet應用程序的體系結(jié)構(gòu)如圖所示。Servlet基礎——Servlet概述Servlet的請求首先會被HTTP服務器接收,HTTP服務器只負責靜態(tài)HTML頁面的解析,對于Servlet的請求轉(zhuǎn)交給Servlet容器,Servlet容器會根據(jù)web.xml文件中的映射關系,調(diào)用相應的Servlet,Servlet將處理的結(jié)果返回給Servlet容器,并通過HTTP服務器將響應傳輸給客戶端。Servlet技術具有如下特點:方便:Servlet提供了大量的實用工具例程,如處理很難完成的HTML表單數(shù)據(jù)、讀取和設置HTTP頭,以及處理Cookie和跟蹤會話等。跨平臺:Servlet用Java類編寫,可以在不同操作系統(tǒng)平臺和不同應用服務器平臺下運行。靈活性和可擴展性:采用Servlet開發(fā)的Web應用程序,由于Java類的繼承性及構(gòu)造函數(shù)等特點,使得應用靈活,可隨意擴展。除了上述幾點外,Servlet還具有功能強大、能夠在各個程序之間共享數(shù)據(jù)、安全性強等特點。Servlet基礎——開發(fā)入門針對Servlet技術的開發(fā),SUN公司提供了一系列接口和類,其中最重要的接口是javax.servlet.Servlet。在Servlet接口中定義了5個抽象方法,具體如表所示。Servlet基礎——開發(fā)入門Servlet、GenericServlet、HttpServlet類之間的繼承關系。Servlet基礎——Servlet接口使用Eclipse來開發(fā)一個Servlet(采用實現(xiàn)Servlet接口方式)步驟:1.編寫Servlet類2.配置映射虛擬訪問路徑3.運行測試Servlet基礎——Servlet生命周期在Java中,任何對象都有生命周期,Servlet也不例外,接下來,通過一張圖來描述Servlet的生命周期,如圖所示。右圖描述了Servlet的生命周期。按

照功能的不同,大致可以將Servlet

的生命周期分為三個階段,分別是

初始化階段、運行階段和銷毀階段。Servlet基礎——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響應的ServletResponse對象,然后將它們作為參數(shù)傳遞給Servlet的service()方法。service()方法從ServletRequest對象中獲得客戶請求信息并處理該請求,通過ServletResponse對象生成響應結(jié)果。在Servlet的整個生命周期內(nèi),對于Servlet的每一次訪問請求,Servlet容器都會調(diào)用一次Servlet的service()方法,并且創(chuàng)建新的ServletRequest和ServletResponse對象,也就是說,service()方法在Servlet的整個生命周期中會被調(diào)用多次。3.銷毀階段當服務器關閉或web應用被移除出容器時,Servlet隨著web應用的銷毀而銷毀。在銷毀Servlet之前,Servlet容器會調(diào)用Servlet的destroy()方法,以便讓Servlet對象釋放它所占用的資源。在Servlet的整個生命周期中,destroy()方法也只被調(diào)用一次。需要注意的是,Servlet對象一旦創(chuàng)建就會駐留在內(nèi)存中等待客戶端的訪問,直到服務器關閉,或web應用被移除出容器時Servlet對象才會銷毀。Servlet基礎——Servlet生命周期Servlet基礎——虛擬路徑的映射(xml配置方式)在web.xml使用<servlet>與<servlet-mapping>標簽來配置虛擬路徑的配置,具體步驟見操作。Servlet基礎——虛擬路徑的映射(注解配置方式)@WebServlet注解映射Servlet:

Servlet3.0開始,配置Servlet支持注解方式,但還是保留了配置web.xml方式.Servlet基礎——自動加載Servlet類在實際開發(fā)時,有時候會希望某些Servlet程序可以在Tomcat啟動時隨即啟動。例如,當啟動一個Web項目時,首先需要對數(shù)據(jù)庫信息進行初始化。這時,只需要使用web.xml文件中<load-on-startup>元素,將初始化數(shù)據(jù)庫的Servlet配置為隨著web應用啟動而啟動的Servlet即可。<load-on-startup>元素是<servlet>元素的一個子元素,它用于指定Servlet被加載的時機和順序。在<load-on-startup>元素中,設置的值必須是一個整數(shù)。如果這個值是一個負數(shù),或者沒有設定這個元素,Servlet容器將在客戶端首次請求這個Servlet時加載它;如果這個值是正整數(shù)或0,Servlet容器將在Web應用啟動時加載并初始化Servlet,并且<load-on-startup>的值越小,它對應的Servlet就越先被加載。Servlet基礎——ServletConfig接口在Servlet運行期間,經(jīng)常需要一些輔助信息,例如,文件使用的編碼、使用Servlet程序的共享等,這些信息可以在web.xml文件中使用一個或多個<init-param>元素進行配置。當Tomcat初始化一個Servlet時,會將該Servlet的配置信息封裝到一個ServletConfig對象中,通過調(diào)用init(ServletConfigconfig)方法將ServletConfig對象傳遞給Servlet。ServletConfig定義了一系列獲取配置信息的方法,接下來通過一張表來描述ServletConfig接口的常用方法,如表所示。Servlet基礎——ServletContext接口當Servlet容器啟動時,會為每個Web應用創(chuàng)建一個唯一的ServletContext對象代表當前Web應用,該對象不僅封裝了當前Web應用的所有信息,而且實現(xiàn)了多個Servlet之間數(shù)據(jù)的共享。接下來,針對ServletContext接口的不同作用分別進行講解,具體如下:1.獲取Web應用程序的初始化參數(shù)在web.xml文件中,不僅可以配置Servlet的初始化信息,還可以配置整個Web應用的初始化信息。Web應用初始化參數(shù)的配置方式具體如下所示:Servlet基礎——ServletContext接口2.實現(xiàn)多個Servlet對象共享數(shù)據(jù)由于一個Web應用中的所有Servlet共享同一個ServletContext對象,因此ServletContext對象的域?qū)傩钥梢员辉揥eb應用中的所有Servlet訪問。在ServletContext接口中定義了分別用于增加、刪除、設置ServletContext域?qū)傩缘乃膫€方法,如表所示。Servlet基礎——ServletContext接口3.讀取Web應用下的資源文件在實際開發(fā)中,有時候可能會需要讀取Web應用中的一些資源文件,比如配置文件,圖片等。為此,在ServletContext接口中定義了一些讀取Web資源的方法,這些方法是依靠Servlet容器來實現(xiàn)的。Servlet容器根據(jù)資源文件相對于Web應用的路徑,返回關聯(lián)資源文件的IO流、資源文件在文件系統(tǒng)的絕對路徑等。表中列舉了ServletContext接口中用于獲取資源路徑的相關方法,具體如下:Servlet基礎——手動的編寫&編譯&運行Servlet1.使用記事本編寫一個Servlet類2.在DOS命令行對Servlet類進行編譯

溫馨提示

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

評論

0/150

提交評論