作者:水果jia | 来源:互联网 | 2024-11-14 03:39
为什么多数程序员难以成为架构师?这背后的原因不仅仅是技术深度的问题,还包括经验积累和综合能力的提升。本文将通过解析Tomcat的配置和服务组件,帮助读者更好地理解其内部机制。
1. 引用
在Tomcat的配置文件中,
元素代表了一个或多个
组件的组合,这些组件共享一个
组件来处理传入的请求。一个或多个
元素可以嵌套在
元素中。
2. 表示
元素表示一组
组件的集合,这些组件共享一个
组件来处理请求。一个
元素可以包含一个或多个
组件。
3. 组合
文档参考:/docs/config/service.html
4. 端点
元素表示一个接收请求和返回响应的终端。具体文档如下:
定义一个非SSL HTTP/1.1 Connector,监听8080端口:
定义一个AJP协议的Connector,监听8009端口:
5. 入口
元素表示处理每个请求的入口,实现了Tomcat标准的Engine可以独立分析请求和请求头,并将请求传递到相关的主机。文档参考:/docs/config/engine.html
的子节点包括
和
。其中,
表示虚拟主机,
表示虚拟主机中的应用。
是顶层元素,包含一个或多个
元素。每个
包含一个或多个
和一个
,这些
共享同一个
。
是与客户端程序实际交互的组件,负责接收客户端请求并发送给服务器,接收服务器响应结果并返回给客户端。
一个
只包含一个
,
处理同一个
上所有
的请求。
一个
包含多个
,一个
是一个虚拟主机,为同一个
处理所有客户端请求。一个虚拟主机包含一个或多个Web应用,一个或多个Web应用对应的是
,实际处理客户端请求的是
。
对于Tomcat,一个HTTP请求过来,先经过
,
转发到
,
根据请求找到对应的虚拟主机
,再根据请求路径找到相应的应用
。
例如,请求 http://www.52liezheng.com:8080/g/search/default.xhtml,这个请求先经过8080端口的共享的HTTP协议的
,转发到同一个
下的
,虚拟主机名为 www.52liezheng.com
,找到这个虚拟主机
,找到对应的应用 g
,处理里面的 /search/default.xhtml
这个路径对应的Servlet,处理完毕后,负责该请求的
把响应结果返回给客户端。
只有 /search/default.xhtml
这个Servlet是需要编写的,其他部分由Tomcat负责处理。
外网请求单Tomcat,http://www.52liezheng.com/g/search/default.xhtml 经过DNS服务器解析到IP地址:119.147.24.197,定位到这个IP对应的主机,剩下的步骤同上。
同一个
可以有多个
,同一个
可以有多个
。
Java Web应用的特征是与
相关,一个
对应一个应用,Java Web应用运行时,Tomcat为这个应用创建唯一的 ServletContext
对象,为整个应用共享。
一个完整的访问过程如下:
Tomcat可以作为独立的JSP/SERVLET容器使用,默认模式下,也可以作为进程内JSP/SERVLET容器和进程外容器。
在学习JSP/SERVLET时,可以参考Tomcat自带的Servlet/JSP示例。
Tomcat在 webapps
中自带两个应用,分别是 admin
应用和 manager
应用。
Context属性
path
: 指定访问Web应用的URL入口,可以任意设置。例如,设置为 /aaa
,访问时需在URL路径前加 /aaa
。
docBase
: Web应用的文件路径,可以是绝对路径,也可以是相对于 Host
的 appBase
的相对路径。如果开放目录路径,指定Web应用根目录;如果是WAR文件,指定WAR文件目录。
reloadable
: 设置为 true
时,监视 WEB-INF/classes
和 WEB-INF/lib
下的文件改动,有改动则重加载该应用。开发阶段设为 true
,发布阶段设为 false
。
属性
Server
: port
指定Tomcat监听shutdown命令的端口,shutdown
指定Tomcat运行时发送给Tomcat的shutdown监听端口的字符串。className
使用默认值即可。
转载于:https://my.oschina.net/wrean/blog/338435