第5章 Servlet技術(shù).ppt_第1頁
第5章 Servlet技術(shù).ppt_第2頁
第5章 Servlet技術(shù).ppt_第3頁
第5章 Servlet技術(shù).ppt_第4頁
第5章 Servlet技術(shù).ppt_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第5章 Servlet技術(shù),W E B,本章目錄,5.1 Servlet的工作原理 5.2 Servlet API 5.3 Servlet的開發(fā)步驟 5.4 Servlet開發(fā)實(shí)例 5.5 本章小結(jié),前言:Servlet的定義,所謂Servlet,首先是一個(gè)Java類,是一種運(yùn)行在支持Java應(yīng)用服務(wù)器上的Web組件,它與普通Java類的區(qū)別在于它是一個(gè)專門處理請求和響應(yīng)的Java類。 Servlet是成熟的J2EE(Java 2 Enterprise Edition)組件技術(shù)之一。Servlet屬于目前主流的MVC(ModelViewController)架構(gòu)中的控制器層(Controlle

2、r)組件,主要功能是接受前端用戶的請求,調(diào)用后端的邏輯處理程序,最終給客戶返回響應(yīng)。,本章將著重介紹Servlet的工作原理、常用的Servlet API以及如何通過MyEclipse快速開發(fā)Servlet程序。,5.1.1 Servlet容器 Servlet容器(Tomcat),其作用是負(fù)責(zé)處理客戶請求,當(dāng)客戶請求來到時(shí),Servlet容器獲取請求,然后調(diào)用某個(gè)Servlet,并把Servlet的執(zhí)行結(jié)果返回給客戶,ServletRequest對象,客戶,Servlet,請求,響應(yīng),ServletResponse對象,Servlet容器,Myeclipse環(huán)境介紹,導(dǎo)入一個(gè)已存在的項(xiàng)目:im

3、port 部署 deploy 部署到/webapps下。 啟動(dòng)服務(wù)器 注意看輸出控制臺(tái),有沒有錯(cuò)誤提示 留心服務(wù)器的啟動(dòng)時(shí)間,太長要記得清理。 如何清理 輸入U(xiǎn)RL http:/localhost:8080/項(xiàng)目名稱/請求的資源 注意:并不是每次都是8080端口 項(xiàng)目名稱要看部署到服務(wù)器的項(xiàng)目目錄 請求的資源可以是html,jsp,也可以使servlet 部署加運(yùn)行 附加:打開所在文件夾,三個(gè)文件: Servlet,html,web.xml 智能提示: 雙擊編輯窗口變大 http:/localhost:8080/test1/MyHtml.html http:/localhost:8080/te

4、st1/servlet/LoginServlet?username=abcde&password=3456,servlet的生命周期如下: Servlet容器創(chuàng)建servlet的一個(gè)實(shí)例 容器調(diào)用該實(shí)例的init方法進(jìn)行初始化。 當(dāng)客戶端向該Servlet發(fā)送請求時(shí),容器調(diào)用此實(shí)例的service方法 在service方法中,根據(jù)當(dāng)前用戶請求的方式進(jìn)一步調(diào)用doGet或者doPost方法進(jìn)行處理。 當(dāng)Servlet容器終止運(yùn)行或Servlet容器重新裝載Servlet的新實(shí)例時(shí),Servlet容器調(diào)用Servlet的destroy方法釋放Servlet所占用的資源。,容器在Servlet首次被

5、調(diào)用時(shí)創(chuàng)建它的一個(gè)實(shí)例,并保持該實(shí)例在內(nèi)存中,讓它對所有的請求進(jìn)行處理。若容器關(guān)閉重啟或者Servlet類內(nèi)容產(chǎn)生變化,則這個(gè)內(nèi)存中的實(shí)例就會(huì)被銷毀并在下一次被請求時(shí)重新被創(chuàng)建。所以servlet修改后不需要重啟tomcat。 容器只為每個(gè)servlet創(chuàng)建一個(gè)單獨(dú)的實(shí)例,容器并不會(huì)每接到一個(gè)請求就創(chuàng)建一個(gè)新線程,而是使用一個(gè)線程池來動(dòng)態(tài)的將線程分配給到來的請求。,5.1 Servlet的工作原理,實(shí)例化servlet并不都是在容器啟動(dòng)時(shí),要根據(jù)參數(shù)web.xml里標(biāo)簽對里load-on-startup參數(shù), loadOnStartup 0 web容器啟動(dòng)的時(shí)候做實(shí)例化處理,順序是由小到大,正

