之前的两篇我们介绍完了SpringMvc处理Web请求的流程,但是SpringMvc毕竟只是个框架,一次Web请求或者说Http请求到底是怎么到我们的SpringMvc中的?你难道不想知道?本篇让我们一起来揭开这个神秘的面纱。
网络小知识
首先我们要来看一下一次Http请求在底层网络层面是怎么回事,具体示意图如下: 我们的Http请求从客户端到服务器就像上图一样网络包要经过这样的处理,我们的Web容器会监听Web应用的端口,然后拿到请求报文,然后丢给SpringMvc去处理。那么网络这一块我们就算说完了。接下来我们仔细看一下Web容器,这里以Tomcat为例。Tomcat的体系结构
Tomcat是一个Web应用服务器,同时也是一个Servlet/JSP容器。Tomcat作为Servlet容器,负责处理客户端请求,把请求传送给Servlet,并将Servlet的响应返回给客户端。server.xml文件源代码如下:<?xml version="1.0" encoding="UTF-8"?><Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className=