Linux Tomcat 簡介

現在,基於Web的應用愈來愈多,傳統的Html已經知足不了現在的需求。咱們須要一個交互式的Web,因而便誕生了各類Web語言。如Asp,Jsp,Php等。固然,這些語言與傳統的語言有着密切的聯繫,如Php基於C和C++語言,Jsp基於Java語言。本文所要介紹的Tomcat便是一個Jsp和Servlet的運行平臺。 

一:什麼是Jsp和Servlet 

Jsp(JavaServer Page)是在普通Html中嵌入了Java代碼的一個腳本,在這一點上,它與其它的腳本語言(如Php)同樣,但它與其它語言不一樣的是:其它腳本語言由服務器直接解釋這個腳本,而Jsp則由Jsp容器(如Tomcat)首先將其轉化爲Servlet,而後再調用Javac將Servlet編譯爲Class文件。最終,服務器解釋的是Class文件。那麼什麼是Servlet呢?Servlet實際上是一個特殊的Java類,Servlet類通常從HttpServlet類繼承而來,在這個類中至少要實現doGet或者doPost函數,在這兩個函數中處理來自客戶的請求,而後將結果返回。Servlet和Jsp是Sun公司J2EE架構中重要的部分。因爲基於Java語言,所以其能夠方便的調用功能強大的Java API(如JDBC)。 

二:Tomcat概述 

Tomcat是一個免費的開源的Serlvet容器,它是Apache基金會的Jakarta項目中的一個核心項目,由Apache,Sun和其它一些公司及我的共同開發而成。因爲有了Sun的參與和支持,最新的Servlet和Jsp規範總能在Tomcat中獲得體現。Tomcat被JavaWorld雜誌的編輯選爲2001年度最具創新的java產品,可見其在業界的地位。 

Tomcat 最新版本是4.0x。4.0x與3.x的架構不一樣,而是從新設計的。Tomcat4.0x中採用了新的Servlet容器:Catalina,完整的實現了Servlet2.3和Jsp1.2規範。Tomcat提供了各類平臺的版本供下載,能夠從http://jakarta.apache.org上下載其源代碼版或者二進制版。因爲Java的跨平臺特性,基於Java的Tomcat也具備跨平臺性。 

與傳統的桌面應用程序不一樣,Tomcat中的應用程序是一個WAR(Web Archive)文件。WAR是Sun提出的一種Web應用程序格式,與JAR相似,也是許多文件的一個壓縮包。這個包中的文件按必定目錄結構來組織:一般其根目錄下包含有Html和Jsp文件或者包含這兩種文件的目錄,另外還會有一個WEB-INF目錄,這個目錄很重要。一般在WEB-INF目錄下有一個web.xml文件和一個classes目錄,web.xml是這個應用的配置文件,而classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)。一般這些所依賴的類也能夠打包成JAR放到WEB-INF下的lib目錄下,固然也能夠放到系統的CLASSPATH中,但那樣移植和管理起來不方便。 

在Tomcat中,應用程序的部署很簡單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會自動檢測到這個文件,並將其解壓。你在瀏覽器中訪問這個應用的Jsp時,一般第一次會很慢,由於Tomcat要將Jsp轉化爲Servlet文件,而後編譯。編譯之後,訪問將會很快。另外Tomcat也提供了一個應用:manager,訪問這個應用須要用戶名和密碼,用戶名和密碼存儲在一個xml文件中。經過這個應用,輔助於Ftp,你能夠在遠程經過Web部署和撤銷應用。固然本地也能夠。 

Tomcat不只僅是一個Servlet容器,它也具備傳統的Web服務器的功能:處理Html頁面。可是與Apache相比,它的處理靜態Html的能力就不如Apache。咱們能夠將Tomcat和Apache集成到一塊,讓Apache處理靜態Html,而Tomcat處理Jsp和Servlet。這種集成只須要修改一下Apache和Tomcat的配置文件便可。 

另外,Tomcat提供Realm支持。Realm相似於Unix裏面的group。在Unix中,一個group對應着系統的必定資源,某個group不能訪問不屬於它的資源。Tomcat用Realm來對不一樣的應用(相似系統資源)賦給不一樣的用戶(相似group)。沒有權限的用戶則不能訪問這個應用。Tomcat提供三種Realm,1:JDBCRealm,這個Realm將用戶信息存在數據庫裏,經過JDBC得到用戶信息來進行驗證。2:JNDIRealm,用戶信息存在基於LDAP的服務器裏,經過JNDI獲取用戶信息。3:MemoryRealm,用戶信息存在一個xml文件裏面,上面講的manager應用驗證用戶時即便用此種Realm。經過Realm咱們能夠方便地對訪問某個應用的客戶進行驗證。 

在Tomcat4中,你還能夠利用Servlet2.3提供的事件監聽器功能,來對你的應用或者Session實行監聽。Tomcat也提供其它的一些特徵,如與SSL集成到一塊,實現安全傳輸。還有Tomcat也提供JNDI支持,這與那些J2EE應用服務器提供的是一致的。說到這裏咱們要介紹一下一般所說的應用服務器(如WebLogic)與Tomcat有何區別。應用服務器提供更多的J2EE特徵,如EJB,JMS,JAAS等,同時也支持Jsp和Servlet。而Tomcat則功能沒有那麼強大,它不提供EJB等支持。但若是與JBoss(一個開源的應用服務器)集成到一塊,則能夠實現J2EE的所有功能。既然應用服務器具備Tomcat的功能,那麼Tomcat有沒有存在的必要呢?事實上,咱們的不少中小應用不須要採用EJB等技術,Jsp和Servlet已經足夠,這時若是用應用服務器就有些浪費了。而Tomcat短小精悍,配置方便,能知足咱們的需求,這種狀況下咱們天然會選擇Tomcat。 

基於Tomcat的開發其實主要是Jsp和Servlet的開發,開發Jsp和Servlet很是簡單,你能夠用普通的文本編輯器或者IDE,而後將其打包成WAR便可。咱們這裏要提到另一個工具Ant,Ant也是Jakarta中的一個子項目,它所實現的功能相似於Unix中的make。你須要寫一個build.xml文件,而後運行Ant就能夠完成xml文件中定義的工做,這個工具對於一個大的應用來講很是好,咱們只需在xml中寫不多的東西就能夠將其編譯並打包成WAR。事實上,在不少應用服務器的發佈中都包含了Ant。另外,在Jsp1.2中,能夠利用標籤庫實現Java代碼與Html文件的分離,使Jsp的維護更方便。 

Tomcat也能夠與其它一些軟件集成起來實現更多的功能。如與上面提到的JBoss集成起來開發EJB,與Cocoon(Apache的另一個項目)集成起來開發基於Xml的應用,與OpenJMS 

集成起來開發JMS應用,除了咱們提到的這幾種,能夠與Tomcat集成的軟件還有不少。 

三:展望 

Tomcat確實是一個很好的工具,不只僅由於其免費,功能強大,更由於其開放性。現在,開源軟件愈來愈收到人們的重視,Linux就是一個成功的典型。人們再也不限於只使用軟件,並且已經關心起軟件的具體實現。咱們有理由相信Tomcat會走得更遠。java

 

 

本文來源: 收集、整理來自互聯網web

相關文章
相關標籤/搜索