版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第1頁第7章Servlet技術(shù)
本章概述本章的學(xué)習(xí)目標(biāo)主要內(nèi)容第2頁本章概述Servlet是運(yùn)行在服務(wù)器上的一個Java小程序,它可以接收客戶端發(fā)送過來的請求,并響應(yīng)數(shù)據(jù)給客戶端。Servlet先于JSP產(chǎn)生,可以方便地對Web應(yīng)用中的HTTP請求進(jìn)行處理。在JavaWeb程序開發(fā)中,Servlet主要用于處理各種業(yè)務(wù)邏輯,它比JSP更具有業(yè)務(wù)邏輯層的意義,而且Servlet的安全性、擴(kuò)展性以及性能方面都十分優(yōu)秀,它在JavaWeb程序開發(fā)及MVC模式的應(yīng)用方面起到了極其重要的作用。第3頁本章的學(xué)習(xí)目標(biāo)了解Servlet與JSP的區(qū)別了解Servlet的代碼結(jié)構(gòu)掌握如何創(chuàng)建與配置Servlet掌握Servlet的處理流程掌握使用Servlet如何處理表單數(shù)據(jù)第4頁主要內(nèi)容7.1Servlet基礎(chǔ)
7.2ServletAPI編程常用接口和類7.3Servlet開發(fā)
7.4本章小結(jié)
第5頁7.1Servlet基礎(chǔ)
7.1.1Servlet結(jié)構(gòu)體系7.1.2Servlet技術(shù)特點(diǎn)7.1.3Servlet與JSP的區(qū)別7.1.4Servlet代碼結(jié)構(gòu)第6頁7.1.1Servlet結(jié)構(gòu)體系J2EE架構(gòu)中的Servlet結(jié)構(gòu)體系的UML圖如圖所示。
第7頁7.1.2Servlet技術(shù)特點(diǎn)Servlet容器提供了對應(yīng)用的相關(guān)擴(kuò)展,在功能、性能、安全等方面都十分優(yōu)秀,其技術(shù)特點(diǎn)表現(xiàn)在以下幾方面:功能強(qiáng)大可移植性能高效安全性高可擴(kuò)展
第8頁7.1.3Servlet與JSP的區(qū)別Servlet與JSP貌似相同,實(shí)質(zhì)存在一定的區(qū)別,主要表現(xiàn)在以下幾方面:角色不同編程方法不同Servlet需要編譯后運(yùn)行速度不同第9頁7.1.3Servlet與JSP的區(qū)別Servlet與JSP貌似相同,實(shí)質(zhì)存在一定的區(qū)別,主要表現(xiàn)在以下幾方面:角色不同編程方法不同Servlet需要編譯后運(yùn)行速度不同第10頁7.1.4Servlet代碼結(jié)構(gòu)在Java中,通常所說的Servlet是指HttpServlet對象。在聲明一個對象為Servlet時,需要繼承HttpServlet類。HttpServlet類是Servlet接口的一個實(shí)現(xiàn)類,繼承該類后,可以重寫HttpServlet類中的方法對HTTP請求進(jìn)行處理。第11頁主要內(nèi)容7.1Servlet基礎(chǔ)7.2ServletAPI編程常用接口和類7.3Servlet開發(fā)
7.4本章小結(jié)
第12頁7.2ServletAPI編程常用接口和類7.2.1Servlet接口7.2.2ServletConfig接口7.2.3HttpServletRequest接口7.2.4HttpServletResponse接口7.2.5GenericServlet類 7.2.6HttpServlet類第13頁7.2.1Servlet接口Servlet的運(yùn)行需要Servlet容器的支持。Servlet容器通過調(diào)用Servlet對象提供了標(biāo)準(zhǔn)的API接口,對請求進(jìn)行處理。在Servlet開發(fā)中,任何一個Servlet對象都要直接或間接地實(shí)現(xiàn)javax.servlet.Servlet接口。方法說明publicvoidinit(ServletConfigconfig)容器在創(chuàng)建好Servlet對象后,就會調(diào)用此方法。該方法接受一個ServletConfig類型的參數(shù),Servlet容器通過這個參數(shù)向Servlet傳遞初始化配置信息publicvoidservice(ServletRequestrequest,ServletResponseresponse)負(fù)責(zé)響應(yīng)用戶的請求,當(dāng)容器接收到客戶端訪問Servlet對象的請求時,就會調(diào)用此方法。容器會構(gòu)造一個表示客戶端請求信息的ServletRequest對象和一個響應(yīng)客戶端的ServletResponse對象作為參數(shù)傳遞給service()方法。在service()方法中,可以通過ServletRequest對象得到客戶端的相關(guān)信息和請求信息,在對請求進(jìn)行處理后,調(diào)用ServletResponse對象的方法設(shè)置響應(yīng)信息publicvoiddestroy()負(fù)責(zé)釋放Servlet對象占用的資源。當(dāng)服務(wù)器關(guān)閉或者Servlet對象被移除時,Servlet對象會被銷毀,容器會調(diào)用此方法publicServletConfiggetServletConfig()用于獲取Servlet對象的配置信息,返回Serclet的ServletConfig對象publicStringgetServletInfo()返回一個字符串,其中包含關(guān)于Servlet的信息,例如,作者、版本和版權(quán)等信息第14頁7.2.2ServletConfig接口ServletConfig接口位于javax.servlet包中,它封裝了Servlet的配置信息,在Servlet初始化期間被傳遞。每一個Servlet都有且只有一個ServletConfig對象。該對象提供了4個方法,如表所示。ServletConfig類的三大作用:可以獲取Servlet程序的別名servlet-name的值;獲取初始化參數(shù)init-param;獲取ServletContext對象。方法說明publicStringgetInitParameter(Stringname)返回String類型名稱為name的初始化參數(shù)值publicEnumerationgetInitParameterNames()獲取所有初始化參數(shù)名的枚舉集合publicServletContextgetServletContext()用于獲取Servlet上下文對象publicStringgetServletName()返回Servlet對象的實(shí)例名第15頁7.2.3HttpServletRequest接口在ServletAPI中,定義了一個HttpServletRequest接口,它繼承自ServletRequest接口。HttpServletRequest對象專門用于封裝HTTP請求消息,簡稱request對象。HTTP請求消息分為請求行、請求消息頭和請求消息體三部分,所以HttpServletRequest接口中定義了獲取請求行、請求頭和請求消息體的相關(guān)方法。第16頁7.2.3HttpServletRequest接口獲取請求行信息方法說明publicStringgetContextPath()返回當(dāng)前Servlet所在的應(yīng)用的名字(上下文)。對于默認(rèn)(ROOT)上下文中的Servlet,此方法返回空字符串""publicCookie[]getCookies()返回請求中發(fā)送的所有cookie對象,返回值為cookie數(shù)組publicStringgetMethod()該方法用于獲取HTTP請求方式(如GET、POST等)publicStringgetQueryString()該方法用于獲取請求行中的參數(shù)部分,也就是URL中“?”以后的所有內(nèi)容publicStringgetRequestURI()該方法用于獲取請求行中的資源名稱部分,即位于URL的主機(jī)和端口之后,參數(shù)部分之前的部分publicStringBuffergetRequestURL()返回請求的URL。此URL中不包含請求的參數(shù)。注意此方法返回的數(shù)據(jù)類型為StringBufferpublicStringgetServletPath()該方法用于獲取Servlet所映射的路徑publicHttpSessiongetSession()返回與請求關(guān)聯(lián)的HttpSession對象publicStringgetRemoteAddr()該方法用于獲取客戶端的IP地址publicStringgetRemoteHost()該方法用于獲取客戶端的完整主機(jī)名,如果無法解析出客戶機(jī)的完整主機(jī)名,則該方法將會返回客戶端的IP地址第17頁7.2.3HttpServletRequest接口2.獲取請求頭信息方法說明publicStringgetHeader(Stringname)該方法用于獲取一個指定頭字段的值。如果請求消息中包含多個指定名稱的頭字段,則該方法返回其中第一個頭字段的值publicEnumerationgetHeaders(Stringname)該方法返回指定頭字段的所有值的枚舉集合,在多數(shù)情況下,一個頭字段名在請求消息中只出現(xiàn)一次,但有時可能會出現(xiàn)多次publicEnumerationgetHeaderNames()該方法返回請求頭中所有頭字段的枚舉集合publicStringgetContentType()該方法用于獲取Content-Type頭字段的值publicintgetContentLength()該方法用于獲取Content-Length頭字段的值publicStringgetCharacterEncoding()該方法用于返回請求消息的字符集編碼第18頁7.2.3HttpServletRequest接口3.獲取請求體信息方法說明StringgetParameter(Stringname)該方法用于獲取某個指定名稱的參數(shù)值,如果請求消息中沒有包含指定名稱的參數(shù),getParameter()方法返回null;如果指定名稱的參數(shù)存在但沒有設(shè)置值,則返回一個空串;如果請求消息中包含有多個該指定名稱的參數(shù),getParameter()方法返回第一個出現(xiàn)的參數(shù)值String[]getParameterValues(Stringname)HTTP請求消息中可以有多個相同名稱的參數(shù)(通常由一個包含有多個同名的字段元素的FORM表單生成),如果要獲得HTTP請求消息中的同一個參數(shù)名所對應(yīng)的所有參數(shù)值,那么就應(yīng)該使用getParameterValues()方法,該方法用于返回一個String類型的數(shù)組EnumerationgetParameterNames()該方法用于返回一個包含請求消息中所有參數(shù)名的Enumeration對象,在此基礎(chǔ)上,可以對請求消息中的所有參數(shù)進(jìn)行遍歷處理MapgetParameterMap() ParameterMap()方法用于將請求消息中的所有參數(shù)名和值裝入進(jìn)一個Map對象中返回第19頁7.2.4HttpServletResponse接口HttpServletResponse接口位于javax.servlet.http包中,繼承了javax.servlet.ServletResponse接口,也是非常重要的對象,其常用方法如表所示。方法說明publicvoidaddCookie(Cookiecookie)向客戶端寫入cookie信息publicvoidsendError(intsc)發(fā)送一個錯誤狀態(tài)碼為sc的錯誤響應(yīng)到客戶端,參數(shù)如為錯誤狀態(tài)publicvoidsendError(intsc,Stringmsg)發(fā)送一個包含錯誤狀態(tài)碼及錯誤信息的響應(yīng)到客戶端碼,參數(shù)msg為錯誤信息publicvoidsendRedirect(Stringlocation)使用客戶端重定向到新的URL,參數(shù)location為新的地址第20頁7.2.5GenericServlet類javax.servlet.GenericServlet類簡化了此操作,實(shí)現(xiàn)了Servlet接口。publicabstractclassGenericServletextendsObjectimplementsServlet,ServletConfig,Serializable第21頁7.2.6HttpServlet類javax.servlet.http.HttpServlet類對GenericServlet類進(jìn)行了擴(kuò)展,為HTTP請求的處理提供了靈活的方法。publicabstractclassHttpServlet extendsGenericServletimplementsSerializable第22頁7.2.6HttpServlet類javax.servlet.http.HttpServlet類對GenericServlet類進(jìn)行了擴(kuò)展,為HTTP請求的處理提供了靈活的方法。publicabstractclassHttpServlet extendsGenericServletimplementsSerializable第23頁主要內(nèi)容7.1Servlet基礎(chǔ)7.2ServletAPI編程常用接口和類7.3Servlet開發(fā)7.4本章小結(jié)
第24頁7.3Servlet開發(fā)7.3.1Servlet創(chuàng)建7.3.2Servlet配置第25頁7.3.1Servlet創(chuàng)建Servlet的創(chuàng)建主要有兩種創(chuàng)建方法。第一種方法是創(chuàng)建一個普通的Java類,使這個類繼承HttpServlet類,再通過手動配置web.xml文件注冊Servlet對象。該方法操作較繁瑣,通常不被采納,而是使用第二種方法,即通過IDE集成開發(fā)工具進(jìn)行創(chuàng)建。下面以Eclipse為例介紹Servlet的創(chuàng)建過程。第26頁7.3.2Servlet配置(1)聲明Servlet對象在web.
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年粵人版七年級地理上冊月考試卷
- 物業(yè)服務(wù)合同醫(yī)院
- 住宅小區(qū)辦公樓工程承包條款
- 機(jī)場跑道安全圍墻施工合同
- 市政設(shè)施更新施工補(bǔ)充合同
- 醫(yī)療健康教練員聘請合同范本
- 釀酒業(yè)特種垃圾管理辦法
- 公共交通項(xiàng)目招標(biāo)文件編寫要點(diǎn)
- 保安公司保安員聘用合同樣書
- 公積金繳存證明開具規(guī)定
- 基于STEAM教育的小學(xué)德育創(chuàng)新實(shí)踐研究
- 2024年03月山東煙臺銀行招考筆試歷年參考題庫附帶答案詳解
- 安徽省合肥市蜀山區(qū)2024-2025學(xué)年七年級上學(xué)期地理期末模擬練習(xí)(含答案)
- 新建設(shè)項(xiàng)目施工人員安全教育培訓(xùn)課件
- 江蘇省揚(yáng)州市2024-2025學(xué)年高中學(xué)業(yè)水平合格性模擬考試英語試題(含答案)
- 品質(zhì)總監(jiān)轉(zhuǎn)正述職報告
- 2024年游艇俱樂部會員專屬活動策劃與執(zhí)行合同3篇
- 《項(xiàng)目管理培訓(xùn)課程》課件
- 2024年企業(yè)團(tuán)購:銷售合作協(xié)議3篇
- 2024-2025學(xué)年八年級語文上學(xué)期期末真題復(fù)習(xí) 專題06 文言文閱讀
- 制藥課程設(shè)計(jì)三廢處理
評論
0/150
提交評論