Tomcat、JBOSS、WebSphere、WebLogic、Apache之间的区别
Tomcat:應(yīng)用也算非常廣泛的web服務(wù)器,支持部分j2ee,免費(fèi),出自apache基金組織???
JBoss:開源的應(yīng)用服務(wù)器,比較受人喜愛,免費(fèi)(文檔要收費(fèi))???
Weblogic:應(yīng)該說算是業(yè)界第一的app?? server,全部支持j2ee1.4,? 對(duì)于開發(fā)者,有免費(fèi)使用一年的許可證。
Apache:全球應(yīng)用最廣泛的http服務(wù)器,免費(fèi),出自apache基金組織??
?
Tomcat不支持EJB,只能做jsp和servlet的container,只能做web服務(wù)器。
JBoss是實(shí)現(xiàn)了EJB容器,同時(shí)內(nèi)嵌Tomcat,處理靜態(tài)頁面Jboss的速度要比較快,可以作應(yīng)用服務(wù)器。
?
JBoss和WebLogic、WebSphere都含有Jsp和Servlet容器,也就可以做web容器。
JBoss和WebLogic、WebSphere也都包含EJB容器,是完整的J2EE應(yīng)用服務(wù)器 。
?
WebLogic與WebSphere都是對(duì)業(yè)內(nèi)多種標(biāo)準(zhǔn)的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web應(yīng)用系統(tǒng)的實(shí)施更為簡(jiǎn)單,并且保護(hù)了投資,同時(shí)也使基于標(biāo)準(zhǔn)的解決方案的開發(fā)更加簡(jiǎn)便。?
一、Tomcat?
Tomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器,它是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun 的參與和支持,最新的Servlet 和JSP 規(guī)范總是能在Tomcat 中得到體現(xiàn),Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 規(guī)范。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web 應(yīng)用服務(wù)器。?
Tomcat 很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。?
Tomcat 是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。對(duì)于一個(gè)初學(xué)者來說,可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache 服務(wù)器,可利用它響應(yīng)對(duì)HTML 頁面的訪問請(qǐng)求。實(shí)際上Tomcat 部分是Apache 服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat 時(shí),它實(shí)際上作為一個(gè)與Apache 獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。?
這里的訣竅是,當(dāng)配置正確時(shí),Apache 為HTML頁面服務(wù),而Tomcat 實(shí)際上運(yùn)行JSP 頁面和Servlet。另外,Tomcat和IIS、Apache等Web服務(wù)器一樣,具有處理HTML頁面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。?
Tomcat 最新版本是4.0x.4.0x與3.x的架構(gòu)不同,而是重新設(shè)計(jì)的。Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的實(shí)現(xiàn)了Servlet2.3和Jsp1.2規(guī)范。由于Java的跨平臺(tái)特性,基于Java的Tomcat也具有跨平臺(tái)性。?
與傳統(tǒng)的桌面應(yīng)用程序不同,Tomcat中的應(yīng)用程序是一個(gè)WAR(Web Archive)文件。WAR是Sun提出的一種Web應(yīng)用程序格式,與JAR類似,也是許多文件的一個(gè)壓縮包。這個(gè)包中的文件按一定目錄結(jié)構(gòu)來組織:通常其根目錄下包含有Html和Jsp文件或者包含這兩種文件的目錄,另外還會(huì)有一個(gè)WEB-INF目錄,這個(gè)目錄很重要。通常在WEB-INF目錄下有一個(gè)web.xml文件和一個(gè)classes目錄,web.xml是這個(gè)應(yīng)用的配置文件,而classes目錄下則包含編譯好的Servlet類和Jsp或Servlet所依賴的其它類(如JavaBean)。通常這些所依賴的類也可以打包成JAR放到WEB-INF下的lib目錄下,當(dāng)然也可以放到系統(tǒng)的CLASSPATH中,但那樣移植和管理起來不方便。?
在Tomcat中,應(yīng)用程序的部署很簡(jiǎn)單,你只需將你的WAR放到Tomcat的webapp目錄下,Tomcat會(huì)自動(dòng)檢測(cè)到這個(gè)文件,并將其解壓。你在瀏覽器中訪問這個(gè)應(yīng)用的Jsp時(shí),通常第一次會(huì)很慢,因?yàn)門omcat要將Jsp轉(zhuǎn)化為Servlet文件,然后編譯。編譯以后,訪問將會(huì)很快。另外Tomcat也提供了一個(gè)應(yīng)用:manager,訪問這個(gè)應(yīng)用需要用戶名和密碼,用戶名和密碼存儲(chǔ)在一個(gè)xml文件中。通過這個(gè)應(yīng)用,輔助于Ftp,你可以在遠(yuǎn)程通過Web部署和撤銷應(yīng)用。當(dāng)然本地也可以。
Tomcat不僅僅是一個(gè)Servlet容器,它也具有傳統(tǒng)的Web服務(wù)器的功能:處理Html頁面。但是與Apache相比,它的處理靜態(tài)Html的能力就不如Apache.我們可以將Tomcat和Apache集成到一塊,讓Apache處理靜態(tài)Html,而Tomcat處理Jsp和Servlet.這種集成只需要修改一下Apache和Tomcat的配置文件即可。?
另外,Tomcat提供Realm支持。Realm類似于Unix里面的group.在Unix中,一個(gè)group對(duì)應(yīng)著系統(tǒng)的一定資源,某個(gè)group不能訪問不屬于它的資源。Tomcat用Realm來對(duì)不同的應(yīng)用(類似系統(tǒng)資源)賦給不同的用戶(類似group)。沒有權(quán)限的用戶則不能訪問這個(gè)應(yīng)用。Tomcat提供三種Realm,1:JDBCRealm,這個(gè)Realm將用戶信息存在數(shù)據(jù)庫里,通過JDBC獲得用戶信息來進(jìn)行驗(yàn)證。2:JNDIRealm,用戶信息存在基于LDAP的服務(wù)器里,通過JNDI獲取用戶信息。3:MemoryRealm,用戶信息存在一個(gè)xml文件里面,上面講的manager應(yīng)用驗(yàn)證用戶時(shí)即使用此種Realm.通過Realm我們可以方便地對(duì)訪問某個(gè)應(yīng)用的客戶進(jìn)行驗(yàn)證。?
在Tomcat4中,你還可以利用Servlet2.3提供的事件監(jiān)聽器功能,來對(duì)你的應(yīng)用或者Session實(shí)行監(jiān)聽。Tomcat也提供其它的一些特征,如與SSL集成到一塊,實(shí)現(xiàn)安全傳輸。還有Tomcat也提供JNDI支持,這與那些J2EE應(yīng)用服務(wù)器提供的是一致的。說到這里我們要介紹一下通常所說的應(yīng)用服務(wù)器(如WebLogic)與Tomcat有何區(qū)別。應(yīng)用服務(wù)器提供更多的J2EE特征,如EJB,JMS,JAAS等,同時(shí)也支持Jsp和Servlet.而Tomcat則功能沒有那么強(qiáng)大,它不提供EJB等支持。但如果與JBoss(一個(gè)開源的應(yīng)用服務(wù)器)集成到一塊,則可以實(shí)現(xiàn)J2EE的全部功能。既然應(yīng)用服務(wù)器具有Tomcat的功能,那么Tomcat有沒有存在的必要呢?事實(shí)上,我們的很多中小應(yīng)用不需要采用EJB等技術(shù),Jsp和Servlet已經(jīng)足夠,這時(shí)如果用應(yīng)用服務(wù)器就有些浪費(fèi)了。而Tomcat短小精悍,配置方便,能滿足我們的需求,這種情況下我們自然會(huì)選擇Tomcat.?
基于Tomcat的開發(fā)其實(shí)主要是Jsp和Servlet的開發(fā),開發(fā)Jsp和Servlet非常簡(jiǎn)單,你可以用普通的文本編輯器或者IDE,然后將其打包成WAR即可。我們這里要提到另外一個(gè)工具Ant,Ant也是Jakarta中的一個(gè)子項(xiàng)目,它所實(shí)現(xiàn)的功能類似于Unix中的make.你需要寫一個(gè)build.xml文件,然后運(yùn)行Ant就可以完成xml文件中定義的工作,這個(gè)工具對(duì)于一個(gè)大的應(yīng)用來說非常好,我們只需在xml中寫很少的東西就可以將其編譯并打包成WAR.事實(shí)上,在很多應(yīng)用服務(wù)器的發(fā)布中都包含了Ant.另外,在Jsp1.2中,可以利用標(biāo)簽庫實(shí)現(xiàn)Java代碼與Html文件的分離,使Jsp的維護(hù)更方便。?
Tomcat也可以與其它一些軟件集成起來實(shí)現(xiàn)更多的功能。如與上面提到的JBoss集成起來開發(fā)EJB,與Cocoon(Apache的另外一個(gè)項(xiàng)目)集成起來開發(fā)基于Xml的應(yīng)用,與OpenJMS集成起來開發(fā)JMS應(yīng)用,除了我們提到的這幾種,可以與Tomcat集成的軟件還有很多。?
二、Jboss?
JBoss是全世界開發(fā)者共同努力的成果,一個(gè)基于J2EE的開放源代碼的應(yīng)用服務(wù)器。因?yàn)镴Boss代碼遵循LGPL許可,你可以在任何商業(yè)應(yīng)用中免費(fèi)使用它,而不用支付費(fèi)用。JBoss支持EJB 1.1和EJB 2.0 EJB3.0的規(guī)范,它是一個(gè)管理EJB的容器和服務(wù)器。類似于Sun's J2SDK Enterprise Edition(J2EE),JBoss的目標(biāo)是一個(gè)源代碼開放的J2EE環(huán)境。但是JBoss核心服務(wù)僅是提供EJB服務(wù)器。JBoss不包括serverlers/JSP page 的WEB容器,當(dāng)然可以和Tomcat或Jetty綁定使用。?
JBoss還具有如下六大優(yōu)點(diǎn):?
1、JBoss是免費(fèi)的,開放源代碼J2EE的實(shí)現(xiàn),它通過LGPL許可證進(jìn)行發(fā)布。?
2、JBoss需要的內(nèi)存和硬盤空間比較小。?
3、安裝非常簡(jiǎn)單。先解壓縮JBoss打包文件再配置一些環(huán)境變量就可以了。?
4、JBoss能夠"熱部署",部署B(yǎng)EAN只是簡(jiǎn)單拷貝BEAN的JAR文件到部署路徑下就可以了。如果沒有加載就加載它;如果已經(jīng)加載了就卸載掉,然后LOAD這個(gè)新的。?
5、JBoss與Web服務(wù)器在同一個(gè)Java虛擬機(jī)中運(yùn)行,Servlet調(diào)用EJB不經(jīng)過網(wǎng)絡(luò),從而大大提高運(yùn)行效率,提升安全性能。?
6、用戶可以直接實(shí)施J2EE-EAR,而不是以前分別實(shí)施EJB-JAR和Web-WAR,非常方便。?
JBoss的安裝和配置可以直接拷貝使用,但是要改動(dòng) %JBoss-HOME%\bin\run.bat里JAVA-HOME的設(shè)置,改成本機(jī)JDK的目錄。運(yùn)行run.bat來啟動(dòng)JBoss?
關(guān)閉JBoss:關(guān)閉JBoss的 DOS 窗口或按"CTRL + C"。?
JBoss的目錄結(jié)構(gòu)?
1、bin:開始和停止JBoss的地方。?
其中有兩個(gè)主要的批處理文件:run.bat和shutdown.bat。要啟動(dòng)JBoss只要執(zhí)行run.bat文件即可?
;要停止JBoss必須執(zhí)行shutdown.bat。?
注意,shutdown.bat文件直接執(zhí)行并不會(huì)自動(dòng)停止JBoss,它必須要輸入?yún)?shù),參數(shù)意義如下:?
h顯示幫助信息;D設(shè)置系統(tǒng)屬性;-停止處理選項(xiàng);s停止用JNDI URL指定的遠(yuǎn)程服務(wù);n通過制定?
JMX名字來停止服務(wù);a適配到指定的JNDI名稱的遠(yuǎn)程服務(wù);u指定用戶名稱;p指定用戶密碼;S停?
止服務(wù)器;e從虛擬機(jī)退出;H暫停。?
一般,我們使用S選項(xiàng)來停止服務(wù)器。即執(zhí)行shutdown.bat -S。?
2、docs:放置JBoss的例子、測(cè)試腳本和各種腳本配置文件的DTD。?
3、lib:放置JBoss所需要的部分jar包文件。?
4、client:放置EJB客戶端運(yùn)行時(shí)所需要的jar包。?
5、server:放置各啟動(dòng)類型的服務(wù)器端EJB配置所需要的文件等。?
6、backup
以80端口服務(wù)?
修改這個(gè)文件: {%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"/>?
重新啟動(dòng)JBoss就OK了
JBoss的啟動(dòng)過程?
設(shè)置環(huán)境變量 JBOSS_CLASSPATH (可以自己加上安全管理器和xml解析器)?
a) %JBOSS_CLASSPATH%;?
b) %JAVA_HOME%/lib/tools.jar;?
c) run.jar?
d) ../lib/crimson.jar;?
設(shè)置啟動(dòng)參數(shù)JAXP(xml解析器和相應(yīng)工廠)?
啟動(dòng)?
設(shè)置配置信息?
讀取配置文件JBoss.properties,保存在系統(tǒng)屬性中(System.properties)?
設(shè)置缺省屬性jboss.home和java.security.auth.login.config?
創(chuàng)建MBeanServer.的實(shí)例:?
把配置文件和補(bǔ)丁文件所在的目錄指定給特定的遠(yuǎn)程類加載器Mlet?
加載保存配置文件(mlet會(huì)自動(dòng)在配置文件目錄中查找)?
初始化并啟動(dòng)MBean?
配置服務(wù)ConfigurationService?
加載配置文件?
保存配置?
服務(wù)控制ServiceControl?
初始化服務(wù)程序(init方法)?
啟動(dòng)服務(wù)程序(start方法)
?
在JBOSS中發(fā)布文件?
1、制作JSP的war部署文件?
用"jar cvf hello.war index.jsp main.jsp"的方式生成把index.jsp和main.jsp文件加入到?
hello.war中。把生成的hello.war拷貝到j(luò)boss安裝目錄\server\default\deploy\下,部署成功?
。用"http://localhost:8080/hello/"或"http://localhost:8080/hello/index.jsp"這兩個(gè)地址?
進(jìn)行測(cè)試。?
2、制作Servlet的war部署文件?
A、用"javac -classpath "%CLASSPATH%;%jboss_home%?
\server\default\lib\javax.servlet.jar" HelloWorld.java"的形式編譯HelloWorld.java(這?
是一個(gè)Servlet)得到HelloWorld.class?
B、寫一個(gè)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>?
每個(gè)標(biāo)記必須小寫,否則會(huì)出錯(cuò)。?
C、先在c:\servlet下建立一個(gè)web-inf目錄,在目錄中放入web.xml文件。?
D、在web-inf目錄下建立一個(gè)classes目錄,放入編譯好的HelloWorld.class文件?
E、在c:\servlet下執(zhí)行jar cvf hello.war *.*,很快就生成了一個(gè)名為hello.war的文件,接著?
把hello.war復(fù)制到j(luò)boss的安裝目錄\server\default\deploy\下完成部署。?
3、也可以不打包,把文件放在deploy下的同名文件夾下也可以。比如原來是制作成hello.war文?
件,可以建立一個(gè)名稱為hello.war的文件夾,把要發(fā)布的文件拷貝到這個(gè)目錄底下也可以發(fā)布成?
功。?
補(bǔ)充?
1、JBoss的默認(rèn)端口是8080?
2、對(duì)于NT和Win2000系統(tǒng)如果你要安裝NT或Win2000服務(wù)的話,可以把JBoss加在系統(tǒng)服務(wù)中,避免你每次需要到JBoss目錄下運(yùn)行run.bat命令,只是當(dāng)系統(tǒng)啟動(dòng)時(shí),自動(dòng)啟動(dòng)JBoss服務(wù)器。?
三、Weblogic?
WebLogic是美國bea公司出品的一個(gè)application server確切的說是一個(gè)基于j2ee架構(gòu)的中間件,webserver是用來構(gòu)建網(wǎng)站的必要軟件用來解析發(fā)布網(wǎng)頁等功能,它是用純java開發(fā)的。weblogic本來不是由bea發(fā)明的,是它從別人手中買過來,然后再加工擴(kuò)展。目前weblogic在世界application server市場(chǎng)上占有最大的份額,其他還有象IBM的websphere,免費(fèi)的tomcat、resin等中間件。?
BEA WebLogic是用于開發(fā)、集成、部署和管理大型分布式Web應(yīng)用、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫應(yīng)用的Java應(yīng)用服務(wù)器。將Java的動(dòng)態(tài)功能和Java Enterprise標(biāo)準(zhǔn)的安全性引入大型網(wǎng)絡(luò)應(yīng)用的開發(fā)、集成、部署和管理之中。?
BEA WebLogic Server擁有處理關(guān)鍵Web應(yīng)用系統(tǒng)問題所需的性能 、可擴(kuò)展性和高可用性。?
與BEA WebLogic Commerce ServerTM配合使用, BEA WebLogic Server可為部署適應(yīng)性個(gè)性化電子商務(wù)應(yīng)用系統(tǒng)提供完善的解決方案。?
BEA WebLogic Server具有開發(fā)和部署關(guān)鍵任務(wù)電子商務(wù)Web應(yīng)用系統(tǒng) 所需的多種特色和優(yōu)勢(shì),包括:?
1)領(lǐng)先的標(biāo)準(zhǔn)?
對(duì)業(yè)內(nèi)多種標(biāo)準(zhǔn)的全面支持,包括EJB、JSB、JMS、JDBC、XML和WML,使Web應(yīng)用系統(tǒng)的實(shí)施更為簡(jiǎn)單,并且保護(hù)了投資,同時(shí)也使基于標(biāo)準(zhǔn)的解決方案的開發(fā)更加簡(jiǎn)便。?
2)無限的可擴(kuò)展性?
BEA WebLogic Server以其高擴(kuò)展的架構(gòu)體系聞名于業(yè)內(nèi),包括客戶機(jī)連接的共享、資源pooling以及動(dòng)態(tài)網(wǎng)頁和EJB組件群集。?
3)快速開發(fā)?
憑借對(duì)EJB和JSP的支持,以及BEA WebLogic Server 的Servlet組件架構(gòu)體系,可加速投放市場(chǎng)速度。這些開放性標(biāo)準(zhǔn)與WebGain Studio配合時(shí),可簡(jiǎn)化開發(fā),并可發(fā)揮已有的技能,迅速部署應(yīng)用系統(tǒng)。?
4)部署更趨靈活?
BEA WebLogic Server的特點(diǎn)是與領(lǐng)先數(shù)據(jù)庫、操作系統(tǒng)和Web服務(wù)器 緊密集成。?
5)關(guān)鍵任務(wù)可靠性?
其容錯(cuò)、系統(tǒng)管理和安全性能已經(jīng)在全球數(shù)以千記的關(guān)鍵任務(wù)環(huán)境中得以驗(yàn)證。?
6)體系結(jié)構(gòu)?
BEA WebLogic Server是專門為企業(yè)電子商務(wù)應(yīng)用系統(tǒng)開發(fā)的。企業(yè)電子商務(wù)應(yīng)用系統(tǒng)需要快速開發(fā),并要求服務(wù)器端組件具有良好的靈活性和安全性,同時(shí)還要支持關(guān)鍵任務(wù)所必需的擴(kuò)展、性能、和高可用性。BEA WebLogic Server簡(jiǎn)化了可移植及可擴(kuò)展的應(yīng)用系統(tǒng)的開發(fā),并為其它應(yīng)用系統(tǒng)和系統(tǒng)提供了豐富的互操作性。?
憑借其出色的群集技術(shù),BEA WebLogic Server擁有最高水平的可擴(kuò)展 性和可用性。BEA WebLogic Server既實(shí)現(xiàn)了網(wǎng)頁群集,也實(shí)現(xiàn)了EJB組件群集,而且不需要任何專門的硬件或操作系統(tǒng)支持。網(wǎng)頁群集可以實(shí)現(xiàn)透明的復(fù)制、負(fù)載平衡以及表示內(nèi)容容錯(cuò),如Web購物車;組件群集則處理復(fù)雜的復(fù)制、負(fù)載平衡和EJB組件容錯(cuò),以及狀態(tài)對(duì)象(如EJB實(shí)體)的恢復(fù)
轉(zhuǎn)載于:https://www.cnblogs.com/hzj680539/archive/2013/05/05/3060695.html
總結(jié)
以上是生活随笔為你收集整理的Tomcat、JBOSS、WebSphere、WebLogic、Apache之间的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PG SQL数据库读写分离的思路
- 下一篇: 高性能WEB开发之Web性能测试工具推荐