




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第四章Servlet目標(biāo)掌握Servlet的概念掌握Servlet在MVC中的作用掌握Servlet的doPost方法和doGet方法概述在使用MVC架構(gòu)的Web應(yīng)用中,控制器Controller一般使用Servlet來實現(xiàn)本章將介紹Servlet的概念,生命周期,以及如何編寫Servlet程序Servlet介紹JavaServlet是與平臺無關(guān)的服務(wù)器端組件,它運行在Servlet容器中Servlet容器負(fù)責(zé)Servlet和客戶的通信以及調(diào)用Servlet的方法Servlet和客戶的通信采用“請求/響應(yīng)”模式Servlet介紹每一個JSP頁面就是一個ServletJSP在執(zhí)行時,Web服務(wù)器先要把JSP頁面翻譯成Java源代碼,而這個源代碼就是一個ServletServlet可以完成JSP的所有功能Servlet介紹Servlet在MVC中的工作方式接收客戶的請求根據(jù)請求調(diào)用JavaBean進(jìn)理將處理結(jié)果進(jìn)行存儲將控制轉(zhuǎn)到JSP頁面,讓JSP客戶顯示處理結(jié)果Servlet介紹要實現(xiàn)Servlet程序,需要創(chuàng)建一個Servlet類,該類必須繼承javax.servlet.http.HttpServlet以“顯示客戶列表”為例,處理客戶請求的Servlet如下:Servlet中的幾個常見方法init()方法:Servlet初始化destroy()方法:Servlet銷毀時調(diào)用doGet()方法:處理Get請求doPost()方法:處理Post請求doGet()方法和doPost()方法中的參數(shù)HttpServletRequest對象包含請求信息HttpServletResponse對象包含響應(yīng)信息Servlet介紹Servlet介紹publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{
Stringaction=request.getParameter("action");
//獲取請求參數(shù)
StringjspPage="../admin/userinfo.jsp";if((action==null)||(action.length()<1)){action="default";}if("default".equals(action)){jspPage="../admin/userinfo.jsp";}elseif("displaylist".equals(action)){
Listuserinfos=UserinfoManager.getUserinfos();
//調(diào)用JavaBean的方法
request.setAttribute("userinfos",userinfos);
//在request范圍存儲數(shù)據(jù)
jspPage="../admin/userinfoDisplayList.jsp";}
RequestDispatcherrd=this.getServletContext().getRequestDispatcher(jspPage);
//指定轉(zhuǎn)發(fā)路徑
rd.forward(request,response);
//轉(zhuǎn)發(fā)請求}Servlet分析在Servlet規(guī)范中,所有的Servlet必須實現(xiàn)java.servlet.Servlet接口java.servlet.Servlet接口方法:方法描述init初始化ServletdestroyServlet結(jié)束時調(diào)用getServletInfo得到有關(guān)Servlet的信息getServletConfig得到與Servlet實例相關(guān)聯(lián)的javax.servlet.ServletConfig對象service容器調(diào)用這個方法向Servlet傳遞一個請求來進(jìn)行處理。Servlet必須處理這個請求,并提供響應(yīng)抽象類GenericServlet實現(xiàn)了Servlet接口在GenericServlet中service()方法被定義成抽象方法抽象類HttpServlet擴展了GenericServlet,覆蓋了
Servlet方法
Servlet分析Servlet接口到用戶Servlet的關(guān)系圖Servlet分析作為HttpServlet的子類,用戶類可以根據(jù)需要覆蓋一些方法方法描述doGet處理HTTPGet請求doPost處理HTTPPost請求doPut處理HTTPPut請求(很少使用)doDelete處理HTTPDelete請求(很少使用)init和javax.servlet.Servlet接口init一致destroy和javax.servlet.Servlet接口destroy一致getServletInfo和javax.servlet.Servlet接口getServletInfo一致Servlet分析Servlet生命周期3個階段:初始化階段、響應(yīng)客戶請求階段和終止階段Servlet生命周期web.xml文件的內(nèi)容由J2EE規(guī)
范描述。每個Web應(yīng)用都需要
有這個文件Servlet在web.xml中的配置<web-app><servlet><description></description><display-name></display-name><servlet-name></servlet-name><servlet-class></servlet-class></servlet><servlet-mapping><servlet-name></servlet-name><url-pattern></url-pattern></servlet-mapping></web-app>Servlet在Web.Xml中的描述Servlet在Web.Xml中的描述Servlet聲明<servlet><description>shoponlineuserinfoAction</description><display-name>shoponlineuserinfoAction</display-name><servlet-name>UserinfoAction</servlet-name><servlet-class>com.wish.shopOnline.servlets.UserinfoAction</servlet-class></servlet>Servlet在Web.Xml中的描述Servlet映射<servlet-mapping><servlet-name>UserinfoAction</servlet-name><url-pattern>/servlet/UserinfoAction</url-pattern></servlet-mapping>對UserinfoAction的URL請求示例:<ahref="servlet/UserinfoAction?action=displaylist">
顯示客戶列表</a>ServletRequest和ServletResponse當(dāng)容器接收到請求后,會調(diào)用HttpServlet的service()方法service方法根據(jù)請求方式的不同調(diào)用doGet()或doPost()方法doGet()和doPost()方法有兩個參數(shù):HttpServletRequest和HttpServletResponse分別繼承自ServletRequest和ServletResponseServletRequest和ServletResponseServletRequest接口中封裝了客戶請求信息客戶請求方式請求參數(shù)名/值對客戶端正在使用的協(xié)議發(fā)出客戶請求的遠(yuǎn)程主機信息ServletRequest和ServletResponseServletRequest接口提供的部分方法方法描述getParameter根據(jù)給定的參數(shù)名返回參數(shù)值getAttribute根據(jù)參數(shù)給定的屬性名返回屬性值setAttribute在ServletRequest中設(shè)置屬性(包括屬性名和屬性值)getInputStream返回客戶請求數(shù)據(jù)的輸入流(二進(jìn)制流)getContentType返回客戶請求數(shù)據(jù)MIME類型getRemoteAddr返回遠(yuǎn)程客戶主機的IP地址getRemoteHost返回遠(yuǎn)程客戶主機名getRemotePort返回遠(yuǎn)程客戶主機的端口ServletRequest和ServletResponseServletResponse接口為Servlet提供了返回響應(yīng)結(jié)果的方法方法描述getOutputStream返回可以向客戶端發(fā)送二進(jìn)制數(shù)據(jù)的ServletOutpuStream對象getWriter返回可以向客戶端發(fā)送字符數(shù)據(jù)的PrintWriter對象setContentType設(shè)置響應(yīng)數(shù)據(jù)的MIME類型getContentType返回響應(yīng)數(shù)據(jù)的MIME類型setCharacterEncoding設(shè)置響應(yīng)數(shù)據(jù)的字符編碼getCharacterEncoding返回響應(yīng)數(shù)據(jù)的字符編碼ServletRequest和ServletResponse例如在UserinfoAction中,需要從客戶請求中獲取請求參數(shù),使用方法如下:Stringaction=request.getParameter("action");JavaServlet是與平臺無關(guān)的服務(wù)器端組件,它運行在Servlet容器中Servlet在MVC中的作用是接收客戶的請求,根據(jù)請求調(diào)用JavaBean處理請求,然后把處理結(jié)果轉(zhuǎn)發(fā)給JSP頁面作為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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)保藥店藥師聘用合同范例
- 單位食堂外包服務(wù)合同范例
- 加裝電梯承攬合同范例
- 單位采購印刷合同范例
- 勞務(wù)合同范例修車類
- 產(chǎn)品中介提成合同范例
- 廈門員工合同范例
- 包裝買賣合同范例
- 供電 師帶徒合同范例
- 辦公區(qū)轉(zhuǎn)讓合同范例
- 管道天然氣泄漏事故案例分析研究報告
- 護理的內(nèi)涵和精髓
- 西門子S7-1200 PLC應(yīng)用技術(shù)項目教程(第3版) 課件 窄屏 9.觸摸屏控制的液體混合系統(tǒng)-LAD
- 鐵路勞動安全 課件 第一章 防暑降溫
- 【MOOC】大學(xué)語文-東南大學(xué) 中國大學(xué)慕課MOOC答案
- 某地區(qū)現(xiàn)代有軌電車施工方案
- GB/T 6974.3-2024起重機術(shù)語第3部分:塔式起重機
- 城市軌道交通運營安全風(fēng)險評估報告
- 蔣詩萌小品《誰殺死了周日》臺詞完整版
- 體重管理健康科普教育
- 群體性突發(fā)社會安全事件應(yīng)急演練
評論
0/150
提交評論