6、整數(shù)小的先被實(shí)例化loadOnStartup = 0 web容器啟動(dòng)的時(shí)候做實(shí)例化處理,相當(dāng)于是最大整數(shù),因此web容器啟動(dòng)時(shí),最后被實(shí)例化 注意:默認(rèn)loadonstartup為負(fù)數(shù),在客戶請求時(shí)才初始化。 舉例: loginServlet servlet.loginServlet 1 ,幾個(gè)常用的接口和類(結(jié)合taoff_p118Servlet1.zip講解): 1.javax.servlet.http.HttpServlet 該接口是Servlet API的核心類,我們自定義的Servlet都是該類的子類 (1)int方法 負(fù)責(zé)初始化Servlet對象 。 (2)doGet和doPost

7、方法 GET方式,直接在瀏覽器地址欄輸入U(xiǎn)RL按回車,即向服務(wù)器發(fā)送了一次GET方式的請求;POST方式,通常是客戶端通過一個(gè)表單把信息提交給服務(wù)器。Post傳送的數(shù)據(jù)量較大,可以傳遞二進(jìn)制數(shù)據(jù),支持上傳,get傳送數(shù)據(jù)量小,安全性低。 (3) service方法 service方法負(fù)責(zé)處理當(dāng)前客戶的請求,為用戶提供服務(wù) 。根據(jù)當(dāng)前用戶請求的方式(get或post),把請求分發(fā)給相應(yīng)的方法doGet或doPost進(jìn)行處理。 (4)destroy方法 負(fù)責(zé)釋放Servlet對象占用的資源。該方法僅執(zhí)行一次,即在Servlet容器停止執(zhí)行該方法。,5.1 Servlet API,2.javax.s

8、ervlet.http.HttpServletRequest HttpServletRequest接口包含了客戶端請求的信息,可以通過實(shí)現(xiàn)該接口的對象取得客戶端的一些信息(例如表單數(shù)據(jù)、客戶端IP地址等) (1)getParameter方法 獲取客戶以GET方式發(fā)送的參數(shù)或者以POST方式提交的form表單的控件值。如果有多個(gè)同名的控件或參數(shù),則返回其中的第一個(gè)值。 (2)getParameterValues方法 如果有多個(gè)同名的控件或參數(shù),則該方法可以獲得對應(yīng)的多個(gè)參數(shù)值,并且放到一個(gè)String數(shù)組里,比如復(fù)選框集(checkbox)。,5.1 Servlet API,3.javax.se

9、rvlet.http.HttpServletResponse Servlet容器提供一個(gè)實(shí)現(xiàn)HttpServletResponse接口的對象并通過service()方法將該對象傳遞給Servlet。Servlet通過該對象及其方法可以向客戶端瀏覽器返回結(jié)果。 (1)setContentType方法 在給調(diào)用者發(fā)回響應(yīng)前,必須用setContentType方法來設(shè)置HTTP響應(yīng)的MIME類型。通常設(shè)置如下:,(2)getWriter方法 該將返回PrintWriter對象,把Servlet的結(jié)果作為文本返回給調(diào)用者。PrintWriter對象自動(dòng)把Java內(nèi)部的UniCode編碼字符轉(zhuǎn)換成正確的

10、編碼以使客戶端能夠閱讀。 (3)getOutputStream方法 getOutputStream方法返回ServletOutputStream對象,它是java.io.OutputStream的子類。此對象向客戶發(fā)送二進(jìn)制數(shù)據(jù)。,開發(fā)Servlet程序的典型步驟如下: 創(chuàng)建自定義的Servlet類,繼承父類HttpServlet。 在自定義的Servlet中覆蓋父類HttpServlet的部分方法,如doGet()或doPost()方法,對其方法體進(jìn)行重寫。 在web.xml中為Servlet進(jìn)行注冊。 獲取HTTP請求信息,例如從HttpServletRequest對象中獲取客戶端提交的參數(shù),可以通過getParamet

溫馨提示

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

評(píng)論

0/150

提交評(píng)論