版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第十四章servlet(1)理論部分理解Servlet的生命周期會使用Servlet處理Get/Post請求會使用Servlet處理頁面的轉(zhuǎn)向會配置web.xml文件本章目標(biāo)為什么需要Servlet使用JSP技術(shù)如何編寫服務(wù)器動態(tài)網(wǎng)頁?在JSP技術(shù)出現(xiàn)之前如何編寫服務(wù)器動態(tài)網(wǎng)頁?請求響應(yīng)JSP頁面運(yùn)行執(zhí)行Java代碼HTML代碼生成JSP使用Java
生成動態(tài)內(nèi)容運(yùn)行Servlet程序什么是Servlet(2-1)定義:Servlet是一個(gè)Java程序,是在服務(wù)器上運(yùn)行以處理客戶端請求并做出響應(yīng)的程序請求響應(yīng)Servlet
運(yùn)行于服務(wù)器端什么是Servlet(2-2)初識Servletimportjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassHelloServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charset=gb2312"); PrintWriterout=response.getWriter(); out.println("<html>"); out.println("<head><title>Servlet</title></head>"); out.println("<body>"); out.println("你好,歡迎來到Servlet世界"); out.println("</body>"); out.println("</html>"); out.close();}}繼承HttpServlet類Servlet輸出HTML標(biāo)簽和內(nèi)容導(dǎo)入所需的包處理請求的方法將數(shù)據(jù)發(fā)送給客戶端Servlet與JSP關(guān)系Servlet與JSP之間的關(guān)系JSP在服務(wù)器上轉(zhuǎn)譯的文件out.write("<html>\r\n");out.write("<head>\r\n");out.write("<title>MyJsp.jsp</title>\r\n");out.write("</head>\r\n");out.write("<body>\r\n");out.write("ThisismyJSPpage.<br>\r\n");out.write("</body>\r\n");out.write("</html>\r\n");
<%@pagecontentType="text/html;charset=gbk"%><html><head><title>MyJsp</title></head><body>ThisismyJSPpage.<br></body></html>MyJsp.jspMyJsp_jsp.java(.jsp轉(zhuǎn)譯后的.java文件)JSP轉(zhuǎn)譯后的.java文件與Servlet的處理方式一樣Servlet是JSP技術(shù)的基礎(chǔ)
演示示例1:Tomcat下MyJsp_jsp.java如何創(chuàng)建Servlet前臺頁面的創(chuàng)建FORM表單的編寫后臺Servlet的創(chuàng)建使用Eclipse的Servlet向?qū)?chuàng)建Servlet代碼模板根據(jù)表單提交方法,確定接收方法接收請求數(shù)據(jù)、處理數(shù)據(jù)、返回響應(yīng)頁面FORM表單的method屬性FORM表單提交的方法Get和Post<html><head><title>MyJsp</title></head><body>ThisismyJSPpage.<br></body></html><%@pagecontentType="text/html;charset=gbk"%><html><head><title>MyJsp</title></head><body><formaction="helloservlet"method="?"name="form1“> <!--表單內(nèi)容
--></form></body></html>FORM的方法有哪些?Get|PostGet與Post有什么區(qū)別?Get、Post提交數(shù)據(jù)與Servlet有什么關(guān)系嗎?使用向?qū)?chuàng)建Servlet在Eclipse下如何創(chuàng)建Servlet在Eclipse下如何創(chuàng)建Servlet首先在缺省包(src)下創(chuàng)建y2javaee.sg.ch02包在上述包中使用向?qū)?chuàng)建Servlet
演示示例2:創(chuàng)建Servlet步驟Servlet編程模式(3-1)Servlet編程基本模式處理Get和Post請求importjava.io.IOException;importjavax.servlet.*;importjavax.servlet.http.*;publicclassHelloServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ //doGet方法體內(nèi)容} publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ //doPost方法體內(nèi)容}}使用Get方法提交,觸發(fā)doGet()方法使用Post方法提交,觸發(fā)doPost()方法Servlet編程模式(3-2)Servlet編程基本模式Servlet如何接收數(shù)據(jù)importjava.io.IOException;importjavax.servlet.*;importjavax.servlet.http.*;publicclassHelloServletextendsHttpServletpublicvoiddoGet(HttpServletRequestrequest,HttpServletResponse response)throwsServletException,IOException{ } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//doPost方法體內(nèi)容
}}參數(shù)為表單元素名稱接收數(shù)據(jù)與JSP相同如果是使用Get方法提交數(shù)據(jù)StringuserName
=
request.getParameter("userName");StringuserPass
=
request.getParameter("userPass");//doGet方法體內(nèi)容如果是使用Post方法提交數(shù)據(jù)doPost(request,response);Servlet編程模式(3-3)Servlet編程的基本模式根據(jù)結(jié)果,轉(zhuǎn)向其他頁面或資源importjava.io.IOException;importjavax.servlet.*;importjavax.servlet.http.*;publicclassHelloServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{StringuserName=request.getParameter("userName");StringuserPass=request.getParameter("userPass");if(userName=="accp"&&userPass=="123")response.sendRedirect("success.jsp");elseresponse.sendRedirect("failure.jsp"); } }使用response重定向到其他頁面與JSP相同Servlet的生命周期(2-1)Servlet的生命周期由Servlet容器(如:Tomcat)控制容器如何處理請求HTTP請求容器請求響應(yīng)12Servlet實(shí)例Servlet通過URL找到執(zhí)行service(請求,響應(yīng))34doGet(請求,響應(yīng))5響應(yīng)6Servlet的生命周期(2-2)生命周期的各個(gè)階段實(shí)例化Servlet容器創(chuàng)建Servlet的實(shí)例初始化該容器調(diào)用init()方法服務(wù)如果請求Servlet,則容器調(diào)用service()方法銷毀實(shí)例之前調(diào)用destroy()方法銷毀生命周期相關(guān)方法publicclassHelloServletextendsHttpServlet{publicvoidinit()throwsServletException{ System.out.println("初始化時(shí)第一次調(diào)用!");} publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ PrintWriterout=response.getWriter(); out.println("<HTML>"); out.println("<HEAD><TITLE>HelloServlet</TITLE></HEAD>"); out.println("<BODY>"); out.println("你好!ACCP"+newDate()); out.println("</BODY></HTML>"); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ doGet(request,response);} publicvoiddestroy(){System.out.println(“釋放資源!"); }}初始化方法doGet()方法doPost()方法銷毀方法程序演示運(yùn)行HelloServlet啟動Tomcat服務(wù)在地址欄內(nèi)輸入:運(yùn)行結(jié)果演示示例3:HelloServlet現(xiàn)場編程請使用Servlet編寫在頁面顯示“你好,ACCP!”的程序代碼…publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=GBK");//設(shè)置中文
PrintWriterout=response.getWriter();//使用輸出流,向客戶端輸出信息
out.println("<HTML>");out.println("<HEAD><TITLE>HelloServlet</TITLE></HEAD>");out.println("<BODY>");out.println(“你好,ACCP!");out.println("</BODY>");out.println("</HTML>");out.flush();out.close();}…常見錯(cuò)誤如果程序運(yùn)行結(jié)果如下:出現(xiàn)了亂碼,什么原因呢?publicclassHelloServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charSet=GBK");//設(shè)定中文
PrintWriterout=response.getWriter();//使用輸出流,輸出信息
} }設(shè)定中文的語句,哪里有錯(cuò)誤嗎?charset而不是charSetServlet的部署(2-1)每個(gè)Servlet為一個(gè)組件,必須部署到Tomcat中才能運(yùn)行與JSP相同在Tomcat中部署部署要遵守容器特定的規(guī)定Servlet的部署(2-2)在Tomcat中如何部署tomcatwebappsstoreWEB-INFindex.htmltest.jsplibclasses*.jarHelloServlet.classweb.xml顯示頁面第三方j(luò)ar文件.java編譯后的.class文件程序配置文件必須的tomcat主目錄文檔根目錄Servlet的配置在web.xml文件中配置Servlet如何訪問Servlet<web-app><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>y2javaee.sg.ch02.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/HelloServlet</url-pattern></servlet-mapping></web-app>兩個(gè)名稱必須相同為了方便使用Servlet,取個(gè)別名完整的包名+類名訪問Servlet的URL常見錯(cuò)誤web.xml文件常見錯(cuò)誤servlet-mapping中的name與servlet-name中的name不一致添加多個(gè)mapping映射<web-app><servlet><servlet-name>Helloservlet</servlet-name><servlet-class>y2javaee.sg.ch02.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/HelloServlet</url-pattern></servlet-mapping></web-app>請指出哪里有錯(cuò)誤?servlet-name不一致<web-app><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>y2javaee.sg.ch02.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/HelloServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/HelloServlet2</url-pattern></servlet-mapping></web-app>多余
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 體育場館廣告牌施工協(xié)議
- 2025版跨境電子商務(wù)平臺用戶隱私保護(hù)合同3篇
- 2025年度溫州二手房交易市場風(fēng)險(xiǎn)防控合作協(xié)議3篇
- 城市環(huán)境衛(wèi)生分層管理辦法
- 2025版電子商務(wù)平臺用戶行為分析合同6篇
- 2024年茶葉生產(chǎn)設(shè)備升級與購買合同
- 2025年度勞動密集型產(chǎn)業(yè)勞動合同3篇
- DB1331T 096-2024 雄安新區(qū)市政公用工程綠色評價(jià)標(biāo)準(zhǔn)
- 2024年鉆石購銷合同樣本3篇
- 2025版酒店品牌戰(zhàn)略規(guī)劃與委托管理協(xié)議3篇
- 人工智能企業(yè)團(tuán)隊(duì)構(gòu)建及崗位設(shè)置方案
- 《咳嗽的診斷與治療指南(2021)》解讀課件
- 新高考數(shù)學(xué)題型全歸納之排列組合專題20定序問題(原卷版+解析)
- 小學(xué)數(shù)學(xué)教師培訓(xùn)完整方案
- 《道路交通安全違法行為記分管理辦法》知識專題培訓(xùn)
- 【基于PLC的搬運(yùn)機(jī)器人系統(tǒng)設(shè)計(jì)(論文)7400字】
- 山東省濟(jì)南市2023-2024學(xué)年高一年級上冊1月期末考試物理試題(含解析)
- 醫(yī)院保安服務(wù)方案(技術(shù)方案)
- Unit 9 語法知識清單 2024-2025學(xué)年人教版英語九年級全冊
- 2024新人教版道法一年級上冊第三單元:養(yǎng)成良好習(xí)慣大單元整體課時(shí)教學(xué)設(shè)計(jì)
- 2024年吉林省高職高專單獨(dú)招生考試數(shù)學(xué)試卷真題(含答案)
評論
0/150
提交評論