[转载]Tomcat介绍

本文深入探讨了Tomcat服务器的历史背景、版本更新、容器概述、程序部署方法、安装流程、未来前景以及相关词条等内容。作为一款广受好评的开源Web应用服务器,Tomcat以其小巧、高效、易于部署和强大的社区支持,成为了Java开发者不可或缺的工具。文章详细介绍了Tomcat的基本功能、版本对比、容器架构、程序部署方式以及如何进行安装和测试。此外,还分析了Tomcat的未来发展趋势,指出其在中小规模应用开发领域的优势以及面临的挑战。通过阅读本文,读者不仅能够全面了解Tomcat的特点和使用方法,还能对未来发展方向有更清晰的认识。

tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器。Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

目录 [隐藏]
1 基本简介
2 版本简介
3 容器概述
4 程序部署
5 安装方法
6 未来前景
7 相关词条
8 参考资料
tomcat-基本简介   

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服务器。

tomcat-版本简介   
版本对照表:
Servlet/JSP Spec              Apache Tomcat version
———————————————————————
2.5/2.1                              6.0.14
2.4/2.0                              5.5.25
2.3/1.2                              4.1.36
2.2/1.1                              3.3.2

tomcat-容器概述   

tomcat
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。

Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。Tomcat提供了各种平台的版本供下载,可以从其官方网站上下载其源代码版或者二进制版。由于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-程序部署   

tomcat
在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-安装方法   

tomcat
一、准备工作

在开始安装之前,先准备J2SDK和TOMCAT两个软件,如果已经安装了J2SDK,就只需TOMCAT即可。
  
使用的软件如下:
J2SDK v1.4.2_04 - http://java.sun.com/j2se/1.4.2/download.html
TOMCAT v5.0.28 - http://apache.linuxforum.net/dist/jakarta/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.exe  

二、安装J2SDK

安装很简单,只需双击下载的文件,选择安装在d:j2sdk1.4.2_04目录下,设置环境变量,方法如下:  

右击“我的电脑”==》属性==》高级==》环境变量==》新建 
变量名:JAVA_HOME
变量值:d:j2sdk1.4.2_04

三、安装TOMCAT

运行jakarta-tomcat-5.0.28.exe 按照提示安装,这里选择了Service,就是作为Windows服务来运行。

如果要改变安装路径,可以在这个步骤操作,偶这里选择安装在D:Tomcat 5.0

在这里设置TOMCAT使用的端口以及WEB管理界面用户名和密码,请确保该端口未被其他程序占用

选择J2SDK的安装路径,安装程序会自动搜索,如果没有正确显示,则可以手工修改,偶这里改为d:j2sdk1.4.2_04

接下来就开始拷贝文件了,成功安装后,程序会提示启动tomcat并查看readme文档。Tomcat正常启动后会在系统栏加载图标。

在图标上右键鼠标可以看到一些设置项目

点击Configure或者双击图标可看到如下显示,选择Startup type为automatic自动启动,这样每次开机后就会自动运行TOMCAT。另外也可在这个界面点击start或stop按钮来控制tomcat的运行。


四、测试

至此安装与配置都已完成,打开浏览器输入:http://localhost:8080即可看到TOMCAT的相关信息


五、备注

由于偶将TOMCAT作为service方式安装,所以CATALINA_HOME环境变量也没设过,如果读者不是按照这种方式请设置一个系统环境变量,设置方法同J2SDK。
变量名:CATALINA_HOME
变量值:d:Tomcat 5.0
另外可再增加一个环境变量
变量名:CLASSPATH
变量值:%JAVA_HOME%libdt.jar;%JAVA_HOME%libtool.jar;%JAVA_HOME%libtools.jar;%CATALINA_HOME%commonlibservlet-api.jar;%CATALINA_HOME%commonlibjsp-api.jar

也是因为service安装的原因,在执行一些程序的时候会出现如下错误信息:
Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK

错误信息是没有设置过JAVA_HOME环境变量,读者也可能碰到过这个问题,明明设置过这个环境变量,在服务里启动就会出错,但是在命令行下输入D:Tomcat 5.0binstartup.bat启动却能运行,在服务里启动没有读取JAVA_HOME这个环境变量,而是在配置里定义这个环境变量的,于是偶在Java Options里加入了一句:-Djava.home=d:j2sdk1.4.2_04,再次启动TOMCAT就OK了,参照下图:


tomcat-未来前景   

