传智播客学习之Tomcat配置WEB站点的虚拟目录

来源:互联网 发布:淘宝快递打印机 编辑:程序博客网 时间:2024/06/05 06:01

前面主要总结了Tomcat的安装,启动和停止等基本内容,今天主要和大家分享Tomcat配置WEB站点的虚拟目录等相关内容。

1.使用Tomcat配置WEB站点的虚拟目录

注:一个文件系统目录可以被映射成为多个虚拟Web目录 

    虚拟Web子目录名称可以是多级目录结构的形式 

    Tomcat按照最长路径匹配原则处理请求的URL 

1)设置WEB站点的根目录

方式一、<Host>元素的appBase属性所设置的应用程序即为基准目录,基准目录中的ROOT子目录被默认为WEB站点的根目录

方式二、使用server.xml文件中的<Context>元素

2)设置WEB站点的虚拟子目录

方式一、使用server.xml文件中的<Context>元素

方式二、特定目录中的xml文件中包含<Context>元素

方式三、<Host>元素的appBase属性所设置的应用程序基准目录中的war文件

方式四、<Host>元素的appBase属性所设置的应用程序基准目录中的含有WEB-INF/web.xml 文件的子目录

 

2.部署描述符文件

<WEB应用程序>/WEB-INF/web.xml

<Tomcat主目录>/conf/web.xml

目录的默认网页

通过<welcome-file-list>元素的<welcome-file>元素设置默认网页,注意如果在内部设置了目录默认的网页文件,服务器中设置的就被覆盖了。

3.Tomcat的层次结构

Tomcat服务器由一系列可配置组件构成,其中核心组件是Catalina Servlet容器,它是其他所有Tomcat组件的顶层容器。Tomcat各组件之间存在的层次关系如图1-2所示。

 

Tomcat的组件可以在<TOMCAT_HOME>/conf/server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素

1Server

对应Server组件,逻辑上表示整个Tomcat,即整个Catalina Servlet容器。它处于Tomcat顶层,可以包含一个或多个Service层。Tomcat提供了该层接口的一个默认实现,所以通常不需要用户自己去实现。

 

2Service

对应Service组件,是包含在Server层中的一个逻辑功能层。它包含一个Engine层,以及一个或多个连接器(Connector)。Service组件将一个或多个Connector组件绑定到Engine层上,Connector组件侦听端口,获得用户请求,并将请求交给Engine层处理,同时把处理结果发给用户,从而实现一个特定的实际功能。Tomcat提供了Service接口的默认实现,所以通常也不需要用户定制。

3Engine

对应Engine组件,该层是请求分发处理层,可以连接多个Connector。它从Connector接收请求后,解析出可以完成用户请求的URL,根据该URL可以把请求匹配到正确的Host上,当Host处理完用户请求后,Engine层把结果返回给适合的连接器,再由连接器传输给用户。该层的接口一般不需要用户来定制,特殊情况下,用户可以通过实现该接口来提供自定义的引擎。

4Host

对应Host组件,该层表示一个虚拟主机,一个Engine层可以包含多个Host层,每个Host层可以包含一个或多个Context层,对应不同的Web应用。因为Tomcat给出的Host接口的实现(类StandardHost)提供了重要的附加功能,所以用户通常不需要定制Host

5Context

对应Context组件,该层代表某个虚拟主机上的实际目录或一个WAR,即单个Web应用程序,它运行在特定的虚拟主机中,使用最为频繁。一个Host层包含多个Context层,每一个Context都有唯一的路径,Host层接到请求后,根据用户请求的URL,将请求定位到Context层。

4.基于主机明的虚拟主机

目的:在一台计算机上创建多个WEB站点,并为每个WEB站点设置不同的主目录和虚拟子目录,每个WEB站点作为各自独立的网站分配给不同的公司或部门。 

原理:WEB服务器上的每个WEB站点必须设置有不同的标识信息,WEB浏览器发出的连接和请求信息中包含WEB站点的标识信息

通过host来设置,一个host代表一个web站点,虚拟主机通过那么属性来设置,其中defaultHost用来代表别人都不对应的。

5.基于端口号的虚拟主机

一个<Connector>元素用于配置一个对外的连接器,对于WEB服务器上的每一个监听端口号,都要使用一个单独的<Connector>元素,通过里面的port属性设置。 

一个<Connector>元素对应的连接器必须有一个相关的<Engine>元素,将一个或多个<Connector>元素与某个<Engine>元素相关联的方式就是将它们嵌套在同一个<Service>元素中。 

6.基于IP地址的虚拟主机

HTTP 1.1可以使用不同的主机名来建立多个WEB站点后,虚拟主机业务提供商一般不再建立基于IP地址的虚拟主机

原创粉丝点击