Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 15 章 Servlet 程式設計 Java 2 程式設計入門與應用. 2 目錄 15-1 Servlet 的簡介 15-1 Servlet 的簡介 15-2 建立 Servlet 程式 15-2 建立 Servlet 程式 溫故知新 自我突破習題.

Similar presentations


Presentation on theme: "第 15 章 Servlet 程式設計 Java 2 程式設計入門與應用. 2 目錄 15-1 Servlet 的簡介 15-1 Servlet 的簡介 15-2 建立 Servlet 程式 15-2 建立 Servlet 程式 溫故知新 自我突破習題."— Presentation transcript:

1 第 15 章 Servlet 程式設計 Java 2 程式設計入門與應用

2 2 目錄 15-1 Servlet 的簡介 15-1 Servlet 的簡介 15-2 建立 Servlet 程式 15-2 建立 Servlet 程式 溫故知新 自我突破習題

3 3 15-1 Servlet 的簡介 15-1.1CGI 與 Servlet 15-1.2 下載與安裝 Servlet 引擎

4 4 前言: 網際網路已經成為交換資訊的重要媒介,網頁 設計當然就成為了顯學!根據網頁的產生技巧, 可分為客戶端網頁和伺服器端執行的網頁,在 伺服器端執行的網頁又稱為動態伺服器網頁, Servlet 就是動態伺服器網頁的一種。

5 5 15-1.1 CGI 與 Servlet 共通閘道介面( Common Gateway Interafce ,簡稱 CGI ) 是一種標準執行檔案,在 WWW 環境下,當客戶端連 線至伺服器端,要求存取檔案或資料庫時, CGI 程式 會根據需求將檔案或資料庫中的資料傳送給客戶端, 它只能在伺服器端執行,其運作過程如下圖所示:

6 6 小型伺服器端程式: 支援 CGI 程式的程式語言有 Java 、 C 語言與 Visual Basic 等。 Servlet 是用來取代 CGI 的程式,是網頁與資料 庫雙向溝通的介面,所謂的 Servlet 是由 “Server” 與 “let” 兩個字組合而成的,在 Java 中, let 表示 小程式的意思(例如下一章教的 Applet 就是 “Application” 與 “let” 兩個字的組合),所以這 兩個字的組合就是指 “ 小型伺服器端程式 ” ,也 就是說 Servlet 是只能在伺服器端執行的程式。

7 7 15-1.2 下載與安裝 Servlet 引擎 Java Servlet 必須在支援 Servlet 的 WWW 伺服器 執行,稱為 Servlet 容器或 Servlet 引擎,所以要 先在伺服器端安裝 Servlet 引擎。

8 8 安裝下列兩種伺服器的 Servlet Container 網址如下所示: Apache 是 UNIX/Linux/Windows 作業系統的 WWW 伺服器,而 IIS 是 Windows 作業系統的 WWW 伺服器,可以安裝在這兩種伺服器的 Servlet Container 如下所示(本書使用免費下載 的 Resin 軟體):

9 9 下載與安裝 Resin 軟體的操作方法如下:

10 10

11 11

12 12

13 13

14 14

15 15

16 16

17 17

18 18

19 19

20 20 如可以連線至下面的網站,表示安裝 Resin 成功: 如果在瀏覽器的網址欄輸入 http://localhost:8080/ ,可以連線到下面的網站, 表示安裝 Resin 成功。

21 21 15-2 建立 Servlet 程式 15-2.1 簡易的 Servlet 程式 15-2.2 在表單輸入資料

22 22 前言: 在撰寫 Servlet 程式後,要將 Java Servlet 程式放 到 WWW 伺服器的資料夾中,才可以執行成功。

23 23 15-2.1 簡易的 Servlet 程式 Java Servlet 其實是一個繼承 HttpServlet 抽象類 別或實作 Servlet 介面的類別,此類別可以用來 處理 HTTP 的請求與回應,所以撰寫 Java Servlet 之前必須載入 javax.servlet 與 javax.servlet.http 類別庫。

24 24 Servlet 的執行過程: Servlet 是透過瀏覽程式向 WWW 伺服器發出請 求,然後在 Servlet 引擎上執行 Java Servlet ,由 service 函式或 doXXX 函式回應執行結果(若是 由 service 函式處理,會呼叫對應的 doXXX 方 法),其執行過程如下所示:

25 25 下面是 Servlet 執行過程中常見的函式:

26 26 Servlet 的介面物件: 呼叫 doGet 函式時必須傳遞 HttpServletRequest 與 HttpServletResponse 兩個介面物件,並且要 拋出 ServletException 與 IOException 例外類別, 其函式原型如下所示( service 與 doXXX 函式的 原型與 doGet 相同):

27 27 上述兩個介面物件說明如下: 1.HttpServletRequest :客戶端向伺服器端提出 請求的物件,例如:表單輸入而送出資料。 2.HttpServletResponse :伺服器端向客戶端回應 結果的物件,例如:在瀏覽程式中顯示 HTML 文件。

