专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

Http请求是怎么样 SpringMVC、Tomcat如何完成【介绍】

来源:小易整编  作者:小易  发布时间:2022-06-18 02:19
摘要:都SpringMVC了为什么还要学Servlet? 今天面试一个工程师,tomcat、springmvc都懂,基础还不错,最后问了这个故障:SpringMVC、Tomcat是怎样完成一次Http请求...

  都SpringMVC了为什么还要学Servlet?

  今天面试一个工程师,tomcat、springmvc都懂,基础还不错,最后问了这个故障:SpringMVC、Tomcat是怎样完成一次Http请求的? 能回答说tomcat把请求分配给springmvc,具体业务逻辑由springmvc执行,听着有些含糊。 其实这个故障只是把各自独立的内容整合在一起问而已,就把面试者难住了。要回答这个故障并不难。

  首先,我们来看看Tomcat、SpringMVC各自的定位和职责。

  Tomcat和SpringMVC的职责

  Tomcat:The Apache Tomcat software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies.

  SpringMVC:Spring推出的基于Servlet标准的MVC框架实现。

  正是因为上面的定义,程序员经常把Tomcat是一个Servlet容器,其实Tomcat实现的功能比这个要更多一些。

  由上面两个的职责描述,可以看出SpringMVC和Tomcat的结合点是Servlet。其实SpringMVC的DispatchServlet实现了HttpServlet,那么SpringMVC在Tomcat看来,其实就是一个Servlet。

  Tomcat和Servlet的工作原理

  Tomcat作为Servlet容器,当然也可以当作web服务器直接运用,负责把接收和返回http请求。

  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服务器、应用服务器,这些大家常常用到的名字,到底有什么分别。

  所学知识,要多想一点,尤其是现在,很多同学都是通过微信号这些一篇一篇的文章学的,甚至不怎么学,直接百度来的,那么要注意把点连成线,把线扩成面。


本文地址:IT问答频道 https://www.hkm168.com/itwenda/7916.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


IT问答
小编:小易整编
相关文章相关阅读
  • 网络设备是什么意思?

    网络设备是什么意思?

    网络设备,也称网络基础设施,是指用于建立网络的基础硬件,是实现网络通信的重要支撑。比如说路由器、交换机、网桥、网卡、无线路由器等。路由器是一种用于连接不同网段的网络设备,它能实现不同网段之间的互联互通,其基本作用是有效连接多个网络,具有接...

  • DHCP服务如何分配IP地址给网络设备

    DHCP服务如何分配IP地址给网络设备

    通过DHCP发现、提供、请求和确认的步骤,将可用的IP地址和其他网络配置信息传递给设备;可以采用动态分配、静态分配和预约分配等方法来分配IP地址;管理员需要合理配置DHCP服务器的地址范围和租期,并注意冲突检测、安全性和认证等方面的设置。在...

  • SCDMA无线市话是什么 SCDMA无线市话系统网络设备单元介绍【详解】

    SCDMA无线市话是什么 SCDMA无线市话系统网络设备单元介绍【详解】

    SCDMA无线市话是什么意思SCDMA无线市话(俗称/大灵通)是新一代的无线市话,它与定位于无线市话的制式小灵通不同,系统是真正的移动通信技术。SCDMA无线市话大灵通是国家九五攻关项目,大量采用了中国唯一拥有自主知识产权的3...

  • 华为网络设备基本配置,这7个命令你会几个?

    华为网络设备基本配置,这7个命令你会几个?

    华为网络设备基本配置,这7个命令你会几个?1、链路聚合是什么?链路聚合(link aggregation)是将多个物理接口当做一个逻辑接口,以增加带宽和提供线路冗余。链路聚合的带宽理论上相当于所包含的物理接口带宽总和,非常适用于企业核心网络...

  • Modem是什么

    Modem是什么

    Modem是什么 Modem是什么?常说的Modem,其实是Modulator(调制器)与Demodulator(解调器)的简称,中文称为调制解调器。也有人跟据Modem的谐音,亲昵地称之为 猫 。计...

  • 公共广播系统是什么

    公共广播系统是什么

    公共广播系统是什么 公共广播系统属于扩声音响系统中的一个分支,而扩声音响系统又称专业音响系统涉及电声、建声和乐声三种学科的边缘科学。所以公共广播系统最终效果涉及合理、正确的电声系统设计和调试,良好的声...

  • 路由器端口映射怎么设置

    路由器端口映射怎么设置

    路由器端口映射怎么设置?使用路由器后,Internet用户无法访问到局域网内的主机,因此不能访问内网搭建的Web、FTP、Mail等服务器。路由器端口映射功能可以实现将内网的服务器映射到Intern...

  • 什么牌子的路由器好

    什么牌子的路由器好

    移动设备的迅速崛起,让人们越来越依赖WiFi上网,路由器是连接各个网络的设备,同一个网络,多人同时使用,这就是路由器的主要功能。它以最佳的路径将接收到的信号发送出去。因此路由器现在广泛的应用到了各行...

  • 周排行
  • 月排行
  • 年排行

精彩推荐