用 Tomcat 和 Eclipse 開發 Web 應用程序

用 Tomcat 和 Eclipse 開發 Web 應用程序

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

若將 Eclipse 與 Apache Tomcat 直接集成,那麼將其用做 Web 開發平臺就會更爲容易。經過本文,瞭解如何設置 Eclipse 和 Apache Tomcat V5.5 來開發經典的 Hello World servlet。html

Nathan A. Good, 做家兼軟件工程師, Freelance Developerlinux

2007 年 5 月 25 日web

  • +內容

編輯的註釋:本文是 Geoffrey Duck 在 2004 年 6 月發表的文章 「使用 Eclipse 做爲 Jakarta Tomcat 的開發環境」 的後續篇。apache

所需的組件

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。tomcat

運行 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

在 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 項目
建立一個新的動態 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 服務器
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 在瀏覽器中的輸出
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 的組合則提供了一種簡單的集成環境,讓您能夠加速開發。

參考資料

學習

得到產品和技術

  • 從該項目的官方 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 社區。
相關文章
相關標籤/搜索