Tomcat 4/JSP入門指南

來源:互聯網
上載者:User
隨著Catalina Servlet引擎的出現,Tomcat第四版號稱它的效能得到提升,使得它成為一個值得考慮的Servlet/JSP容器。然而,可以協助你開始瞭解Tomcat的檔案資源卻很少,只有很少的一些書籍,而且在Jakarta網站上的一些資料也不是很清楚。

讓我們來一步一步地瞭解Tomcat的安裝過程,然後討論一下使用一些Tomcat 4/JSP的功能來建構Web應用軟體。

什麼是Tomcat?

Tomcat是一個開放原始碼、運行servlet和JSP Web應用軟體的基於Java的Web應用軟體容器。Tomcat由Apache-Jakarta子項目支援並由來自開放性原始碼Java社區的志願者進行維護。Tomcat Server是根據servlet和JSP規範進行執行的,因此我們就可以說Tomcat Server也實行了Apache-Jakarta規範且比絕大多數商業應用軟體伺服器要好。

安裝Tomcat 4

要開始使用Tomcat 4,你至少要下載Java Development Kit (JDK) 1.2版和Tomcat 4安裝包,他們分別是ZIP檔案和Windows安裝資料包。一旦你安裝了這兩個資料包,你必須加入兩個環境變數:JAVA_HOME和TOMCAT_HOME。JDK將安裝在JAVA_HOME目錄之中,而Tomcat 4則將安裝在TOMCAT_HOME目錄之中。

如果是通過Windows安裝程式進行安裝的,那麼你可以使用菜單選項來啟動Tomcat,或者是開啟一個命令提示視窗,進入TOMCAT_HOME/bin目錄,運行startup.bat/sh檔案。然後開啟一個瀏覽器並輸入URL http://localhost:8080。預設的Tomcat頁面將出現在你的眼前。

Web應用軟體初級讀本

在我們開始之前,我們來回顧一下一個Web應用軟體所包含的組件。Java Servlet規範將Web應用軟體定義程式為servlets,HTML頁面,類和其他在來自多個行銷商的多個容器上捆綁並啟動並執行資源的一個集合。在Tomcat中,這些資源被放置在TOMCAT_HOME/webapps檔案夾下面的一個特殊的目錄結構之中。對於一個Web應用軟體的樣本(myapp)來說這個目錄結構會是這樣:

TOMCAT_HOME/webapps/myapp/WEB-INF/classes/lib

Myapp目錄被視為是Web應用軟體的根目錄,所有的JSP,HTML,JavaScript檔案和其他資源都位於這個目錄之下。WEB-INF目錄中包含應用軟體所使用的資源,但是WEB-INF卻不在公用主目錄之中。在這個目錄中所包含問的檔案都不能被客戶機所訪問。類目錄中(在WEB-INF下)包含運行myapp時所需的servlets,beans和效用類。在一些執行個體(log4j)之中,屬性檔案被放置在類的目錄之中。Lib目錄(在WEB-INF下)包含有Java archive files (JARs),例如JDBC磁碟機或標籤庫,這是myapp所依靠的。如果一個類出現在JAR檔案中和在類的目錄中,類載入器會載入位於類目錄中的那一個。

Servlets, JSPs和ServletContext

Java Servlet是一個獨立於平台的組件,它使用由JSP/Servlet容器管理的請求/回應模型來與Web客戶機進行溝通。要編寫一個servlet,GenericServlet和HttpServlet類都會被擴充,GenericServlet具有一個abstract服務方式必須得到實現。HttpServlet擴充了GenericServlet並且要求你實現下面方式之中的一個:doGet, doPost, doPut, doDelete, init, destroy和getServletInfo。在典型的情況下實現的是doGet和doPost方式。

有價值的參考
我們參考了James Goodwill的"Apache Jakarta-Tomcat,"一書中的一章,作為這些文章的資訊來源。目前這是唯一的一本特別介紹Tomcat的參考書籍,來自Wrox, Sams和Wiley的其他書籍也會很快問世。

Servlet具有下面的生存周期:

1.當Servlet被例舉時,init方式被調用。

2.Servlet可以服務零多個請求。

3.Web應用軟體被關閉,致使destroy方式被調用並允許對象被回收。

Init方式可以被用來通過ServletConfig參數給Servlet的屬性初始化。在web.xml檔案中設定的初始化參數被傳遞至ServletConfig之中的init方式並可以通過getInitParameter方式被訪問。

Java伺服器頁面允許你通過將Java邏輯嵌入至要求的檔案中來產生動態HTML頁面。JSP是HTML,特殊標籤和內嵌Java代碼的一個混合,每一個JSP都從這個混合被翻譯為一個servlet,這個servlet被用來在需要JSP的時候發送HTML回到客戶機。Servlet的所產生的Java代碼和類檔案被儲存在預設為TOMCAT_HOME/work的一個特定位置,這個目錄在Context元素中被指定。在很多的執行個體之中,如果一個JSP頁面沒有像預期的那樣進行運作或是如果一個具有行編號的stack trace被顯示,你就可以查看所產生的代碼來協助確定所出現的問題。

