1. Tomcat是Apache鼎力支持的Java Web应用服务器,因为它优秀的稳定性以及丰富的文档资料,普遍的使用人群,从而在开源领域受到最普遍的青睐。-html
2. Jboss做为Java EE应用服务器,它不可是Servlet容器,并且是EJB容器,从而受到企业级开发人员的欢迎,从而弥补了Tomcat只是一个Servlet容器的缺憾。-java
3. Resin也仅仅是一个Servlet容器,然而因为它优秀的运行速度,使得它在轻量级Java Web领域备受喜好,特别是在互联网Web服务领域,众多知名公司都采用其做为他们的Java Web应用服务器,譬如16三、ku6等。-程序员
在商用应用服务器里主要有:Weblogic、Websphere,其中Weblogic我也使用过很长一段时间,当时也只用其当Servlet容器,然而就在同等条件下,在性能及易用性等方面,要比Tomcat优秀不少。-web
4.glassfish是Sun公司推出的Java EE服务器,一个比较活跃的开源社区,不断的经过社区的反馈来提升其的可用性,通过glassfish v1 glassfish v2 到今天的glassfish v3 ,它已经走向成熟.Glassfish是一个免费、开放源代码的应用服务,它实现了Java EE 5,Java EE 5 平台包括了如下最新技术:EJB 3.0、JSF 1.二、Servlet 2.五、JSP 2.一、JAX-WS 2.0、JAXB 2.0、 Java Persistence 1.0、Common Annonations 1.0、StAX 1.0等.-数据库
支持集群,经过内存中会话状态复制,加强了部署体系结构的可用性与可伸缩性,它对集群有着很好的支持,能够简单到经过添加机器,就可轻松的提升网站的带负载能力,在解析能力方面,它对html的吞吐能力与apache服务器不分上下,就是tomcat所不能比的,支持目录部署,热部署,解决了tomcat对热部署能力的缺陷.在版本方面作的更加人性化,有开发时用的简化版,专门用于部署web项目的版本,还要彻底符合j2ee标准的版本.-apache
1、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 很受广大程序员的喜欢,由于它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统经常使用的功能;并且它还在不断的改进和完善中,任何一个感兴趣的程序员均可以更改它或在其中加入新的功能。tomcat
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集成的软件还有不少。
2、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还具备以下六大优势:
一、JBoss是免费的,开放源代码J2EE的实现,它经过LGPL许可证进行发布。
二、JBoss须要的内存和硬盘空间比较小。
三、安装很是简单。先解压缩JBoss打包文件再配置一些环境变量就能够了。
四、JBoss可以"热部署",部署BEAN只是简单拷贝BEAN的JAR文件到部署路径下就能够了。若是没有加载就加载它;若是已经加载了就卸载掉,而后LOAD这个新的。
五、JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不通过网络,从而大大提升运行效率,提高安全性能。
六、用户能够直接实施J2EE-EAR,而不是之前分别实施EJB-JAR和Web-WAR,很是方便。
JBoss的安装和配置能够直接拷贝使用,可是要改动 %JBoss-HOME%\bin\run.bat里JAVA-HOME的设置,改为本机JDK的目录。运行run.bat来启动JBoss
关闭JBoss:关闭JBoss的 DOS 窗口或按"CTRL + C"
JBoss的目录结构
一、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。
二、docs:放置JBoss的例子、测试脚本和各类脚本配置文件的DTD。
三、lib:放置JBoss所须要的部分jar包文件。
四、client:放置EJB客户端运行时所须要的jar包。
五、server:放置各启动类型的服务器端EJB配置所须要的文件等。
六、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中发布文件
一、制做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"这两个地址进行测试。
二、制做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\下完成部署。
三、也能够不打包,把文件放在deploy下的同名文件夹下也能够。好比原来是制做成hello.war文件,能够创建一个名称为hello.war的文件夹,把要发布的文件拷贝到这个目录底下也能够发布成功。
补充
一、JBoss的默认端口是8080
三、对于NT和Win2000系统若是你要安装NT或Win2000服务的话,能够把JBoss加在系统服务中,避免你每次须要到JBoss目录下运行run.bat命令,只是当系统启动时,自动启动JBoss服务器。
3、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组件 群集,并且不须要任何专门的硬件或操做系统支持。网页群集能够实现透明的复制、负载平衡以及表示内容容错,如Web购物车;组件群集则处理复杂的复制、负载平衡和EJB组件容错,以及状态对象(如EJB实体)的恢复。
不管是网页群集,仍是组件群集,对于电子商务解决方案所要求的可扩展性和可用性都是相当重要的。共享的客户机/服务器和数据库链接以及数据缓存和EJB都加强了性能表现。这是其它Web应用系统所不具有的