Tomcat 必要知识详解

本文详细介绍了Tomcat服务器的概述、版本说明、在其中运行Servlet和JSP的作用,以及其目录结构、配置文件(如context.xml、web.xml等)的功能。还涵盖了解决控制台乱码的方法和Tomcat的Server、Service、Connector、Engine、Host和Context组件的工作原理。最后,提到了IDEA集成Tomcat部署项目的具体细节。
摘要由CSDN通过智能技术生成

1.Tomcat简介

Tomcat服务器是Apache的一个开源免费的Web容器。它实现了 JavaEE平台下部分技术规范,属于轻量级应用服务器。

2.Tomcat版本说明

3.Tomcat作用

可以在Tomcat中运行我们所编写的Servlet、JSP。

4.Tomcat目录结构与介绍

5.Tomcat配置文件介绍

Tomcat 的配置文件由4个xml组成,分别是 context.xml、 web.xml、server.xml、tomcat-users.xml。每个文件都有自己的 功能与配置方法。

context.xml

context.xml 是 Tomcat 公用的环境配置。 Tomcat 服务器会定时 去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自 动重新加载这个文件,而不需要重启服务器 。

web.xml

Web应用程序描述文件,都是关于是Web应用程序的配置文件。所有Web应用的 web.xml 文件的父文件。

server.xml

tomcat 服务器的核心配置文件,server.xml的每一个元素都对 应了 tomcat中的一个组件,通过对xml中元素的配置,实现对 tomcat中的各个组件和端口的配置。

tomcat-users.xml

配置访问Tomcat的用户以及角色的配置文件

6.解决控制台乱码

控制台产生乱码的原因是在Tomcat在输出日志中使用的是UTF-8编 码,而我们中文的Windows操作系统使用的是GBK编码。由于编码格式不统一,所以出现了乱码。

解决方式: 修改conf目录中的logging.properties文件重新指定的编码方式。  java.util.logging.ConsoleHandler.encoding = GBK

7.Tomcat组件

Server组件 启动一个server实例(即一个JVM进程),它监听在8005端口以接 收shutdown命令。Server的定义不能使用同一个端口,这意味着如果在同一个物理机上启动了多个Server实例,必须配置它们使用不同的端口。

Service组件 Service主要用于关联一个引擎和与此引擎相关的连接器,每个连接器通过一个特定的端口和协议接收请求并将其转发至关联的引擎进 行处理。困此,Service要包含一个引擎、一个或多个连接器。

Connector组件 支持处理不同请求的组件,一个引擎可以有一个或多个连接器,以 适应多种请求方式。默认只开启了处理Http协议的连接器。如果需 要使用其他协议,需要在Tomcat中配置该协议的连接器。

Engine是Servlet处理器的一个实例,即servlet引擎,定义在 server.xml中的Service标签中。Engine需要defaultHost属性来为 其定义一个接收所有发往非明确定义虚拟主机的请求的Host组件。name:Engine组件的名称; defaultHost:Tomcat支持基于FQDN(Fully Qualified Domain Name 全限定域名)的虚拟主机,这些虚拟主机可以通过在Engine容 器中定义多个不同的Host组件来实现;但如果此引擎的连接器收到 一个发往非明确定义虚拟主机的请求时则需要将此请求发往一个默 认的虚拟主机进行处理,因此,在Engine中定义的多个虚拟主机的 主机名称中至少要有一个跟defaultHost定义的主机名称同名;

Host组件

虚拟主机(英语:virtual hosting)或称共享主机(shared web hosting),又称虚拟服务器,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。 Host组件位于Engine容器中用于接收请求并进行相应处理的虚拟主机。通过该容器可以运行Servlet或者JSP来处理请求。name:虚拟主机的名称,Tomcat通过在请求URL中的域名与 name中的值匹配,用于查找能够处理该请求的虚拟主机。如果未找到则交给在Engine中defaultHost指定的主机处理; appBase:此Host的webapps目录,即指定存放web应用程序的目录的路径;

Context组件

Context是Host的子组件,代表指定一个Web应用,它运行在某个指定的虚拟主机(Host)上;每个Web应用都是一个WAR文件,或文件的目录。

备注:

以下发表一下鄙人的一些拙见,关于Tomcat部署文件的原理,这一点还是有不少的难度,鄙人也是查询了许多的资料,终是大概吧。

首先,我们要通过域名找到是哪台计算机,其次是找到tomcat端口号,根据端口号,Connector组件会为我们去找对应的Service组件,(注意一个Service可以有多个端口号)在每个Service组件中有一个Engine组件,里面可以配置许多的虚拟主机(host),但是一定有一个默认虚拟主机,每个虚拟主机配置了一个文件夹,里面可以有多个项目文件。我们根据域名找到相应的host,找不到或者直接就是localhost域名,就去找默认的那个虚拟主机,它默认的文件夹是webapps。接下来重点来了,别忘了Context组件,Context组件指定一个Web应用,说白了就是绑定一个单个项目文件。

<Context path="/test" docBase"D:\web\weba\a.html">

像这样,我们访问的路径就是localhost:8080/test/web/weba/a.html。那我们host组件下的文件怎么找呢,其实webapps下也要有类似test这样的文件夹(webapps下不能直接放单个文件,要放文件夹),默认上面那个path,接下来我们根据路径去找单个的项目文件或者包。

为啥要讲这么多呢,因为我们的idea集成tomcat部署项目时,项目不是部署在默认的webapps目录下,它创了个副本,就是用到了Context组件。idea为我们打包的那个war包,就相当于上面的那个test路径。要学会去找到部署的文件。一开始运行会出现hello world,这是默认的友好界面,找不到相应文件就找这个文件。

  • 41
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐晓率

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值