2019独角兽企业重金招聘Python工程师标准>>>

Tomcat Server的结构图

conf/server.xml目录结构:

Java代码  
  1. <Server>
  2. <Listener />
  3. <GlobaNamingResources>
  4. </GlobaNamingResources
  5. <Service>
  6. <Connector />
  7. <Engine>
  8. <Logger />
  9. <Realm />
  10. <host>
  11. <Logger />
  12. <Context />
  13. </host>
  14. </Engine>
  15. </Service>
  16. </Server>
<Server><Listener /><GlobaNamingResources></GlobaNamingResources<Service><Connector /><Engine><Logger /><Realm /><host><Logger /><Context /></host></Engine></Service>
</Server>

1.<Server>元素

它代表整个容器,是Tomcat实例的顶层元素.由org.apache.catalina.Server接口来定义.它包含一个或多个<Service>元素.并且它不能做为任何元素的子元素.

<Server port="8005" shutdown="SHUTDOWN" debug="0">

1>className指定实现org.apache.catalina.Server接口的类.默认值为org.apache.catalina.core.StandardServer
2>port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.
3>shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置

测试:
telnet localhost 8005  
输入:SHUTDOWN
结果:关闭tomcat

2. <Service>元素

该元素由org.apache.catalina.Service接口定义,它包含一个<Engine>元素,以及一个或多个<Connector>,这些Connector元素共享用同一个Engine元素

<Service name="Catalina">
<Service name="Apache">

第一个<Service>处理所有直接由Tomcat服务器接收的web客户请求.
第二个<Service>处理所有由Apahce服务器转发过来的Web客户请求 .

1>className 指定实现org.apahce.catalina.Service接口的类.默认为org.apahce.catalina.core.StandardService

2>name定义Service的名字

3. <Connector>元素

由Connector接口定义.<Connector>元素代表与客户程序实际交互的组件,它负责接收客户请求,以及向客户返回响应结果.

一个“Connector”(连接器)代表一个请求被接收和应答所需要的端点。每个连接器通过相关的“Container”(容器)处理请求。默认情况下,一个非SSL的HTTP/1.1的连接器被绑定在端口8080。你也可以通过根据后面的使用说明并取消第二个连接器入口的注释,在端口8443上建立一个SSL HTTP/1.1的连接器。

默认情况下,当一个web应用程序调用请求时,DNS查询是可行的。这将对性能造成一些不利的影响,因此,你可以将“enableLookups”设置为“false”来关闭DNS查询。当DNS查询被关闭时,request.getRemoteHost()将返回包含远程客户IP地址的字符串。

Coyote HTTP/1.1 Connector

className:
该Connector的实现类是org.apache.coyote.tomcat4.CoyoteConnector

port:
在端口号8080处侦听来自客户browser的HTTP1.1请求.如果把8080改成80,则只要输入 http://localhost/即可

protocol:
设定Http协议,默认值为HTTP/1.1

minSpareThreads:
该Connector先创建5个线程等待客户请求,每个请求由一个线程负责

maxSpareThread:
设定在监听端口的线程的最大数目,这个值也决定了服务器可以同时响应客户请求的最大数目.默认值为200

acceptCount:
当现有线程已经达到最大数时,为客户请求排队.当队列中请求数超过设定值时,后来的请求返回Connection refused错误

redirectport:
当客户请求是https时,把该请求转发到端口8443去

enableLookups:
如果设为true,表示支持域名解析,可以把IP地址解析为主机名.WEB应用中调用request.getRemoteHost方法返回客户机主机名.默认值为true

connectionTimeout:
定义建立客户连接超时的时间.如果为-1,表示不限制建立客户连接的时间

4.<Engine>元素

每个Service元素只能有一个Engine元素.处理在同一个<Service>中所有<Connector>元素接收到的客户请求.由org.apahce.catalina.Engine接口定义.

<Engine name="Catalina" defaultHost="localhost" debug="0">

1>className
指定实现Engine接口的类,默认值为StandardEngine

