huijial 发表于 2018-10-21 09:51:50

tomcat中server.xml文件详解

  原文:http://www.cnblogs.com/starhu/p/5599773.html
  Tomcat Server的结构图如下:
http://img.blog.csdn.net/20130826174226703
  该文件描述了如何启动Tomcat Server
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gif   
http://www.blogjava.net/Images/OutliningIndicators/None.gif   
http://www.blogjava.net/Images/OutliningIndicators/None.gif   
http://www.blogjava.net/Images/OutliningIndicators/None.gif
  测试:
  telnet localhost 8005
  输入:SHUTDOWN
  结果:关闭tomcat
  
  1>className指定实现org.apache.catalina.Server接口的类.默认值为org.apache.catalina.core.StandardServer
  2>port指定Tomcat监听shutdown命令端口.终止服务器运行时,必须在Tomcat服务器所在的机器上发出shutdown命令.该属性是必须的.
  3>shutdown指定终止Tomcat服务器运行时,发给Tomcat服务器的shutdown监听端口的字符串.该属性必须设置
  元素
  该元素由org.apache.catalina.Service接口定义,它包含一个元素,以及一个或多个,这些Connector元素共享用同一个Engine元素
  
http://www.blogjava.net/Images/OutliningIndicators/None.gif
  
  
  第一个处理所有直接由Tomcat服务器接收的web客户请求.
  第二个处理所有由Apahce服务器转发过来的Web客户请求 .
  1>className 指定实现org.apahce.catalina.Service接口的类.默认为org.apahce.catalina.core.StandardService
  2>name定义Service的名字
  元素
  由Connector接口定义.元素代表与客户程序实际交互的给件,它负责接收客户请求,以及向客户返回响应结果.
  
http://www.blogjava.net/Images/OutliningIndicators/None.gif
  
http://www.blogjava.net/Images/OutliningIndicators/None.gif-->
  
  
  第一个Connector元素定义了一个HTTP Connector,它通过8080端口接收HTTP请求;第二个Connector元素定义了一个JD Connector,它通过8009端口接收由其它服务器转发过来的请求.
  元素
  每个Service元素只能有一个Engine元素.处理在同一个中所有元素接收到的客户请求.由org.apahce.catalina.Engine接口定义.
  
http://www.blogjava.net/Images/OutliningIndicators/None.gif
  
  1>className指定实现Engine接口的类,默认值为StandardEngine
  2>defaultHost指定处理客户的默认主机名,在中的子元素中必须定义这一主机
  3>name定义Engine的名字
  在可以包含如下元素, , ,
  元素
  它由Host接口定义.一个Engine元素可以包含多个元素.每个的元素定义了一个虚拟主机.它包含了一个或多个Web应用.
  
http://www.blogjava.net/Images/OutliningIndicators/None.gif
http://www.blogjava.net/Images/OutliningIndicators/None.gif
  
  在元素中可以包含如下子元素
  , , ,
  元素
  它由Context接口定义.是使用最频繁的元素.每个
http://www.blogjava.net/Images/OutliningIndicators/None.gif
  
  Tomcat Server处理一个http请求的过程
  假设来自客户的请求为:http://localhost:8080/wsota/wsota_index.jsp
  1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
  2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
  3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host
  4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
  5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context
  6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)
  7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet
  8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
  9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
  10)Context把执行完了之后的HttpServletResponse对象返回给Host
  11)Host把HttpServletResponse对象返回给Engine
  12)Engine把HttpServletResponse对象返回给Connector
  13)Connector把HttpServletResponse对象返回给客户browser


页: [1]
查看完整版本: tomcat中server.xml文件详解