Tomcat 主要组件(让你熟练运用)

   今天主要是带大家了解tomcat结构,让我们对tomcat的运行了解,方便我们更熟练去使用tomcat。

目录

  一.Tomcat结构

二.server.xml解析

    1.server

    2.service

  3.connector(连接器)

 4.Engin(引擎)

 5.Host(虚拟主机)

6.context

 三.tomcat启动

四.在server.xml文件中配置操作


  一.Tomcat结构

     tomcat主要结构图:

    Tomcat 主要组件(让你熟练运用)_第1张图片

 

     讲解:

  •    server: 就是一个tomcat。
  •    servie:  组件,可以配置多个连接器
  •    connector: 连接器,我们把请求发送给服务器,服务器需要接收请求,接收的地方就是连     接器,连接器接收到请求,进行解析,在发给其他的组件。
  •     Engin: 引擎,一个引擎下面有可以有多个虚拟主机。
  •     Host: 虚拟主机。
  •     Context : 我们发布的应用。
  •     Wrapper: 可以理解为像一个盒子一样,里面包着一个servlet。
  •     servlet: 就是我们在web项目中的servlet

二.server.xml解析

    图片的讲解可能太过于抽象,所有现在带大家用另外一种方式理解一下。

    点击tomcat--->打开conf文件夹---->打开server.xml文件

   server.xml:

    1.server

  •    代表整个Catalina Server容器,是tomcat实例的顶层元素,由org.apach.catalina.Server接口定义,其下可以包含一个或多个Service元素
  • port:关闭的端口号(监听有没有关机的请求),必须设置
  •   shutdown:关闭的命令,这两个大家最好修改一下,不然打开命名指示---->输入   127.0.0.1(别人的IP地址)8005 SHUTDOWN (关闭命令) Telnet----->关闭服务器。所以大家一定要进行修改,修改成让别人不知道的端口号和关闭命令。                                                  

    2.service

  • 由org.apache.catalina.Service接口定义,它包含一个元素,以及一个或多个元素,这些元素共享一个元素
  • name:service的名字


  3.connector(连接器)

  • 实现类: org.apache.catalina.Connector 接口的类,默认值为org.apache.catalina.core.StandardConnector
  • port=8080,定义一个HTTP Connector连接器,在8080端口监听,负责处理HTTP连接,浏览器和tomcat服务器的交互使用的就是这个连接。

      配置参数:

  • port: 配置连接端口
  • protocol: 连接使用的协议
  • connectionTimeout: 连接超时时间
  • redirectPort: 当用户用http请求某个资源,而该资源本身又被设置了必须要https方式访问,此时Tomcat会自动重定向到这个redirectPort设置的https端口(https加密协议)
  • acceptCount:设定在监听端口队列中的最大客户请求数,默认值为10,如果队列已满,客户请求将被拒绝
  • address:如果服务器有两个以上IP地址,该属性可以设定端口监听的IP地址,默认情况下,端口会监听服务器上所有IP地址
  • enableLookups:如果设为true,表示支持域名解析,可以把IP地址解析为主机名.Web应用调用request.getRemostHost方法将返回客户的主机名.该属性默认值为true
  • executor: 配置tomcat的线程池,在此配置的名称与server.xml文件中Service节点下的Executor节点name属性相对应
  • compression : 如果带宽有限的话,可以用GZIP压缩,off:表示禁止压缩、on:表示允许压缩(文本将被压缩)、force:表示所有情况下都进行压缩,默认值为off
    URIEncoding:用于解码URL的字符编码,没有指定默认值为ISO-8859-1

 4.Engin(引擎)

  •  由org.apahe.catalina.Engine接口定义.每个元素只能包括一个元素. 元素处理在同一个中所有元素接收到的客户请求
  • 相关实现类:org.apache.catalina.Engine接口的类,默认值为org.apache.catalina.core.StandardEngine
  • name 定义Engine的名字
  • defaultHost 默认处理请求的主机名,必须与其中的一个Host元素的名称一样
-

 5.Host(虚拟主机)

   由org.apache.catalina.Host接口定义.一个元素可以包含多个元素.每个元素定义了一个虚拟主机,它可以包含一个或多个Web应用.

  • 实现类 实现org.apache.catalina.Host接口的类,默认值为org.apache.catalina.core.StandardHost
  • appBase 指定虚拟主机的对应的目录(即虚拟主机的部署目录),可以是绝对路径,也可以是相对于tomcat安装目录的相对路径,默认的部署目录为webapps
  • unpackWARs 配置为true,表示tomcat会自动解压部署目录中的war包,如果配置为false,则不会解压,直接运行war文件,默认为false,建议保持默认值。
  • autoDeploy 配置为true,表示tomcat处于运行状态时可以监测部署目录中的文件状态,如果有新的web应用部署进来则自动发布这个web应用。
-

6.context


最常配置的元素,每一个Context代表一个运行在tomcat中的web应用,一个Host下可以配置多个Context. 例如:

  • 实现类: 实现org.apache.catalina.Context接口的类,默认值为org.apache.catalina.core.StandardContext
  • path 指定访问web应用的url路径
  • docBase 发布的web应用的文件路径,可以时绝对路径,也可以是相对与发布目录的相对路径
  • reloadable 设置为true,tomcat在运行期间会监测发布应用的WEB-INF/classes和WEB-INF/lib目录中的文件改动,当检测到文件变动后,tomcat会自动重新加载应用。
  • cookies 是否可以通过cookie来支持Session,默认为true
  • 虽然可以使用Context节点来部署应用,但自tomcat5.5之后就不再建议这么做,可以在/conf/Catalina/{hostname}/xxx.xml进行独立部署,最简单的方式是直接将要发布的应用放到webapps下。

   


 三.tomcat启动

  •  读取tomcat的配置文件,其中最重要的是server.xml
  •  解析配置文件,对系统组件进行初始化,包括server,service,engine,connector,endpoint,可以参考server.xml文件文件的顺序
  •  启动各种组件准备提供服务
  •  在指定的端口开始监控请求

四.在server.xml文件中配置操作

  •  首先我们先创建个新的虚拟主机,将虚拟主机的名字进行修改,在将虚拟主机对应的目录进行修改。


  • 在eclipse创建新的两个项目---->导出---->在tomcat安装目录下在新建一个文件夹,名为mywebapps---->将第一个项目放进webapps,第二个项目放进mywebapps--->点击startup.bat启动,我们在浏览器上来访问。

 访问语句分别为:

  •  第一个项目访问的路径为http://localhost:8080/Tomcat0201/
  •  第二个项目访问路径为:http://www.aq.con:8080/Tomcat0201 但是无法访问成功

 为什么访问不成功:

因为我们没有这个域名,因为域名是我们瞎起的,所以我们无法访问成功。因为他先会去系统的本地缓存里面查看有没有域名----->在去hosts文件里面是否定义对应该域名的IP地址---->在去找网关----->在去找公开的域名服务器,不存在。所以我们无法访问成功。

如何解决访问不成功:

    我们去host文件中去定义域名:

    先点击C盘----->windows------>System32----->drivers------>ect----->hosts

    在hosts(要是管理员账号才能进入操作)输入127.0.0.1 www.aq.com 保存,就可以显示出来啦

注:

如果我们将域名改成www.baidu.com这种知名网站域名,我们的web项目可以进去,但是在去访问百度,就无法访问百度。


今天的学习就到这里啦。

你可能感兴趣的:(tomcat,服务器,java)