tomcat
分析公司Forrester Research的分析师这样评价Tomcat:“Tomcat可能是排在Apache Web 服务器和MySQL 数据库之后使用最多的开源产品。”BZ最新的调查研究则为此提供了有力的证据:Apache Tomcat是Java社区最常用的应用服务器??64%的Java开发者选择使用Tomcat。

Tomcat之所以大受欢迎原因主要有以下五点:

1、Tomcat 是 Apache 的核心项目之一,也被 SUN 视作 Servlet/JSP 容器的一个重要参考实现而加以支持。因此 SUN 最新的 Servlet/JSP 规范,往往能够很快地在 Tomcat 的新版本中得到体现;

2、Tomcat 是一个小巧精致的 web 应用服务器,配置、安装、运行、部署 web 应用都很简单,这让用户能够很快地上手使用;

3、开源软件的生命力,往往与其社区的状况有紧密的联系。在一个健康、活跃的社区,用户的疑问通常能够及时地解决,用户的反馈往往能够得到有效地处理,这样会吸引更多的用户加入到社区中来;反过来,不断扩大的用户群,也会促进社区的发展。Tomcat 所拥有的优秀社区,对开发者而言,无论用什么标准来评价,都是充满吸引力的;

4、编写良好的文档,是开发者在开发中最好的帮手之一。Apache 在开源社区中,无疑是撰写文档方面的佼佼者;

5、因为开源和免费的特性,使得用户可以自由无障碍地下载、安装、使用 Tomcat。这也是 Tomcat 能够被广泛使用的重要原因之一。

Tomcat 最初是作为 Servlet/JSP 容器的参考实现而进行设计开发的,在性能方面,并没有做过多的考量。经过几年的时间,Apache 发现 Servlet/JSP 容器并非只是 J2EE 环境的一部分而已。大量 web 应用并不需要 J2EE 这样的庞然大物,完全可以将 Tomcat 作为一个单独的 web 应用服务器来使用。

这实际也正是Tomcat受欢迎的另一原因所在很多开发者不需要如EJBs、JMS、分布式事务处理等J2EE组件。Rod Johnson 在他的《J2EE Development without EJB》一书中,指出了 J2EE 的许多不足之处。比如说,传统 J2EE(Java EE 5之前的 J2EE)中的 Entity EJB 是不怎么招人喜欢的。在 Java EE 5 中,过时的 Entity EJB 组件被淘汰掉,数据持久化的工作,交给了深受 Hibernate 此类 ORM 工具影响的 JPA 来完成。分布式对象在大多数情况下,也是不合时宜的。


tomcat
Martin Fowler 在《企业应用架构模式》中分布式对象设计的第一原则就是不要分布你的对象。他给出的建议是将所有的组件部署到集群中的每一个节点中去。因而对于大部分 web 应用,Tomcat 应用服务器就能满足需求。通过诸如 Spring-Struts-Hibernate 这样的组合,可以快速而灵活地开发出能够满足复杂业务需求的 web 系统来。

在开发实践中除了Tomcat贺炜还使用过Resin,就二者的性能方面,Resin 2.x 的性能比同时期的 Tomcat 要好不少。但是 Tomcat 自设计实现了全新的 Catalina 引擎之后,在性能方面的问题便持续得到改善。而 Resin 在步入 3.x 版本后,划分成免费的 Open Source 版本和收费的 Pro 版本。有相当多的测试表明,Resin 3.x OS 的性能,与 Tomcat 5/6 相比要低得多;在配置方面,同 Resin 相比,Tomcat 还是显得稍微繁琐一点。对于中国的开发者而言,为了避免系统中出现乱码,往往还需要对 Tomcat 进行一些额外的配置才可以。而 Resin 在这一方面表现得很好,在绝大多数情况下,基本上不用做任何配置就能正常处理中文而不会出现乱码的问题。

在 Resin 3.x Pro 中,提供了诸如缓存、集群等高级特性,倘若 Tomcat 在这方面有所加强,对于开发者而言无疑是非常美好的一件事情。Tomcat未来的趋势, Tomcat 无疑是使用最为广泛的 web 应用服务器之一,完全有理由相信这样的情况至少还会持续数年。但是天边已经出现两朵小小的、令人不安的乌云。

Ruby on Rails 所展现的开发方式与它所产生的高生产率,给予 Java 开发者们的震撼很大。如果 Java 社区不能及时有效地改进 web 应用开发的方式,那么包括 Tomcat 在内的众多 Java 社区都会受到 RoR 不小的冲击。可能正如 Bruce Tate 所预言的那样,Java 在未来将更加着重于解决更复杂的事情,而普通 web 应用开发领域,则会逐步让位给像RoR 这样高度灵活快速的技术。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值