tomcat servlet 之间版本关系.docx
- 文档编号:4097543
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:11
- 大小:52.37KB
tomcat servlet 之间版本关系.docx
《tomcat servlet 之间版本关系.docx》由会员分享,可在线阅读,更多相关《tomcat servlet 之间版本关系.docx(11页珍藏版)》请在冰豆网上搜索。
tomcatservlet之间版本关系
窗体顶端
Tomcat
简介
Tomcat服务器是一个免费的开放源代码的Web应用服务器,是一个JSP/Servlet容器。
它是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现。
目前正在开发的最新版本为ApacheTomcat7.x,它在6.0.x的基础上进行了改进,支持Servlet3.0,JSP2.2和EL2.2规范。
Tomcat的用途及特点
Tomcat既是一个Servlet容器,又是一个独立运行的服务器,像IIS、Apache等Web服务器一样,具有处理HTML页面的功能。
但它处理静态HTML文件的能力并不是太强,所以一般都是把它当作JSP/Servlet引擎,通过适配器(Adapter)与其他Web服务器软件(如Apache)配合使用。
此外,Tomcat还可与其他一些软件集成起来实现更多功能,例如,与JBoss集成起来开发EJB、与OpenJMS集成起来开发JMS应用、与Cocoon(Apache的另外一个项目)集成起来开发基于XML的应用等。
与传统桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件,它是许多文件构成的一个压缩包,包中的文件按照一定目录结构来组织,不同目录中的文件也具有不同的功能。
部署应用程序时,只需要把WAR文件放到Tomcat的webapp目录下,Tomcat会自动检测和解压该文件。
JSP文件第一次执行时,要先由Tomcat将其转化为Servlet文件,然后编译,所以速度会慢一些,但后继执行时速度会很快。
Tomcat特点:
∙小型的轻量级应用服务器
∙运行时占用系统资源小
∙扩展性好
∙支持负载平衡与邮件服务等开发应用系统中的常用功能,并且不断改进和完善。
Tomcat适用于中小型系统和并发访问用户不太多的场合,是开发和调试JSP程序的首选。
先进的技术、稳定的性能、源码开放和免费获取的机制,使得Tomcat深受Java爱好者的喜爱并得到了许多软件开发商的认可,成为目前相当流行的Web应用服务器。
相关概念:
Servlet容器
Servlet是一种运行在支持Java语言的服务器上的组件。
使用Servlet可以很轻松地扩展Java网络服务器的功能,为网络客户提供安全可靠的、易于移植的动态网页。
由于Java语言本身的平台无关性,加之Servlet运行在服务器端,所以Servlet的运行对用户是完全透明的。
JavaServletAPI是Servlet容器和Servlet之间的接口,它定义了Servlet的各种方法,还定义了Servlet容器传送给Servlet的对象类,其中最重要的是请求对象ServletRequest和响应对象ServletResponse。
这两个对象都是由Servlet容器在客户端调用Servlet时产生的,Servlet容器把客户请求信息封装在ServletRequest对象中,然后把这个对象都传送给要调用的Servlet,Servlet处理完后把响应结果写入ServletResponse,然后由Servlet容器把响应结果发送到客户端。
Tomcat服务器接收客户端请求并作出响应的完整过程如图下图表示Servlet容器的作用:
Tomcat的工作模式
Tomcat作为Servlet容器,有3种工作模式:
独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。
∙独立的Servlet容器:
默认模式。
Tomcat是内置在Web服务器中的一部分,是指使用基于Java的Web服务器的情形。
然而大多数的Web服务器并非基于Java,所以Tomcat又发展了其他两种工作模式以与非基于Java的Web服务器结合。
∙进程内的Servlet容器:
Tomcat作为进程内的Servlet容器时,Servlet容器是作为Web服务器的插件和Java容器的实现。
Web服务器插件在内部地址空间打开一个JVM(JavaVirtualMachine)使Java容器得以在内部运行。
∙进程外的Servlet容器:
Tomcat作为进程外的Servlet容器时,Servlet容器运行于Web服务器之外的地址空间,并且作为Web服务器的插件和Java容器的实现的结合。
Tomcat的组织结构
Tomcat是一个基于组件的服务器,它的构成组件都是可配置的,其中最外层的组件是CatalinaServlet容器,其他的组件按照一定的格式要求配置在这个顶层容器中。
Tomcat各组件将Tomcat分为5层,即Server层、Service层、Engine层、Host层和Context层,处于顶层的是CatalinaServlet容器,它是组件的核心,各层之间通过数据管道PipeLine交互。
Tomcat的各个组件是在
可包含多个Service。
可包含一个Engine,多个Connector。
代表通信接口。
为特定的Service组件处理所有客户请求,可包含多个Host。
为特定的虚拟主机处理所有客户请求,可包含多个Context。
为特定的Web应用处理所有客户请求。
以上的类XML的代码就是server.xml文件的基本组成结构,一个元素代表一个组件。
下面分别介绍这些组件。
1、不能处理客户请求或生成响应的组件:
∙Server组件:
Server组件对应
一个配置文件中只能有一个
∙Service组件:
Service组件是一些Connector组件的集合,它本身不是一个容器,所以在这里不能定义日志等组件。
一个Service组件中只能有一个Engine组件,可以包含多个Connector组件。
∙Connector组件:
Connector组件表示一个接口,通过这个接口接收客户的请求,然户发送给其他的容器组件,最后再把服务器的响应结果传递给客户。
2、能够处理客户请求或生成响应的组件(容器类元素):
在Tomcat中只有3个组件具备这一功能,并且有嵌套关系:
Engine>Host>Context。
∙Engine组件:
其下可以包含多个Host组件,它为特定的Service组件处理所有客户请求。
∙Host组件:
代表一个虚拟主机,一个虚拟主机中可以包含多个Web应用(Context组件)。
∙Context组件:
代表一个Web应用。
总结:
以下是Tomcat各个组件的层次结构关系。
相关概念:
JavaWeb应用与Context元素
在SUN的JavaServlet规范中,对JavaWeb应用的定义是:
JavaWeb应用是由一些Servlet、HTML页面、Java类、JSP页面和一些其他的资源构成的。
它可以在各种实现了Servlet规范的各种厂商的Web应用容器中运行。
Tomcat就是这样一个实现了Servlet规范的Servlet/JSP容器。
一个JavaWeb应用的构成:
一个JavaWeb应用在Tomcat中与一个Context元素对应,Servlet容器为每个运行的JavaWeb应用创建唯一的ServletContext对象,该对象被同一个Web应用中的所有组件所共享,也就是说一个Context元素定义了一个JavaWeb应用,它们是一一对应的关系。
客户每次提出请求时指定要访问的资源,如果客户没有指定具体资源,Tomcat使用默认的资源响应客户,显示文件夹中的资源列表或者提示错误。
假设有3个Web应用,分别为HelloWorld、Counter和TableList,它们对应的主页URL分别如下:
HelloWorld:
http:
//localhost1:
8080/HelloWorld/index.html
Counter:
http:
//localhost1:
80/Counter/index.jsp
TableList:
http:
//localhost2:
8086/TableList/index.jsp
3个用户分别访问上述3个地址,则Tomcat服务器各个组件响应用户请求的过程如图所示,其中每个Context容器对应唯一的JavaWeb应用。
Tomcat的安装
Tomcat安装手册
Tomcat的配置
1、了解目录结构成功安装运行Tomcat之后,需要对Tomcat进行个性化的设置。
包括虚拟机、站点参数和用户验证等方面的Tomcat配置。
下面是Tomcat的目录结构:
详细说明:
目录
用途
\bin
存放启动和关闭Tomcat的脚本文件
\common\lib
存放Tomcat服务器及所有Web应用都可访问的JAR文件
\conf
存放Tomcat服务器的各种配置文件,包括server.xml、web.xml、catalina.policy等
\logs
存放Tomcat的日志文件
\server\lib
存放Tomcat服务器可以访问的JAR文件
\server\webapps
存放Tomcat自带的两个Web应用:
admin和manager,用来管理Tomcat的Web服务
\shared\lib
存放所有Web应用都可以访问的JAR文件
\temp
存放Tomcat运行时的临时文件
\webapps
Web应用的发布目录,把Web应用文件放入该目录下就可以通过Tomcat服务器来访问
\work
存放JSP经过Tomcat编译后生成的Servlet
2、重要配置文件
在Tomcat目录中,比较重要的配置文件有\conf下的tomcat-users.xml、server.xml以及\webapps中应用程序目录下的web.xml。
∙tomcat-users.xml:
Tomcat采用基于角色的访问控制模型管理用户对系统的使用,安全性比较高,其角色和对应用户都保存在其中。
∙server.xml:
Tomcat服务器是由一些可配置的组件构成,在server.xml文件中可以对这些组件进行配置,每个Tomcat组件和server.xml文件是一一对应的。
∙web.xml:
按照Servlet规范定义的Web应用发布描述符文件,是完全独立于Tomcat容器的Web应用配置文件。
3、主要配置
实际使用中,需要配置Tomcat服务器以及Web应用,这是通过结合手工编辑XML文件和平台配置实现的,主要分为两部分:
控制配置和管理配置。
控制配置可以配置Tomcat服务器以及Web应用;管理配置可以在不重启Tomcat服务器的情况下,方便地发布、启动、停止或卸载Web应用。
在Tomcat6以前的版本中,分别通过控制平台和管理平台对Tomcat实施控制配置和管理配置,这两个平台都可以通过在浏览器地址栏中输入URL的方式进行登录。
但由于Tomcat6.0.14没有提供控制平台包,所以要通过修改conf子目录下的server.xml来进行控制配置,管理配置可以通过Tomcat自带的管理平台来实现,该平台位于Tomcat安装目录\server\webapps\manager下。
4、Tomcat配置详解
Tomcat配置详解
Tomcat中的日志服务
1.Tomcat日志概述(针对Tomcat5.5以前版本)
Tomcat日志信息分为两类:
一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息;
二是访问日志信息,它记录访问的时间,IP,访问的资料等相关信息。
2.Tomcat日志配置
2.1访问日志的配置
默认tomcat不记录访问日志,如下方法可以使tomcat记录访问日志:
通过修改server.xml,可以将日志服务添加进组件中。
具体操作如下:
在server.xml里的
就可以生成日志了。
下面详细解释一下主要参数
参数
解释
className
官方文档上说明了,想配置访问日志这就必须得写成这样。
directory
这是日志文件放置的目录,在tomcat下面有个logs文件夹,那里面是专门放置日志文件的,当然也可以自行修改
prefix
这个是日志文件的名称前缀
suffix
这个是日志文件的名称后缀
pattern
最主要的参数,这个参数的内容比较丰富,稍候探讨
resolveHosts
如果这个值是true,tomcat会将这个服务器IP地址通过DNS转换为主机名,如果是false,就直接写服务器IP地址
rotatable
默认为true,默认的设置使得tomcat生成的文件命为prefix(前缀)+.+时间(一般是按天算)+.+suffix(后缀)。
使用这个需要谨慎,因为如果将其设置为false的话,tomcat会忽略时间,不会新生成文件,最后导致文件超级大
condition
存放Tomcat运行时的临时文件
fileDateFormat
设置时间格式,针对日志文件起作用
2.2配置tomcat写出更详细的日志
关于pattern。
通过对pattern项的修改,可以改变日志输出的内容。
pattern可以设置成pattern="common",或pattern="combined"两种方式,以控制日志里面的格式。
common和combined只是集成了一些显示方式,事实上是可以自行设置
格式的。
如下表举例:
参数
解释
%a
记录访问者IP
%b
发送信息的字节数
%h
服务器名称
%H
访问者使用的协议
这里暂且不一一列举了。
关于更详细的内容,请参考 Tomcat日志参数详解
3.修改Tomcat运行日志的等级
3.1日志类型与级别
Tomcat日志分为下面5类:
catalina、localhost、manager、admin、host-manager
每类日志的级别分为如下7种:
SEVERE(highestvalue)>WARNING>INFO>CONFIG>FINE>FINER>FINEST(lowestvalue)
3.2日志级别的设定方法
通过修改conf/logging.properties中的内容,设定某类日志的级别。
示例:
设置catalina日志的级别为:
FINE
1catalina.org.apache.juli.FileHandler?
.level=FINE
禁用catalina日志的输出:
1catalina.org.apache.juli.FileHandler?
.level=OFF
输出catalina所有的日志消息均输出:
1catalina.org.apache.juli.FileHandler?
.level=ALL
4.使用log4j记录应用程序日志或系统日志
可以通过使用Log4j输出详细系统日志信息,快速诊断启动故障,此举可弥补tomcat启动异常时输出的错误信息不足的问题,使用commons-logging和log4j搭配输出详尽的日志信息。
具体参考 在Tomcat中使用log4j记录日志
5.在Tomcat5.5以后版本中的日志功能
Tomcat5.5在内部代码中使用commons-logging,使得开发者可以选择一种适合其需要的日志配置,比如javalogging,log4j等等。
commons-logging使Tomcat可以分层次地记录日志,而不依赖于具体的日志实现。
对于Tomcat5.5,最重要的之前版本中用于生成本地日志的
如果开发者想要收集详细的内部Tomcatlogging信息(记录Tomcat引擎之内发生的信息),则需要设置具体的日志实现,如javalogging,log4j等等。
具体实现参照 Tomcat中设置javalogging与log4j
附录
Tomcat版本历史
∙ApacheTomcat7.x
是目前的开发焦点。
它在汲取了Tomcat6.0.x优点的基础上,实现了对于Servlet3.0、JSP2.2和EL2.2等特性的支持。
除此以外的改进列表如下:
1Web应用内存溢出侦测和预防
2增强了管理程序和服务器管理程序的安全性
3一般CSRF保护
4支持web应用中的外部内容的直接引用
5重构(connectors,lifecycle)及很多核心代码的全面梳理
∙ApacheTomcat6.x
在汲取Tomcat5.5.x优点的基础上,实现了Servlet2.5和JSP2.1等特性的支持。
除此以外的改进列表如下:
1内存使用优化
2更大的IO容量
3重构聚类
∙ApacheTomcat5.x
ApacheTomcat5.5.x和ApacheTomcat5.0.x对于Servlet和JSP的支持是一样的。
大量底层代码里的重大修改,带来性能的提升、稳定性的提升及整体成本。
详请参照ApacheTomcat5.5的更新日志。
ApacheTomcat5.0.x在ApacheTomcat4.1的基础上做了很多改动,包括:
1性能优化和减少垃圾回收动作
2重构程序部署,通过一个可选的独立部署程序,允许在将一个web应用放进产品前验证和编译它
3基于JMX的服务器全面监视及web程序管理
4提高Taglibs的支撑能力,包括改进的数据池和tag插件
5改进平台集成性,包括Windows和Unix
6基于JMX的嵌入
7增强的安全管理支撑
8集成session集群
9文档扩充
各个版本支持的规范对照:
ApacheTomcat版本
Servlet/JSP_规范版本
7.0.0
3.0/2.2
6.0.18
2.5/2.1
5.5.25
2.4/2.0
4.1.36
2.3/1.2
3.3.2
2.2/1.1
Attachments
∙picture1.PNG
(8.3KB)-addedby zhanglei09 2months ago.
∙picture2.PNG
(7.4KB)-addedby zhanglei09 2months ago.
∙picture3.PNG
(13.5KB)-addedby zhanglei09 2months ago.
∙picture4.PNG
(2.5KB)-addedby zhanglei09 2months ago.
Downloadinotherformats:
∙PlainText
∙PDFArticle
∙PDFBook
∙PrintableHTML
Poweredby Trac0.11.7
By EdgewallSoftware.
加入开发者邮件列表
给我们发信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- tomcat servlet 之间版本关系 之间 版本 关系