




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第五章Servlet技術根底知識Servlet是一種效勞器端的編程語言,是J2EE中比較關鍵的組成局部,Servlet技術的推出,擴展了Java語言在效勞器端開發(fā)的功能,穩(wěn)固了Java語言在效勞器端開發(fā)中的地位,而且現(xiàn)在使用非常廣泛的JSP技術也是基于Servlet的原理,JSP+JavaBeans+Servlet成為實現(xiàn)MVC模式的一種有效的選擇。在本章中將介紹Servlet的根底知識,并通過具體的例如介紹Servlet的強大功能。5.1Servlet簡介Servlet在本質上就是Java類,編寫Servlet需要遵循Java的根本語法,但是與一般Java類所不同的是,Servlet是只能運行在效勞器端的Java類,而且必需遵循特殊的標準,在運行的過程中有自己的生命周期,這些特性都是Servlet所獨有的。另外Servlet是和HTTP協(xié)議是緊密聯(lián)系的,所以使用Servlet幾乎可以處理HTTP協(xié)議各個方面的內容,這也正是Servlet收到開發(fā)人員青睞的最大原因。5.1.1Servlet的工作原理Servlet容器環(huán)境在HTTP通信和web效勞器平臺之間實現(xiàn)了一個抽象層。Servlet容器負責把請求傳遞給Servlet,并把結果返回結客戶。在使用Servlet的過程中,并發(fā)訪問的問題由Servlet容器處理,當多個用戶請求同一個Servlet的時候,Servlet容器負責為每個用戶啟動一個線程,這些線程的運行和銷毀由Servlet容器負責,而在傳統(tǒng)的CGI程序中,是為每一個用戶啟動一個進程,因此Servlet的運行效率就要比CGI的高出很多。5.1.2Servlet的生命周期Servlet是運行在效勞器端的程序,所以Servlet的運行狀態(tài)完全由Servlet容器維護,一個Servlet的生命周期一般有三個過程。1.初始化2.提供效勞3.銷毀5.1.3簡單Servlet開發(fā)配置例如JavaServletAPI包括兩個根本的包,javax.servlet和javax.servlet.,其中javax.servlet提供了用來控制Servlet生命周期所需的類和接口,是編寫Servlet必需要實現(xiàn)的。javax.servlet.提供了處理與HTTP相關操作的類和接口,每個Servlet必需實現(xiàn)Servlet接口,但是在實際的開發(fā)中,一般情況都是通過繼承javax.servlet..HttpServlet或者javax.servlet.GenericServlet來間接實現(xiàn)Servlet接口。5.1.4使用Servlet實現(xiàn)MVC開發(fā)模式Java語言之所以受到開發(fā)人員支持,是因為Java語言實現(xiàn)科學方便的開發(fā)模式,在這些開發(fā)模式中,最出色而且應用最廣的就是MVC模式,對于MVC模式的研究由來已久,但是一直沒有得到很好的推廣和應用,隨著J2EE技術的成熟,MVC逐漸成為了一種常用而且重要的設計模式。MVC〔Model-View-Controller〕把應用程序的開發(fā)分為三個層面:視圖層、控制層、模型層。5.2JSP頁面調用Servlet的方法在上面HelloWorld的例如程序中,我們直接在瀏覽器中輸入具體的地址進行訪問,在實際的應用中,不可能讓用戶在瀏覽器中直接輸入Servlet的地址進行訪問,一般情況下,可以通過調用Servlet進行訪問,在這里介紹通過提交表單和超鏈接兩種方式調用Servlet。5.2.1通過表單提交調用Servlet在通過提交表單調用Servlet的時候,只需要把表單的action指向對應的Servlet即可,下面是一個簡單的表單,通過這個表單可以調用指定的Servlet?!簿唧w內容請參照書?!?.2.2通過超鏈接調用Servlet在上面這個例子中,用戶有輸入的內容需要提交給效勞器,所以需要用表單來調用Servlet,但是在沒有輸入的數(shù)據(jù)內容需要提交的情況下,使用表單就不是很合理了,在這里介紹Servlet的第二種調用方法,直接通過超鏈接的方式來調用Servlet,在這種情況下還可以給Servlet傳遞參數(shù)。〔具體內容請參照書?!?.3Servlet中的文件操作在JSP的開發(fā)過程中,經常會遇到需要把相關內容存儲為文件的情況,在JSP中是用輸入輸出流進行操作的,在Servlet中也可以使用輸入輸出流實現(xiàn)對文件的讀寫,同時,使用Servlet還可以很方便的實現(xiàn)文件的上傳下載。接下來的內容將通過具體的例如展示Servlet文件操作的方法。5.3.1Servlet讀取文件在這個例子中將要讀取一個文本文件的內容,并且在頁面上打印文件的內容。5.3.2Servlet寫文件Servlet寫文件的處理方法和讀取文件的處理方法非常類似,只是把文件輸入流換成文件輸出流,在下面這個例如程序中,將在指定位置生成文件?!簿唧w內容請參照書。〕5.3.3Servlet上傳文件文件的上傳下載在Web開發(fā)中會經常遇到,使用根本的IO輸入輸出流當然可以完成這項操作,但是出于對開發(fā)的效率和程序運行的效率方面的考慮,在實際的開發(fā)過程中一般采用第三方的組件來完成這個上傳的功能。在實際開發(fā)過程中用的比較多的是commons-fileupload組件和jspSmartUpload組件,這兩個組件都可以很好地完成文件上傳的功能,5.3.4Servlet下載文件用Servlet下載文件的時候,并不需要第三方組件的幫助,只需要對效勞器的響應對象response進行簡單的設置即可,〔具體內容請參照書。〕5.4Servlet過濾器在Web應用中可以使用過濾器對所有的訪問和請求進行統(tǒng)一的處理,IP訪問限制,用戶發(fā)送請求的字符編碼轉換等,在進行具體的業(yè)務邏輯處理之前,首先要經過過濾器的統(tǒng)一處理,然后才開始進入真正的邏輯處理階段。在本節(jié)內容中,將介紹過濾器的原理的實際應用。5.4.1過濾器的根本原理過濾器的功能就是在效勞器和客戶中間增加了一個中間層,可以對兩者之間的交互進行統(tǒng)一的處理,每一個從客戶端提交的請求都需要通過過濾器的處理,然后再進行其他的操作。在實際開發(fā)中,過濾器器可以用來對用戶進行統(tǒng)一的身份判斷、IP訪問限制,用戶發(fā)送請求的字符編碼轉換、對請求和響應進行加密和解密、記錄用戶登錄日志等。當然過濾器的用途不僅僅這些,讀者可以根據(jù)過濾器的實現(xiàn)原理,思考過濾器更多的用途。5.4.2IP訪問filter在實際的應用中,可能會遇到這樣的情況,需要對某些IP進行訪問限制,不讓非法的IP訪問應用系統(tǒng),這個時候就需要用到過濾器進行限制,當一個用戶發(fā)出訪問請求的時候,首先通過過濾器進行判斷,如果用戶的IP地址被限制,就禁止訪問,只有合法的IP才可以繼續(xù)訪問?!簿唧w內容請參照書?!?.4.3轉換字符編碼filter在Java語言中,默認的編碼方式是ISO-8859-1,這種編碼格式不支持中文的顯示,我們可以用類似<%@pagecontentType="text/html;charset=gb2312"%>這樣的方式來規(guī)定頁面字符編碼格式,但是如果要顯示的內容是表單提交、或者是經過Servlet處理,這時候字符內容本身的編碼格式就是ISO-8859-1,所以盡管頁面指定的字符編碼方案為gb2312,在這種情況下中文內容仍然不能正常顯示。在第四章中已經對中文處理的問題做了詳細的介紹,所以在本章僅僅對其中使用過濾器解決中文亂碼問題進行詳細的分析。5.5Servlet應用例如在上面的內容中已經提到,Servlet是與HTTP協(xié)議緊密結合的,使用Servlet幾乎可以處理HTTP協(xié)議各個方面的內容,在本節(jié)的幾個例如程序中,將集中展示Servlet在HTTP方面的具體應用。5.5.1獲取請求信息頭部內容當客戶訪問一個頁面的時候,會提交一個HTTP請求給效勞器的Servlet引擎,在這個請求中有HTTP的文件頭信息,其中包含這個請求的詳細屬性信息,在下面這個例如Servlet中將取出HTTP頭部內容,并在頁面打印,這個Servlet的具體代碼如下?!簿唧w內容請參照書?!?.5.2獲取請求信息在上面這個Servlet例如中,我們取出所有的HTTP文件頭信息,在Servlet中還可以很方便取出客戶發(fā)出請求對象自身的信息。這些信息是和客戶的請求密切相關的,例如客戶提交請求所使用的協(xié)議,客戶提交表單的方法是POST還是GET等,在下面這個例如程序中將介紹集中常見屬性的取值方法。這個例如程序的具體代碼如下?!簿唧w內容請參照書?!?.5.3獲取參數(shù)信息在Servlet中,同樣可以很方便的取出用戶請求中的參數(shù)信息,這種參數(shù)包括以POST方法或者是GET方法提交的表單,也包括直接使用超鏈接傳遞的參數(shù),Servlet都可以取出這些信息并且加以處理,在下面的例子中將具體展示Servlet獲取各種參數(shù)的方法。5.5.4Cookies操作Cookies是指在Web應用中,為了區(qū)分用戶身份而存儲在用戶本地計算機上的數(shù)據(jù)。ServletAPI提供了Cookie操作類,封裝了操作Cookie常用的方法,在〔具體內容請參照書?!?.5.5Session操作在JSP中有內置的Session對象,可以用來保持效勞器與用戶之間的會話狀態(tài),在Servlet中間,同樣可以對Session進行方便的操作,在現(xiàn)面的例子中,將詳細介紹Servlet中處理Session的具體方法。5.6小結在本章的內容中,詳細講解了Servlet的工作原理,并且通過實際的例如程序詳細介紹了Servlet的調用方法,對Servle
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農村建私房合同范本
- Module1Unit 2 I feel nervous when I speak Chinese.教學設計- 2024-2025學年外研版英語八年級下冊
- 專家工作合同范本模板
- 公寓購房合同范本
- 保潔人員勞務合同范本
- 刺繡行業(yè)雇工合同范本
- 分公司設立合同范本
- 農戶銷售果樹合同范本
- 農用農機出售合同范本
- 保險條款合同范本
- 電瓶三輪車安全培訓
- 造船廠有限空間作業(yè)安全措施方案
- 人教版三年級下冊數(shù)學第一單元 位置與方向(一)(單元練習)
- 2024年廣告部業(yè)務年度工作計劃樣本(3篇)
- 《大學生創(chuàng)新創(chuàng)業(yè)實務》課件-2.1創(chuàng)新思維訓練 訓練創(chuàng)新思維
- 能源管理軟件招標模板高效節(jié)能
- 城鄉(xiāng)環(huán)衛(wèi)保潔投標方案
- 大數(shù)據(jù)安全與隱私保護考核試卷
- 有效喝酒免責協(xié)議書(2篇)
- 《高血脂相關知識》課件
- DB31-T 255-2020 集中式空調(中央空調)系統(tǒng)節(jié)能運行和管理技術要求
評論
0/150
提交評論