28 28 在網頁顯示資料: 利用 doGet 參數列的 HttpServletResponse 物件, 可以建立 PrintWriter 物件,在網頁顯示資料, 並且可設定要顯示的文件類型,下面是設定文 件類型的語法:

29 29 上述語法的 “ 文件類型 ” 可以設定為下面 幾種: 若要輸出的資料為中文字,可在文件類型後輸 入 ;charset=Big5 ,表示 Big5 編碼(繁體中文), 例如: res.setContentType("text/html;charset=Big5"); 。

30 30 利用 HttpServletResponse 物件建立一個 PrintWriter 輸出物件,語法如下: 如果要在網頁顯示資料,必須先利用 HttpServletResponse 物件建立一個 PrintWriter 輸 出物件,其語法如下: 建立輸出物件後,可以利用下面的語法撰寫 HTML 標籤(關於 HTML 標籤請見 16-2.2 ):

31 31 例如下面的程式碼:

32 32 上述程式碼分析如下: 1. 第 2 與 3 行必須先載入 javax.servlet 與 javax.servlet.http 類別庫。 2. 第 5 行的 doGet 函式用來處理客戶端的請求,也可以 利用 service 函式來取代。 3. 第 9 行利用 getWriter 函式建立一個 PrintWriter 輸出物 件,則在第 11~16 行可利用此物件撰寫 HTML 標籤, 在網頁中顯示資料。 4. 因為 PrintWriter 物件屬於 java.io 類別庫,所以在第 1 行 要載入 java.io 類別庫。 5. 第 16 行利用 close 函式關閉輸出物件。

33 33 瀏覽器中輸入下面的網址: Resin-2.1.16 版本預設的 WWW 伺服器資料夾為 C:\resin-2.1.16\doc\ WEB-I NF\classes ,所以要 將 Servlet 程式複製到該資料夾中,然後在瀏覽 器中輸入下面的網址( Servlet 檔名不包含副檔 名.java ):

34 34 完成後,畫面顯示如下: 完成後,會自動編譯程式,並且在 classes 資料夾中產 生.class 檔案,執行程式的畫面顯示如下:

35 35

36 36

37 37 15-2.2 在表單輸入資料 利用 Java Servlet 也可以處理 HTML 的表單資料, 在客戶端輸入資料以傳送給伺服器端,例如: 線上買賣訂單、資料查詢等應用。 ServletRequest 介面可以取得由客戶端傳送給伺 服器端的資料,而因為 HttpServletRequest 介面 繼承於 ServletRequest 介面,所以也可以直接利 用 ServletRequest 介面來操作。 當執行 service 或 doXXX 函式後,就可呼叫 ServletRequest 介面的函式。

38 38 ServletRequest 介面常用的函式說明如 下:

39 39 例如下面的程式碼:

40 40

41 41 上述程式碼分析如下: 1. 第 6 行的 service 函式用來處理客戶端的請求。 2. 第 10 與 11 行利用 HttpServletRequest 物件 request 傳回表 單欄位 t1 與 t2 的資料,並利用 Double.parseDouble 將傳 回值轉換成 double 資料型別。 3. 第 13 行計算標準體重,公式為 ( 身高 -100)*0.9 。 4. 第 17~19 行在網頁中顯示身高與體重資訊,然後在第 23~29 行顯示測量的體重結果,以粗體段落顯示。

42 42 下面撰寫一個具有表單的 HTML 文件,並 且設定處理表單資料及顯示結果的路徑 : 在執行 Java Servlet 之前,必須先在 C:\resin- 2.1.16\doc 撰寫一個具有表單的 HTML 文件,並 且設定處理表單資料及顯示結果的路徑(設定 為 Servlet 程式的路徑),程式碼如下:

43 43

44 44 上述程式碼分析如下: 1. 第 6 行的 標籤表示傳送方式為 get ,處 理表單資料的 Servlet 程式路徑為 “/servlet/ch15_02_02” 。 2. 第 8 與 10 行分別建立文字方塊,其名稱為 t1 與 t2 。 3. 第 11 行建立一個傳送按鈕,顯示的按鈕名稱 為 “ 確定 ” 。

45 45 完成後: 完成後,在瀏覽器輸入下面的網址(必須包含 HTML 檔案的副檔 名),連線到 HTML 檔案: 連結到網站後,可以在文字方塊中輸入身高與體重,然後點選鈕, 就會自動顯示 Servlet 程式,以處理表單資料並顯示結果,畫面顯示 如下:

46 46 溫故知新 -1 :

47 47 溫故知新 -2 :

48 48 自我突破習題 - 選擇題:

49 49 自我突破習題 - 實作題:


Download ppt "第 15 章 Servlet 程式設計 Java 2 程式設計入門與應用. 2 目錄 15-1 Servlet 的簡介 15-1 Servlet 的簡介 15-2 建立 Servlet 程式 15-2 建立 Servlet 程式 溫故知新 自我突破習題."

Similar presentations


Ads by Google