標籤:
Apache全球應用最廣泛的http伺服器,免費,出自apache基金組織
Tomcat應用也算非常廣泛的網頁伺服器,支援部分j2ee,免費,出自 apache基金組織
JBoss開源的應用伺服器,比較受人喜愛,免費(文檔要收費)
Weblogic應該說算是業界第一的app server,全部支援j2ee1.4, 對於開發人員,有免費使用一年的許可證,用起來比較舒服,出資BEA公司
,呵呵,我用的就是這個,所以比較熟悉
jboss也支援j2ee
JBoss和WebLogic都含有Jsp和Servlet容器,也就可以做web容器,
JBoss和WebLogic也包含EJB容器,是完整的J2EE應用伺服器
tomcat 只能做jsp和servlet的container
一、tomcat
Tomcat 伺服器是一個免費的開放原始碼的Web 應用程式伺服器,它是Apache 軟體基金會(Apache
Software Foundation)的Jakarta 項目中的一個核心項目,由Apache、Sun 和其他一些公司及個
人共同開發而成。由於有了Sun 的參與和支援,最新的Servlet 和JSP 規範總是能在Tomcat 中得
到體現,Tomcat 5 支援最新的Servlet 2.4 和JSP 2.0 規範。因為Tomcat 技術先進、效能穩定
,而且免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的
Web 應用程式伺服器。
Tomcat 很受廣大程式員的喜歡,因為它運行時佔用的系統資源小,擴充性好,支援Server Load Balancer與郵
件服務等開發應用系統常用的功能;而且它還在不斷的改進和完善中,任何一個感興趣的程式員
都可以更改它或在其中加入新的功能。
Tomcat 是一個小型的輕量級應用伺服器,在中小型系統和並發訪問使用者不是很多的場合下被普遍
使用,是開發和調試JSP 程式的首選。對於一個初學者來說,可以這樣認為,當在一台機器上配
置好Apache 伺服器,可利用它響應對HTML 頁面的訪問請求。實際上Tomcat 部分是Apache 服務
器的擴充,但它是獨立啟動並執行,所以當你運行tomcat 時,它實際上作為一個與Apache 獨立的進
程單獨啟動並執行.
這裡的訣竅是,當配置正確時,Apache 為HTML頁面服務,而Tomcat 實際上運行JSP 頁面和
Servlet。另外,Tomcat和IIS、Apache等Web伺服器一樣,具有處理HTML頁面的功能,另外它還是
一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的預設模式。不過,Tomcat處理靜態HTML的
能力不如Apache伺服器。
相關串連:
http://tomcat.apache.org/ 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整合的軟體還有很多。
二、Jboss
JBoss是全世界開發人員共同努力的成果,一個基於J2EE的開放原始碼的應用伺服器。 因為JBoss代
碼遵循LGPL許可,你可以在任何商業應用中免費使用它,而不用支付費用。JBoss支援EJB 1.1和
EJB 2.0 EJB3.0的規範,它是一個管理EJB的容器和伺服器。類似於Sun‘s J2SDK Enterprise
Edition(J2EE),JBoss的目標是一個原始碼開放的J2EE環境。但是JBoss核心服務僅是提供EJB
伺服器。JBoss不包括serverlers/JSP page 的WEB容器,當然可以和Tomcat或Jetty綁定使用。
JBoss還具有如下六大優點:
1、JBoss是免費的,開放原始碼J2EE的實現,它通過LGPL許可證進行發布。
2、JBoss需要的記憶體和硬碟空間比較小。
3、安裝非常簡單。先解壓縮JBoss打包檔案再配置一些環境變數就可以了。
4、JBoss能夠"熱部署",部署BEAN只是簡單拷貝BEAN的JAR檔案到部署路徑下就可以了。如果沒有
載入就載入它;如果已經載入了就卸載掉,然後LOAD這個新的。
5、JBoss與Web伺服器在同一個Java虛擬機器中運行,Servlet調用EJB不經過網路,從而大大提高運
行效率,提升安全效能。
6、使用者可以直接實施J2EE-EAR,而不是以前分別實施EJB-JAR和Web-WAR,非常方便。
JBoss的安裝和配置可以直接拷貝使用,但是要改動 %JBoss-HOME%/bin/run.bat裡JAVA-HOME的設
置,改成本機JDK的目錄。運行run.bat來啟動JBoss
關閉JBoss:關閉JBoss的 DOS 視窗或按"CTRL + C"
JBoss的目錄結構
1、bin:開始和停止JBoss的地方。
其中有兩個主要的批次檔:run.bat和shutdown.bat。要啟動JBoss只要執行run.bat檔案即可
;要停止JBoss必須執行shutdown.bat。
注意,shutdown.bat檔案直接執行並不會自動停止JBoss,它必須要輸入參數,參數意義如下:
h顯示協助資訊;D設定系統屬性;-停止處理選項;s停止用JNDI URL指定的遠程服務;n通過制定
JMX名字來停止服務;a適配到指定的JNDI名稱的遠程服務;u指定使用者名稱稱;p指定使用者密碼;S停
止伺服器;e從虛擬機器退出;H暫停。
一般,我們使用S選項來停止伺服器。即執行shutdown.bat -S。
2、docs:放置JBoss的例子、測試指令碼和各種指令碼設定檔的DTD。
3、lib:放置JBoss所需要的部分jar包檔案。
4、client:放置EJB用戶端運行時所需要的jar包。
5、server:放置各啟動類型的伺服器端EJB配置所需要的檔案等。
6、backup
以80連接埠服務
修改這個檔案: {%JBOSS_HOME%}/server/default/deploy/jbossweb-tomcat41.sar/META-
INF/jboss-service.xml
在"8080"的配置後加入以下代碼
<!-- A HTTP/1.1 Connector on port 80 -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="80" minProcessors="5" maxProcessors="100"
enableLookups="true" acceptCount="10" debug="0"
connectionTimeout="20000" useURIValidationHack="false"/>
重新啟動JBoss就OK了
JBoss的啟動過程
設定環境變數 JBOSS_CLASSPATH (可以自己加上安全管理器和xml解析器)
a) %JBOSS_CLASSPATH%;
b) %JAVA_HOME%/lib/tools.jar;
c) run.jar
d) ../lib/crimson.jar;
設定啟動參數JAXP(xml解析器和相應工廠)
啟動
設定配置資訊
讀取設定檔JBoss.properties,儲存在系統屬性中(System.properties)
設定預設屬性jboss.home和java.security.auth.login.config
建立MBeanServer.的執行個體:
把設定檔和補丁檔案所在的目錄指定給特定的遠程類載入器Mlet
載入儲存設定檔(mlet會自動在設定檔目錄中尋找)
初始化並啟動MBean
佈建服務ConfigurationService
載入設定檔
儲存配置
服務控制ServiceControl
初始化服務程式(init方法)
啟動服務程式(start方法)
在JBOSS中發布檔案
1、製作JSP的war部署檔案
用"jar cvf hello.war index.jsp main.jsp"的方式產生把index.jsp和main.jsp檔案加入到
hello.war中。把產生的hello.war拷貝到jboss安裝目錄/server/default/deploy/下,部署成功
。用"http://localhost:8080/hello/"或"http://localhost:8080/hello/index.jsp"這兩個地址
進行測試。
2、製作Servlet的war部署檔案
A、用"javac -classpath "%CLASSPATH%;%jboss_home%
/server/default/lib/javax.servlet.jar" HelloWorld.java"的形式編譯HelloWorld.java(這
是一個Servlet)得到HelloWorld.class
B、寫一個web.xml設定檔
代碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>hello.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>
每個標記必須小寫,否則會出錯。
C、先在c:/servlet下建立一個web-inf目錄,在目錄中放入web.xml檔案。
D、在web-inf目錄下建立一個classes目錄,放入編譯好的HelloWorld.class檔案
E、在c:/servlet下執行jar cvf hello.war *.*,很快就產生了一個名為hello.war的檔案,接著
把hello.war複製到jboss的安裝目錄/server/default/deploy/下完成部署。
3、也可以不打包,把檔案放在deploy下的同名檔案夾下也可以。比如原來是製作成hello.war文
件,可以建立一個名稱為hello.war的檔案夾,把要發布的檔案拷貝到這個目錄底下也發行就緒成
功。
補充
1、JBoss的預設連接埠是8080
3、對於NT和Win2000系統如果你要安裝NT或Win2000服務的話,可以把JBoss加在系統服務中,避
免你每次需要到JBoss目錄下運行run.bat命令,只是當系統啟動時,自動啟動JBoss伺服器。
三、weblogic
WebLogic是美國bea公司出品的一個application server確切的說是一個基於j2ee架構的中介軟體,
webserver是用來構建網站的必要軟體用來解析發布網頁等功能,它是用純java開發的。weblogic
本來不是由bea發明的,是它從別人手中買過來,然後再加工擴充。目前weblogic在世界
application server市場上佔有最大的份額,其他還有象IBM的websphere,免費的tomcat、resin
等中介軟體。
BEA WebLogic是用於開發、整合、部署和管理大型分布式Web應用、網路應用和資料庫應用的Java
應用伺服器。將Java的動態功能和Java Enterprise標準的安全性引入大型網路應用的開發、整合
、部署和管理之中。
BEA WebLogic Server擁有處理關鍵Web應用系統問題所需的效能 、可擴充性和高可用性。
與BEA WebLogic Commerce ServerTM配合使用, BEA WebLogic Server可為部署適應性個人化電
子商務應用系統提供完善的解決方案。
BEA WebLogic Server具有開發和部署關鍵任務電子商務Web應用系統 所需的多種特色和優勢,包
括:
1)領先的標準
對業內多種標準的全面支援,包括EJB、JSB、JMS、JDBC、XML和WML,使Web應用系統的實施更為
簡單,並且保護了投資,同時也使基於標準的解決方案的開發更加簡便。
2)無限的可擴充性
BEA WebLogic Server以其高擴充的架構體系聞名於業內,包括客戶機串連的共用、資源pooling
以及**頁和EJB組件群集。
3)快速開發
憑藉對EJB和JSP的支援,以及BEA WebLogic Server 的Servlet組件架 構體系,可加速投放市場
速度。這些開放性標準與WebGain Studio配合時,可簡化開發,並可發揮已有的技能,迅速部署
應用系統。
4)部署更趨靈活
BEA WebLogic Server的特點是與領先資料庫、作業系統和Web伺服器 緊密整合。
5)關鍵任務可靠性
其容錯、系統管理和安全效能已經在全球數以千記的關鍵任務環境中得以驗證。
6)體繫結構
BEA WebLogic Server是專門為企業電子商務應用系統開發的。企業電子商務應用系統需要快速開
發,並要求伺服器端組件具有良好的靈活性和安全性,同時還要支援關鍵任務所必需的擴充、性
能、和高可用性。BEA WebLogic Server簡化了可移植及可擴充的應用系統的開發,並為其它應用
系統和系統提供了豐富的互通性。
憑藉其出色的群集技術,BEA WebLogic Server擁有最高水平的可擴充 性和可用性。BEA
WebLogic Server既實現了網頁群集,也實現了EJB組件 群集,而且不需要任何專門的硬體或操作
系統支援。網頁群集可以實現透明的複製、Server Load Balancer以及表示內容容錯,如Web購物車;組件群集
則處理複雜的複製、Server Load Balancer和EJB組件容錯,以及狀態物件(如EJB實體)的恢複。
無論是網頁群集,還是組件群集,對於電子商務解決方案所要求的可擴充性和可用性都是至關重
要的。共用的客戶機/伺服器和資料庫連接以及資料緩衝和EJB都增強了效能表現。這是其它Web應用系統所不具備的。
Apache、Tomcat、JBoss、Weblogic四個常用的JavaEE伺服器