您当前的位置:首页 > 电脑百科 > 电脑知识

程序员云旅游:10分钟带你走完SpringMVC里一次HTTP请求处理之路

时间:2020-03-24 11:25:20  来源:  作者:

今天就由本大佬(请原谅我使用了略微夸张的修辞手法)亲自带队,来为大家导游,带领大家探秘神奇的SpringMVC世界,重走一次HTTP请求处理之路,本次行程共计7站,约用时10分钟。

程序员云旅游:10分钟带你走完SpringMVC里一次HTTP请求处理之路

 

来来来,上车的请把票买一下(点个赞、交个朋友嘛),说你呢!对!说的就是你,长这么帅,不点赞想啥呢?(别打我……保护猿类,人人有责)

OK,现在我们每个人都有一张门票(想象成每个人都是一个HTTP请求),每张票上都有一串神秘代码(不是你们想的那种神秘代码,就想象成请求链接url),车票都保存好,一会进大门可要检查的。

坐稳了,老司机这就带你起飞……

景区大门

OK,现在我们首先来到DispatcherServlet,它是作为SpringMVC的大门而存在,只有先穿过它,才能到达真正的入口。

我先来给大家科普(八卦)一下DispatcherServlet的来历:

程序员云旅游:10分钟带你走完SpringMVC里一次HTTP请求处理之路

 

DispatcherServlet虽然整了个高大上洋文名,但我们千万不要被它唬住,它本质上还是我们熟悉的那个翠花(普通Servlet类),在这给我装啥呢?

 

 

来来来,咱们继续往前走,前面即将到达doDispatch,大家都跟上!

有人问doDispatch是个啥地方呀?

它呀,相当于景区的检票口,通过之后各位就可以自由活动了,最后出来时我们再到这里集合。

来来来,这是本次的线路图,大家都来看一下!(ps:看一次5元,养家糊口不容易啊):

程序员云旅游:10分钟带你走完SpringMVC里一次HTTP请求处理之路

 

检票口

大家排好队,把门票都拿出来,准备检票啦~大包小包,过机安检(有没有一种来到车站的感觉)。

什么?把票弄丢了?别闹,腰不好。

到底检查啥呢?

这个问题问的好,一看就是个文化人。

程序员云旅游:10分钟带你走完SpringMVC里一次HTTP请求处理之路

 

 

这一步主要是检查你有没有携带物品(是不是一个上传文件请求),如果你携带了物品,那么工作人员就会把你的物品取出来包装一下、变成MultipartFile再还给你,再给你身上贴上一个此人携带贵重物品的标志,也就是multipartRequestParsed标志位(这是深怕别人不知道你有钱啊),把你和没带物品的人区分开。

确定路线

OK,检查完毕以后,接下来就是各自确定游玩路线。

各位携带贵重物品的大佬们,等会交个朋友呗!(你们还缺一位可爱真诚的小老弟吗?)

 

 

怎么确定路线?

这个问题提的太好了!怎么又是你?这位机智的朋友,我已经记住你了。

程序员云旅游:10分钟带你走完SpringMVC里一次HTTP请求处理之路

 

我们每个人不是都有一张门票嘛,门票上都有一串神秘代码(请求链接url),这里我们就是通过这个神秘代码来找到各自对应的路线(根据请求url找到对应的Controller、以及方法)。

前期准备工作

在每个人确定各自的路线后,大家有5分钟时间准备一下,现在有事还能回去,过了这村可就回不去啦。

在这期间可以做些什么事呢?

这个问题同样的非常好,首先我们来看一下:

程序员云旅游:10分钟带你走完SpringMVC里一次HTTP请求处理之路

 

HandlerInterceptor?是不是有点熟悉?对,你没有看错!就是拦截器。在这里SpringMVC会首先调用我们拦截器里的preHandle方法。

Tip:在preHandle方法里我们可以提前进行一些登录校验、权限校验、日志记录等的工作,可以将一些非法的请求拒之门外。

正式畅玩

