用 Tomcat 和 Eclipse 開發 Web 應用程式

來源:互聯網
上載者:User

標籤:des   style   blog   http   java   使用   os   io   

用 Tomcat 和 Eclipse 開發 Web 應用程式

Apache Tomcat & Eclipse 平台是一款傑出的 Web 開發平台

若將 Eclipse 與 Apache Tomcat 直接整合,那麼將其用作 Web 開發平台就會更為容易。通過本文,瞭解如何設定 Eclipse 和 Apache Tomcat V5.5 來開發經典的 Hello World servlet。

4 評論:

Nathan A. Good, 作家兼軟體工程師, Freelance Developer

2007 年 5 月 25 日

  • 內容

編輯的注釋:本文是 Geoffrey Duck 在 2004 年 6 月發表的文章 “使用 Eclipse 作為 Jakarta Tomcat 的開發環境” 的後續篇。

所需的組件

Eclipse V3.2 Callisto 整合式開發環境 (IDE) 包括了用於 Web 開發及與伺服器整合的工具。所以,除了軟體開發工具箱 (SDK) 之外,只需安裝 Eclipse 和 Apache Tomcat。本文所使用的組件和版本如下所示:

表 1. 使用的組件和版本
組件 本文使用的版本
Eclipse Platform 3.2.2
Java EE 5 SDK 1.5.0_09
Apache Tomcat 5.5.20

Eclipse IDE 是一種開源 IDE,用作 Java™Server Pages (JSP) 和 Java 檔案的開發環境。如若同時安裝 Web 和 Java 2 Platform,Enterprise Edition (J2EE) 開發工具,那麼 Eclipse 將非常適合於建立 HTML、JSP 和 servlet。

運行 servlet 需要 Java SDK。最後,在 Java Servlet 和 Java Server Page 的正式參考實現中還會用到 Apache Tomcat,它是一款開源 Web 和 servlet 容器。

安裝

Eclipse 和 Tomcat 的安裝非常類似 — 都需要將歸檔檔案解壓縮到本地硬碟上的檔案夾。如果想要卸載任何一個,只需將解壓縮後的檔案所在的檔案夾刪除即可。

安裝 Eclipse

要安裝 Eclipse IDE,將從 Eclipse 網站下載的壓縮檔 (.zip 或 .tar.gz) 解壓縮,然後將壓縮後的檔案夾放入合適的位置。我會根據所使用的作業系統的約定來選擇安裝的位置。如果在 Macintosh 上安裝 Eclipse,我會將 Eclipse 檔案夾放在 Applications 檔案夾內。如果使用的是 Microsoft™ Windows™,我會將解壓縮後的檔案夾放入 C:\Program 檔案目錄。

下載和安裝了 Eclipse 後,就可以啟動它了。在開始建立 Web 項目之前,您需要安裝 J2EE 和 Web Development 外掛程式。所幸的是,藉助 Callisto Discovery 網站很容易安裝這些外掛程式。

安裝 Web 工具

Eclipse IDE 運行正常後,選擇 Help > Software Updates > Find and Install。這個選項會讓您可以下載和安裝 Web 工具,且無需轉到 Web 網站。

選擇 Search for New Features to Install,如下所示,然後單擊 Next

圖 1. 安裝/更新視窗

選擇 Callisto Discovery Site,如下所示,然後單擊 Next

圖 2. 選擇 Callisto Discovery Site

在 Callisto Discovery Site 下,選中 Web and J2EE Development 複選框。嚮導會隨即警告您,尚缺少依賴項。單擊 Select Required,警告消失。在 Graphical Editors and Frameworks and Models and Model Development 類別中的部分或全部組件會被選中( 3 所示),這些組件是安裝 Web 和 J2EE 外掛程式所必需的。

圖 3. 選擇要安裝的特性

單擊 Next 以繼續,針對所選的每個特性的認證協議也會繼而出現。如果您同意這些認證,就選擇接受,繼續嚮導的後續過程。當 IDE 完成外掛程式的安裝後,就會要求您重啟 Eclipse 以便更改能夠生效。在繼續之前,請務必重啟 IDE。

重啟了 IDE 後,開始開發動態 Web 項目所需的新特性就已準備完畢。

安裝 Tomcat

要安裝 Apache Tomcat,將所下載的歸檔檔案解壓縮並放入到目錄中,我將其放在了我的 C:\apps 目錄下以便於日後尋找。到目前所做的這些就足夠了,使用隨後顯示的 Eclipse 來啟動 Tomcat。

 

回頁首

建立一個新的 Web 項目

從 Eclipse IDE,選擇 File > New > Project 查看項目嚮導。在 Wizards 框,輸入 Web,而 New Project 視窗會過濾嚮導以只顯示匹配的那些項。利用這種方法可以很容易找到嚮導,而無需遍曆每一項。

