版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第十四章servlet(1)理論部分理解Servlet的生命周期會使用Servlet處理Get/Post請求會使用Servlet處理頁面的轉(zhuǎn)向會配置web.xml文件本章目標為什么需要Servlet使用JSP技術如何編寫服務器動態(tài)網(wǎng)頁?在JSP技術出現(xiàn)之前如何編寫服務器動態(tài)網(wǎng)頁?請求響應JSP頁面運行執(zhí)行Java代碼HTML代碼生成JSP使用Java
生成動態(tài)內(nèi)容運行Servlet程序什么是Servlet(2-1)定義:Servlet是一個Java程序,是在服務器上運行以處理客戶端請求并做出響應的程序請求響應Servlet
運行于服務器端什么是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標簽和內(nèi)容導入所需的包處理請求的方法將數(shù)據(jù)發(fā)送給客戶端Servlet與JSP關系Servlet與JSP之間的關系JSP在服務器上轉(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技術的基礎
演示示例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ù)、返回響應頁面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有什么關系嗎?使用向?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ù)結果,轉(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請求容器請求響應12Servlet實例Servlet通過URL找到執(zhí)行service(請求,響應)34doGet(請求,響應)5響應6Servlet的生命周期(2-2)生命周期的各個階段實例化Servlet容器創(chuàng)建Servlet的實例初始化該容器調(diào)用init()方法服務如果請求Servlet,則容器調(diào)用service()方法銷毀實例之前調(diào)用destroy()方法銷毀生命周期相關方法publicclassHelloServletextendsHttpServlet{publicvoidinit()throwsServletException{ System.out.println("初始化時第一次調(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()方法銷毀方法程序演示運行HelloServlet啟動Tomcat服務在地址欄內(nèi)輸入:運行結果演示示例3:HelloServlet現(xiàn)場編程請使用Servlet編寫在頁面顯示“你好,ACCP!”的程序代碼…publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=GBK");//設置中文
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();}…常見錯誤如果程序運行結果如下:出現(xiàn)了亂碼,什么原因呢?publicclassHelloServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charSet=GBK");//設定中文
PrintWriterout=response.getWriter();//使用輸出流,輸出信息
} }設定中文的語句,哪里有錯誤嗎?charset而不是charSetServlet的部署(2-1)每個Servlet為一個組件,必須部署到Tomcat中才能運行與JSP相同在Tomcat中部署部署要遵守容器特定的規(guī)定Servlet的部署(2-2)在Tomcat中如何部署tomcatwebappsstoreWEB-INFindex.htmltest.jsplibclasses*.jarHelloServlet.classweb.xml顯示頁面第三方jar文件.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>兩個名稱必須相同為了方便使用Servlet,取個別名完整的包名+類名訪問Servlet的URL常見錯誤web.xml文件常見錯誤servlet-mapping中的name與servlet-name中的name不一致添加多個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>請指出哪里有錯誤?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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度專業(yè)廚房設備研發(fā)與定制維修合同3篇
- 2025年度裝配式建筑生產(chǎn)與施工一體化合同書4篇
- 2025年度路牙防滑處理勞務分包合同4篇
- 2025年中國節(jié)水農(nóng)業(yè)行業(yè)市場深度評估及投資戰(zhàn)略規(guī)劃報告
- 黃山2024年安徽黃山黟縣招聘鄉(xiāng)村振興農(nóng)村專職工作者筆試歷年參考題庫附帶答案詳解
- 斗牛犬講課教案
- 2025年中國氨綸行業(yè)市場深度分析及發(fā)展前景預測報告
- 健康問題的預防與管理
- 園區(qū)報關201310教學內(nèi)容
- 教案X的革新:2025年創(chuàng)業(yè)基礎教學新趨勢
- C及C++程序設計課件
- 帶狀皰疹護理查房
- 公路路基路面現(xiàn)場測試隨機選點記錄
- 平衡計分卡-化戰(zhàn)略為行動
- 國家自然科學基金(NSFC)申請書樣本
- 幼兒教師干預幼兒同伴沖突的行為研究 論文
- 湖南省省級溫室氣體排放清單土地利用變化和林業(yè)部分
- 材料設備驗收管理流程圖
- 培訓機構消防安全承諾書范文(通用5篇)
- (完整版)建筑業(yè)10項新技術(2017年最新版)
- 第8期監(jiān)理月報(江蘇版)
評論
0/150
提交評論