《Servlet模型》PPT课件.ppt

上传人:小飞机 文档编号:5453608 上传时间:2023-07-08 格式:PPT 页数:35 大小:213.50KB
返回 下载 相关 举报
《Servlet模型》PPT课件.ppt_第1页
第1页 / 共35页
《Servlet模型》PPT课件.ppt_第2页
第2页 / 共35页
《Servlet模型》PPT课件.ppt_第3页
第3页 / 共35页
《Servlet模型》PPT课件.ppt_第4页
第4页 / 共35页
《Servlet模型》PPT课件.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《《Servlet模型》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《Servlet模型》PPT课件.ppt(35页珍藏版)》请在三一办公上搜索。

1、SCWCD 認證專家應考指南(2/e)認證專家應考指南(2/e),第2章:Servlet模型,2.1:Servlet如何處理HTTP請求2.2:Servlet如何產生HTTP回應2.3:實例探討:建立HTTP Servlet2.4:Servlet 的生命週期(life cycle),SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.1:Servlet如何處理HTTP請求,在HttpServlet類別中,service()方法會根據不同的HTTP請求形式,將客戶端請求分配給不同方法來執行(包括GET、HEAD、PUT、POST、DELETE、OPTIONS與TRACE)。HTTP請求形式所

2、對應的方法習慣上是以doXXX()表示。doXXX()方法必須傳入兩個物件參考:HttpServletRequest與HttpServletResponse。,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.1:Servlet處理HTTP請求的流程,當Servlet容器接收到HTTP請求後,將會呼叫Servlet的service()方法。service()方法會解析HTTP請求的內容,藉此決定其HTTP請求形式為何。根據客戶端的HTTP請求形式,service()方法會呼叫相對應的doXXX()方法。,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.1:HTTP請求形式對應的S

3、ervlet方法,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.2:如何取得HTTP請求內容,介面提供下列方法,可用來讀取Servlet請求內容:String getParameter(String name)String getParameterValues(String name)Enumeration getParameterNames()HttpServletRequest繼承自ServletRequest介面,只要是實作介面的類別,都可以經由這些取得HTTP Servlet請求內容!,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.2:讀取Servlet請求內容的方

4、法,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.3:如何取得HTTP請求之標頭資訊,HttpServletRequest介面提供三個方法,可取得HTTP請求之標頭資訊:getHeader(String name)getHeaders(String name)getHeaderNames(),SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.3:讀取HTTP 請求標頭資訊的方法,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.4:存取客戶端瀏覽器的Cookie資料,取得客戶端瀏覽器所紀錄的Cookie資料:HttpServletRequest介面的getCookies(

5、)方法將新的Cookie資料傳送至客戶端瀏覽器:HttpServletResponse介面的addCookie(Cookie cookie)方法,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.5:HTTP請求形式之實例探討,request.html檔案內容:1.2.3.4.Enter your name:5.6.7.8.9.,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.5:HelloServlet.java,1.package scwcd.ch02;2.3.import java.io.*;4.import javax.servlet.http.*;5.6.public

6、class HelloServlet extends HttpServlet 7.public void doGet(HttpServletRequest request,8.HttpServletResponse response)9.throws IOException 10.response.setContentType(text/html);11.12.String name=request.getParameter(name);13.PrintWriter out=response.getWriter();14.,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.5:Hello

7、Servlet.java,15.out.println();16.out.println();17.out.println(Hello Servlet);18.out.println();19.out.println();20.out.println(Hello,+name+!);21.out.println();22.out.println();23.out.close();24.25.,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.5:利用GET形式呼叫HelloServlet,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.6:利用POST形式送出HTTP請求,修改re

8、quest.html檔案內容:1.2.3.4.Enter your name:5.6.7.8.9.,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.6:利用POST形式送出HTTP請求,因為HelloServlet未撰寫doPost()方法,所以無法處理HTTP POST請求!,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.6:在HelloServlet加入doPost()方法,為了讓HelloServlet回應POST請求,必須加入doPost()方法:6.public class HelloServlet2 extends HttpServlet.25.public vo

9、id doPost(HttpServletRequest request,26.HttpServletResponse response)27.throws IOException 28.doGet(request,response);29.30.,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.6:DisplayHeaderInfo.java,1.package scwcd.ch02;2.3.import javax.servlet.*;4.import javax.servlet.http.*;5.import java.io.*;6.import java.util.*;7.8.

10、public class DisplayHeaderInfo extends HttpServlet 9.private String CONTENT_TYPE=text/html;charset=Big5;10.public void doGet(HttpServletRequest request,11.HttpServletResponse response)12.throws ServletException,IOException 13.response.setContentType(CONTENT_TYPE);14.PrintWriter out=response.getWrite

