当前位置: 首页 > 技术支持 > 服务器维护>> 如何查看springboot内置tomcat里配置的虚拟目录(分享:详细讲解Tomcat之系统架构)

如何查看springboot内置tomcat里配置的虚拟目录(分享:详细讲解Tomcat之系统架构)

在软件中查看。将classpath:/static2/目录下的资源路径作为静态资源目录,实现虚拟目录的效果,即可查看配置的虚拟目录。虚拟服务器可拥有一个宿主目录和任意数量的其它发布目录。

大家好,今天小编关注到一个比较有意思的话题,就是关于虚拟主机目录tomcat的问题,于是小编就整理了4个相关介绍虚拟主机目录tomcat的解答,让我们一起看看吧。

如何查看springboot内置tomcat里配置的虚拟目录(分享:详细讲解Tomcat之系统架构)

文章目录:

  1. 如何查看springboot内置tomcat里配置的虚拟目录
  2. 分享:详细讲解Tomcat之系统架构
  3. Tomcat的功能是什么
  4. Tomcat 组件简介

一、如何查看springboot内置tomcat里配置的虚拟目录

在软件中查看。将classpath:/static2/目录下的资源路径作为静态资源目录,实现虚拟目录的效果,即可查看配置的虚拟目录。虚拟服务器可拥有一个宿主目录和任意数量的其它发布目录,其它发布目录称为虚拟目录。

二、分享:详细讲解Tomcat之系统架构

Tomcat 或者 Jetty 就是一个“HTTP 服务器 + Servlet 容器”,我们也叫它们 Web 容器。

Spring 框架就是对 Servlet 的封装,Spring 应用本身就是一个 Servlet,而 Servlet 容器是管理和运行 Servlet 的。

Servlet 接口和 Servlet 容器这一整套规范叫作 Servlet 规范。Tomcat 和 Jetty 都按照 Servlet 规范的要求实现了 Servlet 容器。

Servlet 容器工作流程:

当客户请求某个资源时,HTTP 服务器会用一个 ServletRequest 对象把客户的请求信息封装起来,然后调用 Servlet 容器的 service 方法,Servlet 容器拿到请求后,根据请求的 URL 和 Servlet 的映射关系,找到相应的 Servlet,如果 Servlet 还没有被加载,就用反射机制创建这个 Servlet,并调用 Servlet 的 init 方法来完成初始化,接着调用 Servlet 的 service 方法来处理请求,把 ServletResponse 对象返回给 HTTP 服务器,HTTP 服务器会把响应发送给客户端。

Servlet 规范提供了两种扩展机制:Filter和Listener。

Tomcat 要实现 2 个核心功能:

因此 Tomcat 设计了两个核心组件连接器(Connector)和容器(Container)来分别做这两件事情。连接器负责对外交流,容器负责内部处理。

1,连接器

连接器需要完成 3 个高内聚的功能:

因此 Tomcat 的设计者设计了 3 个组件来实现这 3 个功能,分别是 EndPoint、Processor 和 Adapter。

Endpoint 和 Processor 放在一起抽象成了 ProtocolHandler 组件,连接器用 ProtocolHandler 来处理网络连接和应用层协议。

EndPoint 是一个接口,它的抽象实现类 AbstractEndpoint 里面定义了两个内部类:Acceptor 和 SocketProcessor。其中 Acceptor 用于监听 Socket 连接请求。SocketProcessor 用于处理接收到的 Socket 请求。

EndPoint 接收到 Socket 连接后,生成一个 SocketProcessor 任务提交到线程池去处理,SocketProcessor 的 Run 方法会调用 Processor 组件去解析应用层协议,Processor 通过解析生成 Request 对象后,会调用 Adapter 的 Service 方法。

2,容器

Tomcat 设计了 4 种容器,分别是 Engine、Host、Context 和 Wrapper。这槐宏 4 种容器不是平行关系,而是父子关系。

Context 表示一个 Web 应用程序;Wrapper 表示一个 Servlet,一个 Web 应用程序中可能会有多个 Servlet;Host 代表的是一个虚拟主机,或者说一个站旅键点,可以给 Tomcat配置多个虚拟主机地址,而一个虚拟主机下可以部署多个 Web 应用程序;Engine 表示引擎,用来管理多个虚拟站点,一个 Service 最多只能有一个 Engine。

请求定位 Servlet 的过程:Tomcat 会创建一个 Service 组件和一个 Engine 容器组件,在 Engine 容器下创建两个 Host 子容器,在每个 Host 容器下创建两个 Context 子容器。由于一个 Web 应用通常有多个 Servlet,Tomcat 还会在每个 Context 容器里创建多个 Wrapper 子容器。

每一个容器都有一个 Pipeline 对象。

3,一个请求在 Tomcat 中流转的过程

4,startup.sh 启动 tomcat 的过程:铅镇册

粉丝福利,需获取Tomcat、spring等架构资料

三、Tomcat的功能是什么

