服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

web开发轻平台-tomcat(简介)


  web开发轻平台-tomcat(简介)

如今,基于web的应用越来越多,传统的html已经满足不了如今的需求。我们需要一个交互式的web,于是便诞生了各种web语言。如asp,jsp,php等。当然,这些语言与传统的语言有着密切的联系,如php基于c和c++语言,jsp基于java语言。本文所要介绍的tomcat即是一个jsp和servlet的运行平台。

一:什么是jsp和servlet

jsp(javaserver page)是在普通html中嵌入了java代码的一个脚本,在这一点上,它与其它的脚本语言(如php)一样,但它与其它语言不同的是:其它脚本语言由服务器直接解释这个脚本,而jsp则由jsp容器(如tomcat)首先将其转化为servlet,然后再调用javac将servlet编译为class文件。最终,服务器解释的是class文件。那么什么是servlet呢?servlet其实是一个特殊的java类,servlet类一般从httpservlet类继承而来,在这个类中至少要实现doget或者dopost函数,在这两个函数中处理来自客户的请求,然后将结果返回。servlet和jsp是sun公司j2ee架构中重要的部分。由于基于java语言,因此其可以方便的调用功能强大的java api(如jdbc)。

二: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集成的软件还有很多。

三:展望

tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,linux就是一个成功的典型。人们不再限于只使用软件,而且已经关心起软件的具体实现。我们有理由相信tomcat会走得更远。

作者:宗锋 西北大学计算机系 zong_feng@263.net http://www.cwdn.net

扫描关注微信公众号