加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Http请求是怎么样 SpringMVC Tomcat如何达成

发布时间:2021-12-11 14:39:55 所属栏目:教程 来源:互联网
导读:都SpringMVC了为什么还要学Servlet? 今天面试一个工程师,tomcat、springmvc都懂,基础还不错,最后问了这个故障:SpringMVC、Tomcat是怎样完成一次Http请求的? 能回答说tomcat把请求分配给springmvc,具体业务逻辑由springmvc执行,听着有些含糊。 其实这
 都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容器,当然也可以当作web服务器直接运用,负责把接收和返回http请求。
 
 
  下面,我们通过一个更细致的时序图来看一下具体工作过程:
 
  从上图我们看出一个Http的具体处理流程:
 
  Servlet容器分析客户的请求信息
 
  Servlet容器创建一个HttpRequest对象,将客户请求的信息封装到这个对象中
 
  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服务器、应用服务器,这些大家常常用到的名字,到底有什么分别。
 
  所学知识,要多想一点,尤其是现在,很多同学都是通过微信号这些一篇一篇的文章学的,甚至不怎么学,直接百度来的,那么要注意把点连成线,把线扩成面。

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读