11、r();15.out.println();16.out.println();17.out.println();18.out.println(“HTTP Servlet 所接收的 Header 資訊);,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.6:DisplayHeaderInfo.java,19.20.out.println();21.Enumeration headers=request.getHeaderNames();22.23.while(headers.hasMoreElements()24.String header=(String)headers.nextElem

12、ent();25.String value=request.getHeader(header);26.out.println();27.out.println(28.+header+);29.out.println(+value+);30.out.println();31.32.out.println();33.out.println();34.out.println();35.36.,SCWCD 認證專家應考指南(2/e)學貫行銷,2.1.6:DisplayHeaderInfo.java 執行結果,SCWCD 認證專家應考指南(2/e)學貫行銷,2.2:Servlet如何產生HTTP回應,在

13、doXXX()方法內,可透過HttpServletResponse物件輸出HTTP回應訊息,例如:PrintWriter out=response.getWriter();out.println();out.println();out.println(This is my first Servlet!);out.println();out.println();,SCWCD 認證專家應考指南(2/e)學貫行銷,2.2.1 如何設定HTTP Servlet之回應內容,ServletResponse介面的重要方法:,SCWCD 認證專家應考指南(2/e)學貫行銷,HttpServletRespons

14、e介面的重要方法:,2.2.1 如何設定HTTP Servlet之回應內容,SCWCD 認證專家應考指南(2/e)學貫行銷,2.3 實例演練:撰寫HTTP Servlet,實例演練2-1:利用文字編譯器撰寫一個MyFirstServlet.java利用javac編譯MyFirstServlet將MyFirstServlet.class複製到Tomcat伺服器的適當目錄在Web瀏覽器內執行MyFirstServlet,SCWCD 認證專家應考指南(2/e)學貫行銷,2.3 實例演練:撰寫HTTP Servlet,實例演練2-2:在MyFirstServlet內加入一個doPost()方法,目的是

15、讓MyFirstServlet能夠回應POST請求。為了從客戶端送出POST請求,必須另外撰寫一個SendPostRequest.html檔案。,SCWCD 認證專家應考指南(2/e)學貫行銷,2.4:Servlet 的生命週期(life cycle),Servlet生命週期的三個階段:載入Servlet,並予以實體化 回應客戶端的請求 卸載Servlet的服務javax.servlet.Servlet介面定義下面三個方法:init()service()destroy(),SCWCD 認證專家應考指南(2/e)學貫行銷,2.4:Servlet生命週期方法,SCWCD 認證專家應考指南(2/e)

16、學貫行銷,2.4.4:Servlet生命週期之實例探討,ConnectDatabase這個Servlet將透過JDBC驅動程式建立Oracle9i資料庫連線,包含下列工作:設定Oracle9i資料庫所在位置、TCP/IP連接埠,以及Oracle SID 載入Oracle9i資料庫的JDBC驅動程式 利用scott使用者(密碼為tiger)建立資料庫連線,SCWCD 認證專家應考指南(2/e)學貫行銷,2.4.4:初始化資料庫連線,public void init()throws ServletException String driver_type=oracle.jdbc.driver.Ora

17、cleDriver;String url=jdbc:oracle:thin:localhost:1521:ora9201;String username=scott;String passwd=tiger;/載入 JDBC 驅動程式,並建立資料庫連線 try Class.forName(driver_type);conn=DriverManager.getConnection(url,username,passwd);DatabaseMetaData md=conn.getMetaData();targetDB=md.getDatabaseProductName();catch(Excepti

18、on e),SCWCD 認證專家應考指南(2/e)學貫行銷,2.4.4:覆寫 doGet()方法,public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException response.setContentType(text/html);PrintWriter out=response.getWriter();/*產生HTTP請求之回應訊息,例如:顯示目的資料庫名稱,或是回傳某表格的查詢結果*/out.close();,SCWCD 認證專家應考指

19、南(2/e)學貫行銷,2.4.4:卸載 Servlet 服務,public void destroy()try conn.close();catch(SQLException e),SCWCD 認證專家應考指南(2/e)學貫行銷,2.4.4:ConnectDatabase.java,1.package scwcd.ch02;2.3.import javax.servlet.*;4.import javax.servlet.http.*;5.import java.io.*;6.import java.util.*;7.import java.sql.*;8.9.public class Con

20、nectDatabase extends HttpServlet 10.Connection conn=null;11.String targetDB;12.int cannotConnect=0;13.14.public void init()throws ServletException 15.String driver_type=oracle.jdbc.driver.OracleDriver;,SCWCD 認證專家應考指南(2/e)學貫行銷,2.4.4:ConnectDatabase.java,16.String url=jdbc:oracle:thin:localhost:1521:o

21、ra9201;17.String username=scott;18.String passwd=tiger;19.20.try21.Class.forName(driver_type);22.conn=DriverManager.getConnection(url,username,passwd);23.DatabaseMetaData md=conn.getMetaData();24.targetDB=md.getDatabaseProductName();25.26.catch(ClassNotFoundException e)27.cannotConnect=1;28.29.catch

22、(SQLException e)30.cannotConnect=2;,SCWCD 認證專家應考指南(2/e)學貫行銷,2.4.4:ConnectDatabase.java,31.32.33.34.public void doGet(HttpServletRequest request,35.HttpServletResponse response)36.throws ServletException,IOException 37.response.setContentType(text/html);38.PrintWriter out=response.getWriter();39.40.i

23、f(cannotConnect=1)41.out.println();42.out.println(Cannot load the specified JDBC driver.);43.out.println();44.else,SCWCD 認證專家應考指南(2/e)學貫行銷,2.4.4:ConnectDatabase.java,45.if(cannotConnect=2)46.out.println();47.out.println(Cannot create database connection.);48.out.println();49.50.else 51.out.println();52.out.println(Database connection successfully created!);53.out.println(The target database is:+targetDB+);54.out.println();55.56.57.out.close();58.,SCWCD 認證專家應考指南(2/e)學貫行銷,2.4.4:ConnectDatabase.java,59.public void destroy()60.try 61.conn.close();62.catch(SQLException e)63.64.,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号