這裡是某些JSP可用的隱含變數:

  • request – 向HttpServletRequest作參考
  • response – 向HttpServletResponse作參考
  • pageContext – 在JSP之中提供向名稱空間的訪問
  • session – 向HttpSession作參考
  • application – 向ServletContext作參考
  • config – 向ServletConfig作參考
  • page – 向當前被訪問的JSP執行個體作參考,相似地,對這個JSP的所產生的Servlet使用這個變數
  • exception – 向由JSP產生的例外作參考,只在isErrorPage設定為真時在JSP上可用

標準JSP標籤是:

  • <jsp:useBean> – 允許你在頁面,請求,session或是應用軟體的範圍內中放置或尋找一個bean(這個標籤對於保持狀態非常有用)。
  • <jsp:setProperty> – 允許你對已經定義的bean設定屬性。
  • <jsp:getProperty> – 擷取一個bean的屬性的值,將其轉換為一個字串,並放置在輸出資料流之中。
  • <jsp:param> – 向包含前進和插入等標準活動提供參數和值。
  • <jsp:include> – 在請求時間加入一個頁面代替@include指示的翻譯時間。
  • <jsp:forward> –在現有的Web應用軟體中使請求前進到另一個資源。
  • <jsp:plugin> – 使能JSP創造者使用客戶機瀏覽器的獨立架構來產生HTML,可以導致指定的applet或是組件的下載和後續執行行為(標籤的值被一個<object>或<embed>標籤所取代)。

ServletContext可以被認為是對於Web應用軟體的一個整體性儲存地區。每一個Web應用軟體都具有ServletContext。儲存在ServletContext之中的對象將一直被保留,除非是被刪除。

Web應用軟體樣本

建構一個Web應用軟體樣本

現在我們來建構一個包含有一個servlet,一個bean和幾個JSP頁面的Web應用軟體樣本。這個Web應用軟體名為myapp,且檔案將存在於TOMCAT_HOME/webapps/myapp目錄之中。

./ 目錄包含所有的JSP檔案,如表A所示。index.jsp頁面使用<jsp:forward>標籤來有效地將form.jsp設定為myapp的首頁。form.jsp頁面使用<jsp:include>標籤來加入導航和兩個分開的表單來表單頁面得到完善。注意第三個<jsp:include>標籤如何使用<jsp:param>標籤來將一個參數傳遞給jsp_form.jsp頁面的。servlet_form.jsp頁面是一個在jsp_form.jsp頁面提交給另一個JSP頁面時使用servlet做表單處理的例子。company_name.jsp頁面使用從jsp_form.jsp頁面提交的參數來建構公司的彩色標識。bean_values.jsp頁面使用<jsp:useBean>標籤在應用軟體的範圍內來儲存/恢複/修改bean的屬性。variables.jsp頁面顯示了使用JSP之中一些可用的隱含變數的例子。

./WEB-INF/classes/myapp目錄之中包含了應用軟體所使用的Servlet和bean的類檔案,如表B所示。MyBean類具有一個屬性名稱為stringValue。bean_values.jsp頁面被用於在應用軟體的範圍內儲存這個bean的一個執行個體。CompanyNameServlet被作為servlet_form.jsp頁面上提交表單的目的地。這個servlet根據所請求的參數來產生HTML輸出。注意我們忽略了init方式來設定web.xml檔案中給出的companyName屬性。讓在一個方式中的doGet()或是doPost()執行調用其它的執行則是一個普遍的慣例。

./WEB-INF目錄包含有web.xml檔案,如表C所示,它定義了servlet和一個內容參數。注意init-param指定了公司的名稱。這個參數從CompanyNameServlet的init方式中的ServletConfig解壓而來。內容參數可以在variables.jsp頁面之中被訪問。

要運行myapp應用軟體,將檔案放置在TOMCAT_HOME/webapps/myapp目錄之中並啟動Tomcat。Tomcat一旦被啟動,在瀏覽器中鍵入URL http://localhost:8080/myapp。這樣將會調出帶有form.jsp內容的index.jsp頁面。

總結

這個關於Tomcat的簡要介紹可以協助工作的開展,但是對於JSP和Tomcat的配置來說遠遠不止是這篇文章裡我們談到的這些內容而已。Tomcat具有一個位於TOMCAT_HOME/conf目錄之中的server.xml檔案,它允許了更進一步客制化,提供了一個管理者應用軟體和名為Valves的請求—預先處理程式,他還可以實現過濾器。Tomcat整合了log4j和Apache Web伺服器,為你的Web應用軟體提供了更加健全的解決方案。總的來說,Tomcat是一個十分出色的選擇,特別是它又是免費的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.