500 likes | 826 Views
JSP 2.0 網頁設計範例教本. 課程名稱: _____________ 指導教授: _____________. 目錄 -I. 第 1 章: JSP 基礎與開發環境的建立 第 2 章: HTML 、 XML 和 XHTML 實務 第 3 章: Java 語法的 JSP 程式 第 4 章: JSP 元素與隱含物件 ( Implicit Object ) 第 5 章: JSP 的運算式語言 ( Expression Language ) 第 6 章: JSTL 標籤建立 JSP 程式
E N D
JSP 2.0網頁設計範例教本 課程名稱:_____________ 指導教授:_____________
目錄-I • 第1章: JSP基礎與開發環境的建立 • 第2章: HTML、XML和XHTML實務 • 第3章: Java語法的JSP程式 • 第4章: JSP元素與隱含物件 (Implicit Object) • 第5章: JSP的運算式語言 (Expression Language) • 第6章: JSTL標籤建立JSP程式 • 第7章: JSP的表單處理與Cookie
目錄-II • 第8章: JSP的Web應用程式與交談期追蹤 • 第9章: JSP的例外與錯誤處理 • 第10章: Servlet、過濾器與JavaBeans • 第11章: JSP與JDBC建立網頁資料庫 • 第12章: JSP的檔案與電子郵件處理 • 第13章: JSP與XML和XSLT • 第14章: JSP的自訂標籤與標籤檔 (Tag File) • 第15章: JSP與網頁資料庫實例探討
第1章 JSP基礎與開發環境的建立 • 1-1 Web應用程式的基礎 • 1-2 Java的網頁技術 • 1-3 JSP的開發環境建立 • 1-4 JSP程式的開發工具 • 1-5 在IIS建立JSP開發環境
1-1 Web應用程式的基礎 • 1-1-1 WWW的基礎 • 1-1-2 HTTP通訊協定 • 1-1-3 Web應用程式
1-1-1 WWW的基礎-說明 • 「WWW」(World Wide Web,簡稱Web)全球資訊網是1989年歐洲高能粒子協會一個研究小組開發的Internet服務,Web能夠在網路上傳送圖片、文字、影像和聲音等多媒體資料,這是由Tim Berners Lee領導的小組開發的主從架構和分散式網路服務系統。
1-1-2 HTTP通訊協定-說明 • HTTP通訊協定(Hypertext Transfer Protocol)是一種在伺服端(Server)和客戶端(Client)之間傳送檔案的通訊協定,目前的版本是1.1版,如下圖所示:
1-1-2 HTTP通訊協定-過程 • HTTP通訊協定的應用程式是一種主從架構(Client-Server Architecture)應用程式,在客戶端使用URL(Uniform Resource Locator)指定連線的伺服端資源,在其間傳送HTTP訊息(HTTP Message)來進行溝通,以便請求指定的檔案,其過程如下所示: • Step 1:客戶端要求連線伺服端。 • Step 2:伺服端允許客戶端的連線。 • Step 3:客戶端送出HTTP請求訊息,內含GET指令請求取得伺服端的指定檔案。 • Step 4:伺服端以HTTP回應訊息來回應客戶端的請求,傳回訊息包含請求的檔案內容。
1-1-2 HTTP通訊協定-HTTP請求訊息 GET /path/file.htm HTTP/1.1 Host: www.host.com Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg…. Accept-Language: zh-tw Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1) Connection: Keep-Alive
1-1-2 HTTP通訊協定-HTTP回應訊息 HTTP/1.1 200 OK Date: Mon, 12 Oct 2004 19:12:16 GMT Server: Apache/1.3.12(Unix) Debian/GNU mod_perl/1.24 Connection: Close Content-Type: text/html Content-Length: 1345 <html> <body> <h1>…..</h1> …………… </body> </html>
1-1-3 Web應用程式-說明 • Web應用程式(Web Application)簡單的說是一組網頁(包含HTML文件、圖片和相關伺服端網頁技術的程式檔案)的集合,應用程式可以回應使用者的請求,與使用者進行互動。目前Internet擁有多種不同類型的Web應用程式,例如:網路銀行、電子商務網站、搜尋引擎、網路商店、拍賣網站和電子公共論壇等。
1-2 Java的網頁技術 • 1-2-1 Java Applet • 1-2-2 Java Servlet • 1-2-3 JSP • 1-2-4 Java的Web應用程式架構
1-2-1 Java Applet-說明 • Java Applet是在瀏覽程式執行的小程式,事實上,它並不能算是一個完整的Java應用程式,Java Applet是一個繼承java.applet.Applet類別的物件,如下所示: import java.applet.Applet; import java.awt.Graphics; public class Ch1_2_1 extends Applet { public void paint(Graphics g) { g.drawString("一個簡單的Java Applet", 50, 25); } }
1-2-1 Java Applet-執行過程 • Java Applet繼承Applet類別,因為並不是完整的Java應用程式,所以不能直接在作業系統執行,而是透過其它程式來執行,例如:使用瀏覽程式執行Java Applet,如果瀏覽程式支援JVM或安裝JRE,就可以執行Java Applet,如下圖所示:
1-2-2 Java Servlet-說明 • Java Servlet簡稱Servlet,這是昇陽取代CGI的網頁技術,「CGI」(Common Gateway Interface)共通匣道介面提供Web伺服器執行外部程式的管道,Servlet的主要目的就是在擴充Web伺服器功能,另一個用途是搭配JSP技術來建立動態網頁內容,目前的版本是2.4。 • Servlet是Java技術的標準擴充,Java Servlet API是Servlet程式所需的類別函式庫,一共有javax.servlet和javax.servlet.http兩個套件,其最主要的功能是處理客戶端使用者的HTTP請求。
1-2-2 Java Servlet-範例 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Ch1_2_2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=Big5"); request.setCharacterEncoding("Big5"); PrintWriter out = response.getWriter(); if ( validOrder(request) ) { saveOrder(request); out.println("<html>"); ………… out.println("</body></html>"); } } private boolean validOrder(HttpServletRequest request) { …… } private void saveOrder(HttpServletRequest request) { …… } }
1-2-2 Java Servlet-執行過程 • Servlet的執行是由Web伺服器的「Servlet容器/引擎」(Servlet Container/Engine)所控制,Servlet容器載入Servlet、執行Servlet接受請求和刪除Servlet的過程,如下圖所示:
1-2-3 JSP-說明 • 「JSP」(JavaServer Pages)屬於伺服端網頁技術,目前的版本是2.0,所謂伺服端網頁技術,簡單的說,程式是在Web伺服器上執行,而不是在客戶端瀏覽程式,目前常用的伺服端網頁技術有:CGI、ASP、ASP.NET、JSP和PHP。 • JSP和Servlet技術擁有密切關係,其主要差異在於Servlet是讓程式設計者開發Web伺服器的擴充功能和建立Web應用程式處理流程的控制程式,而JSP技術主要是讓網頁設計者能夠輕鬆建立動態網頁內容,換句話說,我們可以將Java網頁技術Servlet分割成程式設計者建立的Servlet和網頁設計者使用的JSP 。
1-2-3 JSP-特點1 • 與瀏覽程式無關的網頁技術:JSP程式回應客戶端瀏覽程式顯示的內容仍是標準HTML文件,所以,不論使用Netscape或Internet Explorer瀏覽程式都可以正確顯示網頁內容。 • 跨平台和Web伺服器的網頁技術:JSP技術支援多種作業系統Windows、Unix和Linux,不同的Web伺服器Apache、IIS等,換句話說,只需寫一次JSP程式,就可以在不同環境下執行。 • 建立多層架構的Web應用程式:JSP技術可以搭配其它Java網頁技術,建立多層應用程式架構,詳細的說明請參閱第1-2-4節。
1-2-3 JSP-特點2 • 動態產生多種不同的網頁格式:JSP技術可以依客戶端應用程式產生不同的網頁格式,Web瀏覽程式的HTML/DHTML/XHTML格式、PDA的WML格式或XML格式。 • 比Servlet更容易的Java網頁技術:Servlet程式的開發者需要精通Java物件導向程式設計,JSP可以視為一種更高階的Servlet,不但能夠作到Servlet所能作到的幾乎所有功能,而且只需網頁設計者就可以輕鬆使用JSP技術。 • JSTL標籤和EL:JSP技術的JSTL標籤和EL可以如同撰寫HTML標籤一般的建立JSP程式,就算從來沒有學過Java語言,也一樣可以使用JSP技術來建立動態網頁內容。
1-2-4 Java的Web應用程式架構-圖例 • Java的Web應用程式架構是結合Servlet、JSP技術和JavaBeans元件的三層架構,如下圖:
1-2-4 Java的Web應用程式架構- MVC設計模型 • 上一頁圖例的虛線框是使用「MVC設計模型」(Model-View-Controller Design Pattern)建立的Web應用程式架構。 • MVC設計模型是1980年由Xerox所提出的應用程式架構,將應用程式分成三層View、Controller和Model 。
1-2-4 Java的Web應用程式架構-三層說明 • 展示層(Presentation Layer):展示層是與使用者互動的使用者介面,這是在客戶端瀏覽程式實際看到的顯示結果或表單介面,我們可以使用HTML、Java Applet或JSP程式來產生展示層的使用者介面,或顯示Web應用程式的執行結果,即MVC設計模型(Model-View-Control Design Pattern)的View。 • 控制層(Control Layer):控制層是用來連結展示層和商業邏輯層,以Servlet或JSP作為控制層來控制應用程式的執行,即作為控制資料處理流程的控制者Controller,負責接收使用者的HTTP請求。 • 商業邏輯層(Business Logic Layer):商業邏輯層負責Web應用程式的資料存取和處理,即Model,我們可以使用JavaBeans和JSP來建立商業邏輯層,存取和處理儲存在資料庫、文字檔案和XML檔案中的資料。
1-2-4 Java的Web應用程式架構- Model 1 Type 1 • Model 1 Type 1適合小型Web應用程式的開發,這是一種純粹使用JSP程式來建立展示層、控制層和商業邏輯層的三層架構,如下圖所示:
1-2-4 Java的Web應用程式架構- Model 1 Type 2 • Model 1 Type 2也適合小型Web應用程式的開發,這是使用JSP程式建立展示層和控制層,JavaBeans建立商業邏輯層,如下圖所示:
1-2-4 Java的Web應用程式架構- Model 2 • Model 2適用在大型Web應用程式的開發,使用JSP建立展示層View,Servlet作為控制層來控制應用程式的執行的Controller,JavaBeans負責商業邏輯層的資料存取和處理,即Model,如下圖所示:
1-3 JSP的開發環境建立 • 1-3-1 JDK的下載與安裝 • 1-3-2 Resin伺服器的下載和安裝 • 1-3-3 啟動與測試Resin伺服器 • 1-3-4 停止與關閉Resin伺服器
1-3 JSP的開發環境建立 • JSP技術是一種伺服端網頁技術,所以其開發環境也是一種主從架構的開發環境,如右圖所示:
1-3-1 JDK的下載與安裝 • JDK可以從昇陽網站免費下載,目前最新版本是5.0版,其內部版本為1.5.0版,網址為:http://java.sun.com/j2se/。 • 在安裝好JDK後,我們需要設定JDK執行環境,即在Windows XP新增環境變數Path的搜尋路徑「C:\Program Files\Java\jdk1.5.0\bin」,其中C:\Program Files\Java\jdk1.5.0\是JDK的安裝路徑。
1-3-2 Resin伺服器的下載和安裝-說明1 • JSP程式需要支援JSP的Web伺服器才能夠執行,稱為JSP容器(JSP Container)。目前巿面上有多套應用程式或伺服器,可以讓Apache和IIS等Web伺服器執行Servlet/JSP程式,一般來說,支援Servlet容器就一定支援JSP容器,如下所示: • Tomcat:http://jakarta.apache.org/tomcat/index.html。 • JRun:http://www.macromedia.com。 • Resin:http://www.caucho.com。 • ServletExec:http://www.newatlanta.com。
1-3-2 Resin伺服器的下載和安裝-說明2 • Resin伺服器是Caucho Technology開發的Servlet和JSP容器,其本身就是一套支援HTTP 1.1的快速Web伺服器和Servlet/JSP容器,可以獨立運作來支援Java網頁技術的Web應用程式,也可以搭配其它Web伺服器,例如:IIS,讓Web伺服器IIS也能夠開發和執行Servlet/JSP程式。 • Resin伺服器在3.0版支援Java Servlet 2.4和JSP 2.0版,提供負載平衡(Load Balancing)增加系統可靠度,並且可以使用Servlet過濾(Servlet Filtering)功能來轉換XSL和XML,建立客戶端輸出的HTML、WAP或XML內容。
1-3-2 Resin伺服器的下載和安裝-下載與安裝 • 下載Resin伺服器 • Resin伺服器目前的版本是 3.0版,在書附光碟提供resin-3.0.9.zip的ZIP格式壓縮檔,其下載網址,如下所示: • 下載Resin:http://www.caucho.com/download/index.xtp • 安裝Resin伺服器 • 安裝Resin伺服器只需使用WinZIP或Windows XP的解壓縮精靈等工具即可解開ZIP格式的壓縮檔,以本書為例是解壓縮到硬碟根目錄C:,預設的安裝路徑為:「C:\resin-3.0.9\」。
1-3-3 啟動與測試Resin伺服器 • Resin伺服器本身是一套可以在Windows作業系統下獨立執行的Web伺服器,在解壓縮檔案安裝好Resin伺服器後,就可以啟動Resin伺服器,建立JSP技術的開發和執行環境。 • 在啟動Resin伺服器後,我們就可以啟動Internet Explorer瀏覽程式測試伺服器是否成功啟動,請在瀏覽程式的【網址】欄輸入下列URL網址,如下所示: http://localhost:8080/ • 上述URL網址的localhost是指本機電腦,預設埠號為8080,按Enter鍵,稍等一下,就可以看到網頁內容。
1-3-4 停止與關閉Resin伺服器 • 停止Resin的Web伺服器是在「Resin」視窗選【Stop】選項,如此即可停止Resin的Web伺服器執行,按【Quit】鈕,就可以離開Resin伺服器。
1-4 JSP程式的開發工具 • 1-4-1 記事本 • 1-4-2 Gel中文介面開發工具
1-4-1 記事本 • Windows作業系統的記事本就可以編輯JSP原始程式碼,在Windows XP請執行「開始/所有程式/附屬應用程式/記事本」指令啟動記事本,如下圖所示:
1-4-2 Gel中文介面開發工具-說明 • Gel是原生Windows介面使用Delphi開發的Java/JSP IDE,而不是使用Java語言,所以尺寸非常小、佔用記憶體少且執行速度快。Gel擁有強大功能,提供中文使用介面、語法標示、程式碼自動完成、參數提示和專案管理功能,其下載網址:http://www.gexperts.com/download.html。
1-5 在IIS建立JSP開發環境 • 1-5-1 建立IIS的JSP開發環境 • 1-5-2 部署Resin成為Windows系統服務 • 1-5-3 在IIS安裝本書的JSP範例程式
1-5 在IIS建立JSP開發環境 • Resin的Serlet/JSP容器可以搭配微軟IIS的Web伺服器,讓IIS也能夠支援JSP,成為JSP開發和執行環境,其分工為IIS負責處理HTML和圖片檔案,Resin處理JSP和Servlet程式,如下圖:
1-5-1 建立IIS的JSP開發環境 • Resin提供setup程式可以幫助我們執行IIS和Resin的環境設定,其步驟如下所示: • Step 1:停止IIS伺服器的Internet服務 • Step 2:設定IIS和Resin伺服器 • Step 3:新增【預設的網站】的虛擬目錄 • Step 4:修改Resin的resin.conf檔案 • Step 5:測試IIS的JSP開發環境
1-5-2 部署Resin成為Windows系統服務 • IIS建立的JSP開發環境需要先啟動Resin伺服器,我們可以將Resin伺服器安裝成為Windows系統服務,在啟動Windows作業系統時,就同時啟動Resin。 • 請開啟命令提示字元視窗,輸入下列指令來將Resin設為系統服務,如下所示: C:\>resin-3.0.9\httpd -install Enter
1-5-3 在IIS安裝本書的JSP範例程式-1 • 在書附光碟已經提供本書各章節的JSP範例程式,這是在IIS+Resin開發環境建立的JSP程式,其安裝步驟如下所示: • Step 1:在IIS安裝JSP開發環境。 • Step 2:將書附光碟的「wwwroot」資料夾下的所有檔案複製到「C:/inetpub/wwwroot」資料夾。
1-5-3 在IIS安裝本書的JSP範例程式-2 • Step 3:將書附光碟「Ch01」資料夾下的resin.conf檔案複製到「C:\resin-3.0.9\conf」資料夾,在resin.conf檔案設定各章節資料夾的Web應用程式,如下所示: <web-app id='/Ch04' document-directory='c:/inetpub/wwwroot/ch04'/> …………. <web-app id='/Ch14' document-directory='c:/inetpub/wwwroot/ch14'/> <web-app id='/Ch15' document-directory='c:/inetpub/wwwroot/ch15'/> • Step 4:重新啟動Resin或重新開機讓Web應用程式的設定生效。