從列表中選擇 Dynamic Web Project。我們要使用 Standard Web Project Wizard 來建立靜態 HTML Web 項目。 雖然您也可以在技術上使用 Tomcat 運行靜態 Web 網站,但 Web 服務器,比如 Apache Web Server 更適合於靜態內容。 專門為服務於靜態頁面而設計的 Web 服務器擁有的開銷更少,且專為此目的作了調優。

以運行庫為目標

在 Target Runtime 下,可以看到 <None>, 4 所示,由於您尚未為 Apache Tomcat 建立運行庫,所以需要單擊 New 開啟 New Target Runtime Wizard。從 Apache 檔案夾中選擇 Apache Tomcat V5.5, 5 所示,然後單擊 Next

圖 4.建立一個新的動態 Web 項目圖 5.建立一個新的伺服器運行庫

現在,您可以命名此運行庫,當然保留 Apache Tomcat V5.5 的預設名也可以。單擊 Browse 來定位用於 Apache Tomcat 配置的基本檔案夾(我的是 C:\apps\apache-tomcat-5.5.20, 6 所示)。若無特殊原因,我建議不要更改,保留 IBM® Java Runtime Environment (JRE) 版本作為工作台的預設 JRE。輸入有效目錄之後,單擊 Finish 建立運行庫配置。

圖 6. 定義伺服器位置運行庫配置

若您日後發現需要更改自己的運行庫配置,可以通過選擇Window > Preferences 實現此目的。在 filter 框,鍵入Runtime,列表就會在 Server 類別下顯示已安裝的運行庫配置設定。選擇您的 Apache Tomcat 運行庫,然後單擊 Edit 來更改名稱、目錄位置或 JRE 版本。

您還需要選擇是否想要轉換到 J2EE Perspective。我總是選擇是,因為這個透視圖包含了一些很有用的視圖,比如 Servers 視圖,可以協助您日後啟動和停止 Tomcat。通過選擇 Window > Show View 可以開啟 Servers 視圖。

添加伺服器

Servers 視圖目前沒有包含任何內容。此視圖針對的是應用程式和 Web 服務器;它讓您可以控制它們並監視其狀態。要從 IDE 直接控制 Tomcat,可通過從上下文敏感菜單選擇 New > Server 來向 Tomcat 添加引用。圖 7 所示的 New Server 嚮導將預設指向剛剛建立的那個 Apache Tomcat V5.5 運行庫。

圖 7. 定義新伺服器

單擊 Next。系統提問您是否想要向伺服器添加項目。選擇在之前的步驟中建立的那個項目,然後單擊 Add

圖 8. 向伺服器添加項目

單擊 Finish 關閉嚮導。現在,Servers 視圖包含了 Tomcat V5.5 Server,且其下還包含項目。

圖 9. Servers 視圖中的 Tomcat 伺服器建立樣本頁

測試新的動態 Web 項目以及 Tomcat 伺服器整合的最簡單方法是建立簡單的 JSP 並將其部署到 Tomcat。您可以通過選擇 File > New > Other建立新的 JSP 檔案,或者您也可以使用上下文敏感菜單,方法是按右鍵 Project Explorer 視圖中的項目名稱,並選擇 New > JSP

確保父目錄是 WebContent,並將此檔案命名為 index.jsp。單擊 Finish 使用預設範本建立頁面。如果單擊 Next,還可以選擇想要為新頁面選用的模板(比如 HTML 或 XHTML)。對於本測試而言,可保留預設選項。

如下所示的頁面代碼顯示了一個簡單的日期,這表明該代碼可以正常工作。

清單 1. index.jsp 的內容
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"    pageEncoding="ISO-8859-1"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"     "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>My Title</title></head><body><% java.util.Date d = new java.util.Date(); %><h1>Today‘s date is <%= d.toString() %> and this jsp page worked!</h1></body></html>
部署此頁

測試頁完成後,可使用 Eclipse 將其重新部署到 Apache Tomcat。在 Servers 視圖,注意到 State 已被設定成 Republish。這是因為自項目上次部署到伺服器以來,已經發生了很多更改。按右鍵此伺服器並從菜單中選擇 Publish。一旦項目被部署到此伺服器,狀態就會變成 Synchronized。

存在問題?

事情有時難免會出錯。要查看從 Tomcat 產生的錯誤,可以使用 Console 視圖。Console 捕獲源自您在 Servers 視圖中設定的伺服器的輸出。

項目成功部署且伺服器成功啟動之後,可以開啟瀏覽器並導航到 http://localhost:8080/[ProjectName]/(其中 [ProjectName] 是所建立的動態 Web 項目的名稱)。您所建立的新的 Web 頁會隨即出現,且日期應該是當前日期。如果重新整理頁面,日期還會隨之變化。

圖 10. index.jsp 在瀏覽器中的輸出Hello World servlet