2>defaultHost
指定处理客户的默认主机名,在<Engine>中的<Host>子元素中必须定义这一主机

3>name
定义Engine的名字

在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host>

5. <Host>元素

它由Host接口定义.一个Engine元素可以包含多个<Host>元素.每个<Host>的元素定义了一个虚拟主机.它包含了一个或多个Web应用.

1> appBase :
指定虚拟主机的目录,可以指定绝对目录,也可以指定相对于<CATALINA_HOME>的相对目录.如果没有此项,默认为<CATALINA_HOME>/webapps. 它将匹配请求和自己的Context的路径,并把请求转交给对应的Context来处理

2> autoDeploy:
如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用

3> unpackWARs:
如果此项设置为true,表示把WEB应用的WAR文件先展开为开放目录结构后再运行.如果设为false将直接运行为WAR文件

4> alias:
指定主机别名,可以指定多个别名

5> deployOnStartup:
如果此项设为true,表示Tomcat服务器启动时会自动发布appBase目录下所有的Web应用.如果Web应用中的server.xml没有相应的<Context>元素,将采用Tomcat默认的Context

6.<Context>元素

它由Context接口定义.是使用最频繁的元素.每个<Context元素代表了运行在虚拟主机上的单个Web应用.一个<Host>可以包含多个<Context>元素.

Java代码  
  1. <Host name="www.sohu.com"
  2. appBase="webapps"
  3. unpackWARs="true"
  4. autoDeploy="true"
  5. xmlValidation="false"
  6. xmlNamespaceAware="false">
  7. <Context path=""
  8. docBase="F:\myworkspace\app1\WebRoot"
  9. workDir="F:\myworkspace\app1\WebRoot\work"
  10. reloadable="true">
  11. <Resource name="jdbc/erp"
  12. auth="Container"
  13. type="javax.sql.DataSource"
  14. maxActive="10000"
  15. maxIdle="3000"
  16. maxWait="10000"
  17. username="root"
  18. password="root"
  19. driverClassName="com.mysql.jdbc.Driver"
  20. url="jdbc:mysql://localhost:3306/app1?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;failOverReadOnly=false"/>
  21. </Context>
  22. </Host>
<Host name="www.sohu.com"  appBase="webapps"  unpackWARs="true"  autoDeploy="true"  xmlValidation="false"  xmlNamespaceAware="false">  <Context path=""  docBase="F:\myworkspace\app1\WebRoot"  workDir="F:\myworkspace\app1\WebRoot\work"  reloadable="true">  <Resource name="jdbc/erp"  auth="Container"  type="javax.sql.DataSource"  maxActive="10000"  maxIdle="3000"  maxWait="10000"  username="root"  password="root"  driverClassName="com.mysql.jdbc.Driver"  url="jdbc:mysql://localhost:3306/app1?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;failOverReadOnly=false"/>  </Context>
</Host>

1> path
该Context的路径名是"",故该Context是该Host的默认Context

2> docBase :
该Context的根目录
               
3> reloadable:
如果这个属性设为true, Tomcat服务器在运行状态下会监视在WEB-INF/classes和Web-INF/lib目录CLASS文件的改运.如果监视到有class文件被更新,服务器自重新加载Web应用

4> useNaming:指定是否支持JNDI,默认值为了true

5> cookies指定是否通过Cookies来支持Session,默认值为true

Tomcat 的总体结构

Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最核心的模块,您就抓住了 Tomcat 的“七寸”。

转载于:https://my.oschina.net/wanglei01hr/blog/174841

