Spring MVC中要求的处理流程

我操持完成 50 到 100 篇有关 Spring 的文章,这是第十四篇。
如果您对Spring和编程感兴趣,欢迎订阅我的头条号,也欢迎关注我的个人独立IT博客:谈谈IT,网址便是tantanit.com哦。

本文对应Spring in Action(Spring实战)第四版第五章的5.1.1(5.1.1 Following the life of a request),将讲述Spring MVC中要求的流程。

jsp发送请求给springmvcSpring MVC中要求的处置流程 Bootstrap

每当用户在浏览器点击链接或者提交表单的时候,就会天生一个request。
request就像一个邮差,卖力将信息从一个地方地方通报到另一个地方。

request很忙,它从离开浏览器开始,一贯到随着response返回到浏览器结束,会经由很多站,而每一站都开释一些信息,又带上一些新的信息。
文章开头的图中显示了在Spring MVC中,request在哪些站点勾留:

1. 第一步,当request从浏览器发出时,它携带了用户的要求信息,至少会携带要求的url地址,但也可能携带其它数据,比如用户在表单中提交的信息。

在Spring MVC中,DispatcherServlet实现了第一步的功能。
和大多数基于Java的web框架一样,Spring MVC通过一个前端掌握器servlet(front controller servlet)来处理要求。
前端掌握器是一种通用的web运用特色,利用一个单独的servlet,将要求转发给运用的其它组件,而后面的这些组件卖力实际的处理。
在Spring MVC中,DispatcherServlet便是这个前端掌握器。

2. 第二步,为要求找到匹配的掌握器。
DispatcherServlet的任务是将要求发送给Spring MVC掌握器(controller)。
掌握器卖力处理这些要求。
但是一个web运用一样平常不会只有一个掌握器,以是DispatcherServlet须要一些帮助来决定将要求发给哪个掌握器。
要做到这点,DispatcherServlet须要讯问一个或多个handler mappings,由于handler mappings看重要求的url。

3. 第三步,DispatcherServlet将要求发给选中的掌握器,在掌握器中,要求转交了用户在表单中提交的信息,并且耐心等待掌握器处理这些信息。
实际上,在设计得比较好的运用中,掌握器自身一样平常很少处理业务逻辑,而是调用service来处理。

4. 第四步,掌握器或service处理业务逻辑之后,会产生一些信息,返回给用户,并且在浏览器中展示。
这些信息被称为model。
把这些信息直接返回给浏览器每每不足,它每每须要以用户友好的办法,比如html的办法返回。
以是,须要视图,比如JSP来展示这些信息。
掌握器会将model打包好,并且决定要渲染model的视图名称,然后将要求,以及model和视图名称,返回给DispatcherServlet。

5. 第五步,DispatcherServlet须要依赖视图解析器,根据视图名称,匹配详细的视图实现。
须要把稳的是,视图实现不一定是JSP,也可以是其它类型的模板。

6. 第六步,视图将model中的数据进行渲染,天生须要返回给客户真个输出。

7. 第七步,将结果返回给客户端。

以上便是Spring MVC中要求的处理流程,有哪里写得不足清楚的地方,欢迎在评论区进行谈论。

如果您喜好这篇文章,可以收藏和分享给更多朋友哦,在此拜谢orz!
收藏和分享后,在PC上看IT文章,不雅观感更好。
您可以通过toutiao.com访问今日头条,也可以直接访问我的独立博客tantanit.com。
这篇文章的地址是http://tantanit.com/spring-mvc-request