Tomcat是Apache 软件基金会的Jakarta 项目中的一个核心早羡项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。

扩展资料:

Tomcat-配置虚拟主机

关于server.xml中“Host”这个元素,只有在设置虚拟主机的才需要修改。虚拟主机是一种在一个web服务器上服务多个域名的机制闷顷,对每个域 名而言,都好象独享了整个主机。实际上,大多数的小型商务网站都是采用虚拟主机实现的,这主要是因为虚拟主机能直接连接到Internet并提供相应的带 宽,以保障合理的访问响应速度,另外虚拟主机还能提供一个稳定的固定IP。

基于名字的虚拟主机可以被建立在任何web服务器上,建立的方法就是通过在域名服务器(DNS)上建立IP地址的别名,并且告诉web服务器把去往不同域 名的请求分发到相应的网页目录。

参考资料来源:百度蚂睁陆百科-Tomcat

四、Tomcat 组件简介

title: Tomcat 组件简介

date: 2020/05/06 17:19

先简单介绍一下 Tomcat 中的各种组件,要不你后面听不懂

conf/server.xml

根据Tomcat自身的分类,上面这些元素可以分成四种:

一个Tomcat只有一个 Server.xml,即一个Tomcat实例只有一个Server

它不是一个容器,它只是单纯地扮演着一个包裹的角色。

它代表 Tomcat 实例本身。

Server可配置的属性很少。根据上面摘录的默认配置,Server会侦听localhost的TCP端口8005,当该端口接收到字符串"SHUTDOWN"时,即执行关闭Tomcat操作。

Server有两种特有的组件,一个是GlobalNamingResources(全局命名资源),一个是Service(服务)。

除此之外,还可以有Listener(监听器)这种可以作用于不同层次容器的组件。Server默认配置了六种Listener。配置在Server这一层的Listener对所有容器起作用。

它代表整个 Tomcat 实例,因此它还拆昌有一个作用,就是监听 SHUTDOWN 请求。

它是一个顶层组件,用于包裹它下面的多个 Service 组件。

一个Service就是一个完整的服务,负责将若干个Connector和一个Engine(引擎)包裹在一起。除此之外,Service还可以配置一个Executor(共享线程池)用于管理所有Connector的线程数量。

如图所示,Service有Executor、Connector和Engine三种组件。其中,每个Connector负责侦听一个TCP端口,接收相应的请求,并转发给绑定的Engine处理。Engine处理完后,通过Connector把结果返回给客户端。在配置了Executor的情况下,所有Connector的线程受Executor统一管理。

它的作用是将多个连接器与容器实例联系起来,使得不同协议的请求可以使用同一个容器来处理。

Engine是Service的请求处理引擎,负责处理所有Connector发过来的请求,并将内部好戚处理完毕的结果返回给Connector。它是最外层的容器。

Engine.name - 引擎的名称

Engine.defaultHost - 默认采用哪一个子容器Host来处理请求

Engine 的作用是可以采用一个连接器接收请求并映射到不同的域名中

一个Host就是一个虚拟主机,对应一个或多个域名。友御陵

Host.name - 主机名称(域名)

默认配置定义了一个名为 localhost 的主机。至少要有一个Host的名称与Engine的defaultHost一致。

除了域名外,Host可以通过子节点alias来配置别名。别名的作用与域名一致。例如:

其作用机制如下图所示:

Host.appBase - 虚拟主机的根目录

Host.unpackWARs - 放到 webapps 目录下的 WAR-file 是否应该被解压

Host.autoDeploy - 是否自动部署放到 webapps 目录下的应用

Context代表Host下面的一个虚拟目录。

默认是不配置的

Context.docBase - 应用程序的路径或者是WAR文件存放的路径

Context.path - 此web应用程序的上下文路径

Context.reloadable - 是否支持热部署

如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,并通过类加载器重新加载class文件,以实现在不重启tomcat的情况下重新部署。

Context.crossContext - 不同context是否共享session

开头说过,Connector就是墙上的插座,负责侦听一个具体的TCP端口,并通过该端口处理Engine与客户端之间的交互。默认配置定义了两个 Connector:

Valve的中文含义是阀门,可以简单地理解为Tomcat的拦截器。它负责在请求发送到应用之前拦截HTTP请求,可以定义在任何容器中。默认配置中定义了一个AccessLogValve,负责拦截HTTP请求,并写入到日志文件中。

Listener即监听器,负责监听服务器端的行为。此处需要了解的监听器有两个:

请求地址为: http://my.oschina.net/mzdbxqh

到此,以上就是小编对于虚拟主机目录tomcat的问题就介绍到这了,希望介绍关于虚拟主机目录tomcat的4点解答对大家有用。


服务器购买/咨询热线:1563700917115617636856

本文链接:http://www.sqxnmj.com/jishuzhichiyuweihu/9402.html
tags:
腾讯云服务器特惠

  • 关注微信
是否收录:

猜你喜欢

微信公众号