在软件中查看。将classpath:/static2/目录下的资源路径作为静态资源目录,实现虚拟目录的效果,即可查看配置的虚拟目录。虚拟服务器可拥有一个宿主目录和任意数量的其它发布目录。
大家好,今天小编关注到一个比较有意思的话题,就是关于虚拟主机目录tomcat的问题,于是小编就整理了4个相关介绍虚拟主机目录tomcat的解答,让我们一起看看吧。
文章目录:
在软件中查看。将classpath:/static2/目录下的资源路径作为静态资源目录,实现虚拟目录的效果,即可查看配置的虚拟目录。虚拟服务器可拥有一个宿主目录和任意数量的其它发布目录,其它发布目录称为虚拟目录。
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是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
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点解答对大家有用。
服务器购买/咨询热线:15637009171或15617636856
本文链接:http://www.sqxnmj.com/jishuzhichiyuweihu/9402.html