prjq150314月23號之前所有課件第三部分java的web編程14章servlet_第1頁
prjq150314月23號之前所有課件第三部分java的web編程14章servlet_第2頁
prjq150314月23號之前所有課件第三部分java的web編程14章servlet_第3頁
prjq150314月23號之前所有課件第三部分java的web編程14章servlet_第4頁
prjq150314月23號之前所有課件第三部分java的web編程14章servlet_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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頁面運行執(zhí)行Java代碼HTML代碼生成JSP使用Java

生成動態(tài)內(nèi)容運行Servlet程序什么是Servlet(2-1)定義:Servlet是一個Java程序,是在服務(wù)器上運行以處理客戶端請求并做出響應(yīng)的程序請求響應(yīng)Servlet

運行于服務(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實例Servlet通過URL找到執(zhí)行service(請求,響應(yīng))34doGet(請求,響應(yīng))5響應(yīng)6Servlet的生命周期(2-2)生命周期的各個階段實例化Servlet容器創(chuàng)建Servlet的實例初始化該容器調(diào)用init()方法服務(wù)如果請求Servlet,則容器調(diào)用service()方法銷毀實例之前調(diào)用destroy()方法銷毀生命周期相關(guān)方法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服務(wù)在地址欄內(nèi)輸入:運行結(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();}…常見錯誤如果程序運行結(jié)果如下:出現(xiàn)了亂碼,什么原因呢?publicclassHelloServletextendsHttpServlet{

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charSet=GBK");//設(shè)定中文

PrintWriterout=response.getWriter();//使用輸出流,輸出信息

} }設(shè)定中文的語句,哪里有錯誤嗎?charset而不是charSetServlet的部署(2-1)每個Servlet為一個組件,必須部署到Tomcat中才能運行與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>兩個名稱必須相同為了方便使用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)系上傳者。文件的所有權(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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論