聊聊Tomcat配置文件之Server.xml

前面的话

server.xml可以看作tomcat结构的缩影,读懂了它对tomcat的设计模型及处理机制也就了解了个大概。总之,读懂server.xml大有裨益。

文件结构预览

聊聊Tomcat配置文件之Server.xml_第1张图片
tomcat之server.xml结构图

解读

  1. Server元素

    • 它表示整个tomcat容器,是tomcat的顶层元素,对应org.apache.catalina.Server接口,默认值为org.apache.catalina.core.StandardServer
    • 一个Server表示一个完整的JVM独立组件 ,可以包含一个或多个Service元
    • Server表示的是tomcat的整体抽象
  2. Service元素

    • 对应org.apache.catalina.Service接口,默认为org.apahce.catalina.core.StandardService
    • 一个Service包含一个Engine元素和一个或多个Connector元素
  3. Connector元素

    • 表示与客户端实际交互的组件,负责接收客户端请求及返回响应结果
    • AJP连接器:用于将Apache与Tomcat集成在一起,当Apache接收到动态内容请求时,通过在配置中指定的端口号将请求发送给在此端口号上监听的AJP连接器组件
  4. Engine元素

    • tomcat的标准独立引擎,分析请求中的HTTP头信息,并将请求转发到适当主机或虚拟主机上
    • 默认虚拟主机是localhost
  5. Host元素

    • 一个Engine元素可以包括一个或多个Host元素
    • Host元素定义了一个虚拟主机,包含一个或多个Web应用
  6. Context元素

    • 一个Context元素代表了一个运行在虚拟主机上的单个web应用
聊聊Tomcat配置文件之Server.xml_第2张图片
节点解释.png

tomcat请求处理流程

假设请求为:http://localhost:8080/hxysea/index.jsp

  • 请求发送到Tomcat上,被监听在8080端口的Connector获得
  • Conncetor将请求交给它所在Service的Engine处理,并等待Engine响应
  • Engine获取请求localhost/hxysea/index.jsp,匹配到主机名为locaohost虚拟主机Host,将请求交给此Host
  • localhost这个Host获得请求hxysea/index.jsp,匹配到Conext名为hxysea的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)
  • path="/hxysea"的Context获得请求/index.jsp,在它的mapping table中寻找对应的servlet
  • Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
  • 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
  • Context把执行完的HttpServletResponse对象返回给Host
  • Host把HttpServletResponse对象返回给Engine
  • Engine把HttpServletResponse对象返回给Connector
  • Connector把HttpServletResponse对象返回给客户端

一个完整的server.xml





    
    
    
    
    
    

    

        

        
    

    

    

        

        

        


        
        

            
            
                
            

            

                
                

            
        
    



部署问题

  1. tomcat接收get请求,解决中文乱码问题,增加useBodyEndingForURI=true配置
    
    

你可能感兴趣的:(聊聊Tomcat配置文件之Server.xml)