Tomcat 和 Servlet工作原理
Tomcat和Servlet时序图
从上图我们看出一个Http的具体处理流程:
Web客户向Servlet容器(Tomcat)发出Http请求
Servlet容器分析客户的请求信息
Servlet容器创建一个HttpRequest对象,将客户请求的信息封装到这个对象中
Servlet容器创建一个HttpResponse对象
Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数
传给 HttpServlet对象
HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息
HttpServlet调用HttpResponse对象的有关方法,生成响应数据
Servlet容器把HttpServlet的响应结果传给Web客户
Tomcat下Servlet的配置文件:web.xml
web.xml的作用是配置Http和Servlet之间的映射关系、filter、context参数等。这样通过这份约定的配置文件,Tomcat可以把Http请求映射到不同的Servlet实例上。所以,在Servlet时代的web.xml中,会有很多的 项配置。
SpringMVC的改变
我们上面说过,SpringMVC也是Servlet的实现,只不过SpringMVC增加了一个DispatchServlet,所有的http请求都是映射到这个Servlet上,请求进入到这个Servlet中之后,就算进入到了框架之中了,由这个Servlet来统一的分配http请求到各个Controller,接下来的事情大家就清楚了。
PS:最后给大家几个建议:
很多人问我都SpringMVC了,为什么还需要学习Servlet,这篇文章如果能加副标题,我就会把它加上。嗯,我就把定为标题算了。
技术的学习一定要细心一点,多提问,举个例子,http服务器、web服务器、应用服务器,这些大家常常用到的名字,到底有什么分别。
所学知识,要多想一点,尤其是现在,很多同学都是通过微信号这些一篇一篇的文章学的,甚至不怎么学,直接百度来的,那么要注意把点连成线,把线扩成面。