Tomcat Server相关推荐

  1. tomcat server.xml中文版

    为什么80%的码农都做不了架构师?>>>    Tomcat Server的结构图 该文件描述了如何启动Tomcat Server <Server>     <Li ...

  2. tomcat server.xml文件的配置解析

    一直想写个tomcat server.xml文件的配置详细解析,忽然发现网上有人写的挺不错的,这里就转载 :https://www.cnblogs.com/kismetv/p/7228274.html

  3. eclipse调出server_eclipse在server中tomcat server找不到的问题

    想要在eclipse的server新建tomcat服务器然而不知道怎么回事找不到Tomcat 7.0 Server 下面的红圈是tomcat server服务器(更新后才出现) 网上找的很久,只是找到 ...

  4. eclipse在server中tomcat server找不到的问题

    想要在eclipse的server新建tomcat服务器然而不知道怎么回事找不到Tomcat 7.0 Server 下面的红圈是tomcat server服务器(更新后才出现) 网上找的很久,只是找到 ...

  5. Could not load the Tomcat server configuration at \Servers\Tomcat v7.0 Server at localhost-config

    之前不小心删除了server的服务器设置,运行时各种报错Could not load the Tomcat server configuration at \Servers\Tomcat v7.0 S ...

  6. Tomcat server.xml配置示例

    转载自    Tomcat server.xml配置示例 几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构.基本上,其中的每个元数据或者配置都是容器完成初始化所需要的.正是由于 ...

  7. 如何删除 eclipse 中多余的 Tomcat server?为什么产生这种 bug?

    文章目录 前言 一.错误原因分析 二.解决方式 总结 前言 可能有些同学在使用 Eclipse 进行项目开发的时候,存在对于 Tomcat 的错误操作,会发现在下面的工具栏里 Server 的选项里面 ...

  8. 1.Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server(tomcat突然用不了)...

    Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server 是因为找不到tomcat的server,在项 ...

  9. eclipse新建tomcat server但是总是报404的解决方法

    今天在eclipse中新建了tomcat server,但是由于一些配置出了问题,导致总是出现404报错,具体情况如下 症状: tomcat在eclipse里面能正常启动,而在浏览器中访问http:/ ...

  10. Tomcat Server的结构图

    该文件描述了如何启动Tomcat Server <Server>     <Listener />     <GlobaNamingResources>     & ...

最新文章

  1. 论程序员价值:解决失误bug被涨绩效,零失误时无人问津
  2. centos在线安装svn
  3. keepalived VRRP同步组配置
  4. 修改element默认样式_ggplot2作图:修改主题元素的外观样式(整体修改)
  5. ARM指令寻址方式之: 内存访问指令寻址
  6. 【渝粤题库】陕西师范大学200131中国古代文论 作业(专升本)
  7. python中变量名后的逗号_深入浅析python变量加逗号,的含义
  8. java web核心知识_JAVA web 相关知识点
  9. Redis 有哪些数据类型?
  10. 打印并输出 log/日志到文件(C++)
  11. idea中git的运用
  12. 蓝桥方格分割(搜索)
  13. mac上配置java jdk环境
  14. 5年部队服役结束,退伍后我做了一名码农
  15. 国内坐标转换常用投影EPSG
  16. Notelife for Mac(笔记管理工具)
  17. jupyter notebook 拒绝连接 以及 查 IP
  18. 可爱精灵宝贝 DP/爆搜
  19. 你需要的iPhoneX适配
  20. Java 生成Word文档 — 简单示例

热门文章

  1. paip.java OutOfMemoryError 解决方法o33
  2. paip.-Djava.library.path -Djava.ext.dirs= 的区别
  3. 【优化运行】基于matlab多目标粒子群算法求解冷热电联供综合能源系统运行优化问题【含Matlab源码 1747期】
  4. 【TWVRP】基于matalb粒子群算法求解带时间窗的车辆路径规划问题【含Matlab源码 1272期】
  5. 【协同任务】基于matlab人工蜂群算法多无人机作业路径规划【含Matlab源码 1235期】
  6. 【图像提取】基于matlab形态学矩阵块+线段提取【含Matlab源码 1014期】
  7. 【电力负荷预测】基于matlab Elman神经网络电力负荷预测【含Matlab源码 279期】
  8. python编程语言图解_Python程序运行原理图文解析
  9. Java单链表中的元素互换位置_Java如何在链表的第一个和最后一个位置添加一个元素?...
  10. 大一计算机期末考试高数试卷,大一高数期末考试试题