JSP程式設計 基本概論 歐陽芳泉 Fang-Chuan Ou Yang ouyang@cyu.edu.tw Good morning everybody , today I want to present is about using grid service technology on mobile learning platform . Recently , Grid Computing has become a well-known information technology , and the standard of Grid Service bases on Grid Computing is developed .On the other hand , network-based education likes e-learning or m-learning becomes more popular , too . Although e-learning and Grid Service are two distinct areas , e-learning increasingly addresses learning resource sharing and reuse , interoperability , collaboration , and various modes of interactions . And it is where Grid and Grid Service come up . In our research , we present a novel architecture , it employs Grid Service core technology to build up our mobile learning platform . We call this architecture “m-learning Grid” . In next several sections , I will describe the architecture in detail , and report our experimental result . Fang-Chuan Ou Yang ouyang@cyu.edu.tw
課程摘要 Part.1 導論 Part.2 Tomcat的設定 Part.3 JSP基本概念
Part.1 導論
導論 (1/8) Client / Server: Client為服務的需求者;Server為服務的提供者。 request response
導論 (2/8) What’s “tier” ? 在電腦硬體上,Tier係指一個實體的元件將硬體的架構分割成為一至多個子層次 (sub-layer)。 在軟體上,Tier係指一個屬於特定領域的軟體,而不同於其他軟體。 最終的目的是將所有的tiers藉由interface、middleware整合起來。
導論 (3/8) Internet Three-tier Client / Server architecture: 在Client / Server中,亦即使用者系統與資料庫之間加入一個中介層 (middle tier)。 Presentation tier Server Tier Database layer Internet
導論 (4/8) Three-tier Client / Server architecture (續): Three-tier主要目的為降低Client Side的運算負擔,成為一”thin client”。 Middle tier的實作上有很多型式,例如:transaction processing monitors, message servers application servers…
導論 (5/8) Application Server in Three-tier : 不負責GUI,而是負責分享商業邏輯,運算以及連接資料庫。 改善了在C/S中商業邏輯及運算集中於Client而難以維護的問題。
導論 (6/8) What’s middleware ? 藉由標準(standards)或協定(protocols)來作為不同硬體間的橋樑。 Fundamental middleware : low-level system, such as network operating system (NOS) Applied middleware: it usually followed standards or specs. such as CORBA, RMI, ODBC User refined middleware: based on applied middleware to customized a particular system.
導論 (7/8) Modern C/S Business Application Architecture: 分為使用者介面層、商業邏輯層、資料層。 User interface Business function data Web HTTP Server Web Application Server CORBA Server payment server, and so on
導論 (8/8) Web Server、Http Server以及AP Server: : : Internet Web Server Client Http server 80 Service xxxx Application Server Service : : Service
Part.2 Tomcat的設定
Tomcat的設定 (1/5) Tomcat安裝:http://jakarta.apache.org/ Tomcat即為一種Servlet 和 JSP container。能夠執行Servlet與JSP的環境;Tomcat亦實作了HTTP1.1的規範,成為能夠單獨運作的Web Server。 安裝步驟: 安裝JDK,設定環境變數JAVA_HOME=JDK安裝目錄。 安裝Tomcat,選擇性安裝成Service type。 測試http://127.0.0.1:8080
Tomcat的設定 (2/5) Tomcat設定: /conf/server.xml設定有關Tomcat的組態,例如:connect port、virtual directory等等。 …/WEB-INF/放置Web應用程式相關檔案,例如:web.xml可以設定web應用程式的環境變數。 …/WEB-INF/classes放置servlet或Javabeans。
Tomcat的設定 (3/5) Tomcat設定 (續): /conf/server.xml設定virtual directory: 加入下列此段設定- <Context path="/examples" docBase="webapps/examples" crossContext="false" debug="0" reloadable="true" > </Context>
Tomcat的設定 (4/5) Tomcat與Apache的整合: 整合Apache與Tomcat,把靜態的網頁交給Apache處理,動態的網頁(JSP)則交給Tomcat處理,有下列好處: -Apache在處理靜態網頁時比Tomcat還要快 -Apache是一個功能強大且完整的網頁伺服器你原來的網站架構在Apache上,你想保留原來靜態的網頁並加入由Tomcat處理動態網頁的功能; -或是你想用Tomcat來取代原來在Apache上的CGI程式
Tomcat的設定 (5/5) Tomcat與Apache的整合 (續):
Part.3 JSP基本概念
JSP基本概念 (1/22) JSP的基本概念: JSP是基於Java™2 Platform, Enterprise Edition (J2EE) 的技術,用來產生動態的網頁內容,例如:HTML, DHTML, XHTML, XML等等。 JSP的前身為Servlet,Servlet亦為J2EE的技術。 JSP文件以主字為基礎 (Text-Based),描述了如何處理在HTTP協定下的Request,以及產生Response。 檔案名稱為副檔名*.jsp。
JSP基本概念 (2/22) Java技術: J2ME J2SE J2EE
JSP基本概念 (3/22) JSP之於J2EE:
JSP基本概念 (4/22) JSP之於J2EE (續):
JSP基本概念 (5/22) Servlet: Sun Microsystems在1997年3月由JavaSoft部門將Servlets API定案並推出Servlets API 1.0。Servlets的功能包含了當時的CGI (Common Gateway Interface) 與Netscape Server API (NSAPI)的產品功能,為100% Pure Java的Server-Side程式。
JSP基本概念 (6/22) Servlet的特色: 可攜性:跨平台,Write Once、Use Anywhere的。 強大的功能:完全運用Java API的威力,包含網路存取、多執行緒 (Multi-Thread)、影像處理、RMI (Remote Method Invocation)、分散式伺服端元件 (Enterprise Java Bean)、物件序列化 (Object Serialization) 等。若要連結資料庫,則可透過JDBC連結各種資料庫。 效能:Servlets在載入執行後,物件實體 (instance) 會保留在伺服器的記憶體中,如果有客戶端請求 (request) 時,伺服器會呼叫同一個實體來服務客戶端的請求,因此在效率上大幅度超越CGI程式。 安全性:Servlets具有型別檢查 (Strong Type Checking) 與垃圾回收 (Gargabe Collection) 的機制,確保Servlets程式的安全與伺服器的穩定性。另外透過例外控制 (Exception-Handling),避免問題程式導致伺服器毀損 (Crash)。
JSP基本概念 (7/22) Servlet的執行原理: 當Servlets載入時,Servlets Engine可以在同一個JVM上執行所有的Servlets ,除了本身的私有資料受到保護外,在Servlets間也可以共用資料。
JSP基本概念 (8/22) Servlet的執行原理 (續): 客戶端的需求並不是直接和Servlet溝通,而是透過Web Server或AP Server來負責管理;此外,Servlet的載入、起始化、 終結亦是由Servlet Container/Engine來負責。 每一個傳送至Servlet的需求會自動以一個Thread來處理,而不像CGI會產生一個原生的實例物件。
JSP基本概念 (9/22) Servlet的執行原理 (續):
JSP基本概念 (10/22) Servlet的執行原理 (續): Servlet Container/Engine Client 1 Thread-1 Servlet_1 Thread-2 Servlet_1 instance Client 2 Servlet Container/Engine
JSP基本概念 (11/22) Servlet實測 : 安裝J2EE平台或Servlet Container。前者會自動設定好lib classpath。 撰寫Servlet並compile。如使用Tomcat可於…/common/lib/找到servlet-api.jar,將其設入classpath。 將編譯好的檔案放入…/WEB-INF/classes下
JSP基本概念 (12/22) Servlet實測 (續):HelloServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>My first servlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Hello Servlet!</h1>"); out.println("</body>"); out.println("</html>"); }
JSP基本概念 (13/22) Servlet實測 (續):web.xml 設定web.xml,於<web-app>內加入下列兩段: <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <url-pattern>/servlet/HelloServlet</url-pattern> </servlet-mapping>
JSP基本概念 (14/22) Servlet實測 (續): 其中http://127.0.0.1:8080為Tomcat的位置;/myweb為一虛擬目錄;/servlet/HelloServlet為Servlet對映路徑(Servlet mapping)。
JSP基本概念 (15/22) JSP (Java Server Page): Java Server Pages規格(by now v1.2)提供WEB應用程式發展者一個架構,這個架構使用HTML與XML樣版和Java程式碼來產生伺服器端動態的內容,具有安全、高效率與跨平台的特性。 JSP規格從1999年6月發表之後,有許多供應商已經將JSP引進Servlet Engine和應用程式伺服器中,例如Apache Group的Jakarta Project、Caucho Technology的Resin、Evermind的Orion Application Server等等 。
JSP基本概念 (16/22) JSP的特色: Write Once, Run Anywhere 搭配可重複使用的元件 網頁內容的產生和顯示分離 採用標籤化頁面開發 支援多層次企業應用架構 *根據Sun Microsystems公司的說法, JSP應該只負責展現層的部份,而商業邏輯層的部份,例如資料處理、運算、分析與資料庫連結處理,都要放在JavaBeans元件中
JSP基本概念 (17/22) JSP規格中提出之MVC:
JSP基本概念 (18/22) JSP 的運作流程:
JSP基本概念 (19/22) JSP v.s. Servlet: JSP和Servlet在技術原理上是相通的; Servletjavax.servlet.* JSPjavax.servlet.jsp.* JSP改善了Servlet撰寫複雜的缺點,在撰寫簡化許多。
JSP基本概念 (20/22) JSP v.s. ASP:
JSP基本概念 (21/22) JSP 實測: 利用文字編輯器撰寫JSP程式,副檔名需為*.jsp。 將*.jsp放入Tomcat的虛擬目錄下。 開啟瀏覽器執行: http://127.0.0.1:8080/myweb/index.jsp 其中http://127.0.0.1:8080為Tomcat的位置;/myweb為一虛擬目錄;index.jsp為JSP檔案名稱。
JSP基本概念 (22/22) JSP 實測 (續):index.jsp <html> <head> <title>My first JSP</title> </head> <body> <% out.print("Hello JSP!<br>"); out.print("現在時間:"); out.print(new java.util.Date()); %> </body> </html>
Q & A