您可以向您的項目添加 Java servlets 並加以部署。要為測試的目的而快速建立一個 servlet,可以使用 Servlet Wizard,方法是按右鍵 Project Explorer 視圖中的動態 Web 項目並選擇 New > Other。在 Web 資料夾下,選擇 Servlet,然後單擊 Next

將包名稱 com.example.servlets 添加到 Java Package 旁,將 HelloServlet 添加到 Class name 旁。單擊 Finish。作為樣本,可以保留預設值。Eclipse IDE 會產生一個 servlet 類。要查看應用當中的這個測試用 servlet,可以在 doGet() 方法中添加一行代碼來向 ResponseWriter 列印訊息。servlet 類應該類似如下所示的這個。

清單 2. HelloServlet.java 的內容
package com.example.servlets;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class for Servlet: HelloServlet * */ public class HelloServlet extends javax.servlet.http.HttpServlet      implements javax.servlet.Servlet {    /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#HttpServlet() */public HelloServlet() {super();}   /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request,      HttpServletResponse response) */protected void doGet(HttpServletRequest request, HttpServletResponse response)     throws ServletException, IOException {response.getWriter().write("Hello, world!");}  /* (non-Java-doc) * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request,      HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response)     throws ServletException, IOException {// TODO Auto-generated method stub}         }

添加此 servlet 後,Eclipse IDE 會提示項目有所更改。重新查看一下 Servers 視圖;Restart 現在出現在 Tomcat 伺服器旁的 Status 列。要重啟此伺服器,按右鍵 Servers 視圖中的此伺服器,然後選擇 Restart > Start。 開啟瀏覽器並導航到 http://localhost:8080/[ProjectName]/HelloServlet(其中 [ProjectName] 是動態 Web 項目的名稱)。文本 "Hello, world!" 將會出現在瀏覽器視窗中。您可以添加日期,將與 index.jsp 檔案中的類似的代碼添加到 doGet() 方法,並使用 Eclipse IDE 重新部署 servlet。

 

回頁首

結束語

不用離開 IDE 就可以啟動、停止和部署到伺服器,這種開發 JSP 和 servlet 的方法非常高效。Eclipse 和 Apache Tomcat 的組合則提供了一種簡單的Integration Environment,讓您可以加速開發。

參考資料學習
  • 您可以參閱本文在 developerWorks 全球網站上的 英文原文 。
  • 本文是 Geoffrey Duck 在 2004 年 6 月發表的文章 “使用 Eclipse 作為 Jakarta Tomcat 的開發環境” 的後續篇。
  • 獲得更多有關 Java servlet 技術 的資訊以開始構建功能強大的動態 Web 應用程式。
  • 訪問 Sun Microsystems,擷取有關 JavaServer Pages 技術 的資訊來為您的動態 Web 網站構建 JSP。
  • 參閱 Eclipse Web Tools Platform (WTP) Project,擷取有關使用 Eclipse 構建 Web 應用程式所需外掛程式的更多資訊。
  • 參閱 “Eclipse 推薦閱讀清單”。
  • 瀏覽 developerWorks 上所有的 Eclipse 文章 和 教程。
  • Eclipse 的新手應該首先參看 現在開始學習 Eclipse。
  • 通過查看 IBM developerWorks 的 Eclipse 項目資源 擴充您的 Eclipse 技能。
  • 要收聽面向軟體開發人員的有趣訪談和討論,請參考 developerWorks podcasts。
  • 有關 Eclipse platform 的簡介,請參看 “Eclipse 平台入門”。
  • 隨時關注 developerWorks 的 技術事件和網路廣播。
  • 查閱最近將在全球舉辦的面向 IBM 開放源碼開發人員的會議、展覽、網路廣播和其他 活動。
  • 訪問 developerWorks 的 開源軟體技術專區,擷取廣泛的 how-to 資訊、工具和項目更新以協助您利用開放源碼技術進行開發並將其與 IBM 的產品結合使用。
獲得產品和技術
  • 從該項目的官方 Web 網站下載 Eclipse,這個 IDE 功能強大(而且免費),並可用於 Java、JSP 等。
  • 下載 Apache Tomcat 並使用它來運行 Web 應用程式。
  • 從 Sun Microsystems 下載 Java EE 5 SDK。
  • 參考 IBM alphaWorks 上最新的 Eclipse 技術下載。
  • 下載 IBM 產品的評估版,實際體驗這些來自 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的應用程式開發工具和中介軟體產品。
  • 使用 IBM 試用軟體 改進您的下一個開源開發項目,這些軟體可以下載或通過 DVD 獲得。
討論
  • Eclipse Platform 新聞群組 應該是討論有關 Eclipse 的問題的首站(選擇它將會啟動預設的 Usenet 新聞讀寫器應用程式並開啟 eclipse.platform)。
  • Eclipse 新聞群組 中含有面向有興趣使用和擴充 Eclipse 的使用者的很多資源。
  • 通過參與 developerWorks blog 加入 developerWorks 社區。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.