Tomcat工作原理

Tomcat是Servlet运行环境(容器),每一个Servlet执行init(),service(),destory().

下面我们来分析一下Tomcat Server处理一个http请求过程来解释Tomcat原理

假设 :

    来自客户的请求为:http://localhost:8080/student/index.jsp

    1.请求被发送到本机端口8080,被在哪里侦听的Coyote Http/1.1 Connerctor获得

    2.Connector 把请求交给它所在的Service的Engine来处理,并等待来自Engine的回应

    3.Engine获得请求locahost/student/index.jsp,匹配他所拥有的所有虚拟主机Host

    4.Engine匹配到名为locahost的Host(即使匹配不到也会将请求交给Host处理,因为该Host被定义为该Engine的默认主机)

    5.locahost Host获得请求/student/index.jsp匹配他所拥有的所有Context

    6.Host匹配到路径为/student的Context(如果匹配不到就把请求交给路径为“”的Context去处理)

    7.path=“/student”的Context获得请求/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


Tomcat工作原理