请输入您要查询的百科知识:

 

词条 tomcat
释义

§ 基本简介

tomcattomcatTomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

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

§ 版本简介

版本对照表:

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

§ 容器概述

tomcatTomcat是一个免费的开源的Servlet容器,它是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中,应用程序的部署很简单,你只需将你的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一、准备工作

在开始安装之前,先准备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服务来运行。tomcat

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

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

tomcat

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

tomcat

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

tomcat

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

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

tomcat

四、测试

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

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 来完成。分布式对象在大多数情况下,也是不合时宜的。tomcatMartin 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 这样高度灵活快速的技术。[1]

随便看

 

百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/12/19 5:02:58