都准备好了吧?那么大家就按照的路线去玩耍吧(执行Controller业务逻辑),最后还会有拼图大礼包再向你们招手呢(返回模型视图ModelAndView

本宝宝就在这眯一会等你们!(反正你们最后会发现还会回到这儿的)

一路都有啥好玩的?

这我可得给你好好说道说道。来,坐下,小笔记记好:

首先参数解析器会对它进行一个参数解析、校验、参数绑定的操作过程,然后才会到达我们的Controller方法进行具体的业务处理,最终都会返回一个ModelAndView

结束前的准备工作

大家都回来了没有?没回来的吱个声!(吱声我也听不到)

准备返回之前,我们还有一点时间可以搞点事情。

可以搞哪些事情?

HandlerInterceptor!恭喜这位朋友,都学会抢答了!

程序员云旅游:10分钟带你走完SpringMVC里一次HTTP请求处理之路

 

 

对,又是HandlerInterceptor拦截器,在这里会调用后置处理方法postHandle

Tip:在postHandle方法里我们有机会对返回的模型数据和试图数据进行最后的修改。

返程

欢乐的时光总是这么短暂,我们愉快的HTTP请求之旅到这里就接近尾声了。

返程途中可以干什么?

返程途中大家可以拿出拼图大礼包(ModelAndView),拼出一幅美丽的图画(View渲染)。

在这一步,DispatcherServlet会将模型数据(Model)渲染到View模版上生成一个新的视图,也就是我们看到的页面了,当然了也有可能只有数据没有视图,就像我们写接口一样。

 

 



Tags:SpringMVC   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
本篇文章我们来学习一下SpringMVC中是如何处理请求中的参数的。回想一下原生Servlet是如何处理请求参数的?我们需要使用HttpServletRequest调用getParameter方法进行获取,就像...【详细内容】
2021-08-16  Tags: SpringMVC  点击:(70)  评论:(0)  加入收藏
背景:项目是老项目,而且比较旧为springmvc项目。项目使用的框架为公司内部自己开发,目前已经没有框架的源码可供修改,配置文件写在底层框架内,可以看到但修改不到。目的是为了实...【详细内容】
2021-08-11  Tags: SpringMVC  点击:(70)  评论:(0)  加入收藏
一、什么是springmvc?我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻地理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交道,而前面刚写...【详细内容】
2021-07-14  Tags: SpringMVC  点击:(94)  评论:(0)  加入收藏
前言学了一遍SpringMVC以后,想着做一个总结,复习一下。复习写下面的总结的时候才发现,其实自己学得并不彻底、牢固、也没有学全,视频跟书本是要结合起来一起,每一位老师的视频可...【详细内容】
2021-03-08  Tags: SpringMVC  点击:(193)  评论:(0)  加入收藏
对Java程序员来讲,做web开发最熟悉的框架莫过于SpringMVC了。之所以它能一统江湖,不是自己太优秀,而是对手太坑了,不知道大家还记不记得2017年左右Struts2爆出了一个大漏洞,自此...【详细内容】
2020-10-14  Tags: SpringMVC  点击:(66)  评论:(0)  加入收藏
Ajax 异步交互SpringMVC 默认用 MappingJackson2HttpMessageConverter 对 JSON 数据进行转换,需要加入 Jackson 的包;同时在 spring-mvc.xml 使用 <mvc:annotation-driven />....【详细内容】
2020-09-14  Tags: SpringMVC  点击:(75)  评论:(0)  加入收藏
MVC是英文Modle View Controller的简称,是一种软件设计典范,目的是将业务逻辑、数据、页面视图代码分离,达到增加开发效率、降低耦合度、代码更利于维护的目的。 Spring MVC是...【详细内容】
2020-08-06  Tags: SpringMVC  点击:(53)  评论:(0)  加入收藏
前言大家好,我是bigsai,今天我们学习SpringMVC的文件上传下载。文件上传和下载是互联网web应用非常重要的组成部分,它是信息交互传输的重要渠道之一。你可能经常在网页上传下...【详细内容】
2020-07-30  Tags: SpringMVC  点击:(57)  评论:(0)  加入收藏
今天就由本大佬(请原谅我使用了略微夸张的修辞手法)亲自带队,来为大家导游,带领大家探秘神奇的SpringMVC世界,重走一次HTTP请求处理之路,本次行程共计7站,约用时10分钟。 来来来,上...【详细内容】
2020-03-24  Tags: SpringMVC  点击:(110)  评论:(0)  加入收藏
这节介绍SpringMVC,SpringMVC是一种基于Java的实现MVC设计模式的请求驱动类型的轻量级Web框架。本章会介绍相关概念,流程,再从源码进行讲解。1. MVC&emsp;MVC(Model View Contr...【详细内容】
2020-01-07  Tags: SpringMVC  点击:(50)  评论:(0)  加入收藏
▌简易百科推荐
回答这个问题前首先要了解一度电的定义一度电= 1000W&middot;h ,是一个能量单位,一个功率为1000w的设备持续运作一小时就会消耗1度电。所以台式机多少时间一度电完全取决于台...【详细内容】
2021-12-20  数码榜    Tags:台式电脑   点击:(5)  评论:(0)  加入收藏
你是不是很多时候都会紧急冲向电源插座以拯救笔记本电脑的电量?很多时候由于附近没有方便的插座,一是会误事,二是会导致尴尬。幸运的是,现代笔记本电脑比前辈高效得多。如今,即...【详细内容】
2021-12-16  趣玩公社    Tags:电池   点击:(18)  评论:(0)  加入收藏
电脑在我们生活中的重要性不言而喻。如何保证自己的电脑流畅好用,对于很多用户来说都非常重要。作为一个理科男和IT从业者,对于自己的电脑还是非常在意的,会定期的进行整理,保持...【详细内容】
2021-12-09  小伊评科技    Tags:电脑   点击:(13)  评论:(0)  加入收藏
大家好,我是良许。不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢?我在朋友圈做了个小调查,发现...【详细内容】
2021-11-30  良许Linux    Tags:固件   点击:(11)  评论:(0)  加入收藏
澎湃问吧世界著名密码史学家戴维&middot;卡恩曾说:“人类使用密码的历史几乎与使用文字的时间一样长”,这意味着人类密码领域的较量已近五千年。提及“密码”一词,大多数人会想...【详细内容】
2021-11-24    澎湃新闻  Tags:密码   点击:(16)  评论:(0)  加入收藏
由于去中心化域名和账户体系可以承载应用、网站和用户身份,因此有理由相信,这是 Web3 世界中不可或缺的一环。撰文:潘致雄如果回忆一下初次进行的加密货币转账时的体验,特别是在...【详细内容】
2021-11-03  链闻ChainNews    Tags:ENS   点击:(26)  评论:(0)  加入收藏
 文件系统(File System)是计算机系统必不可少的组成部分,可以说除了部分结构简单的单片机系统之外,文件系统是支撑每一个计算机系统运行的最重要的支撑,无论是操作系统、应用程...【详细内容】
2021-11-01  欧工玩转嵌入式  CSDN  Tags:FAT32   点击:(31)  评论:(0)  加入收藏
SDS 2.0时代进化达尔文的《进化论》认为,地球上现存的所有生物都是自然选择的结果,生物只有适应环境的变化,才能得到生存和进化。回望到企业存储,一个常做常新的行业,从上古结绳...【详细内容】
2021-10-28  ExponTech   企鹅号  Tags:SDS   点击:(35)  评论:(0)  加入收藏
在昨天的微信《远程办公危机四伏,到底该pick谁给你保驾护航?》中介绍了远程员工应该具备的四大安全工具,今天继续分享干货:05 双因子令牌在理想的情况下,每个人都会对所有的关键...【详细内容】
2021-10-26    计算机世界  Tags:远程办公   点击:(32)  评论:(0)  加入收藏
今天几乎所有的数字显示设备都基于某种类型的 RGB(红、绿、蓝)颜色模型。RGB 是表示人类可以看到的大多数颜色的最有效方式(有一些颜色不能很好地产生,但这是另一个讨论)。相机...【详细内容】
2021-10-09  懒懒散散的程序员    Tags:RGB   点击:(50)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条