写在前面
温故而知新,今天一路来复习一下spring mvc的内容吧。
spring mvc简介与运行道理
Spring的模型-视图-控制器(MVC)框架是环绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支撑可设备的处理器映射、视图衬着、本地化、时区与主题衬着等,甚至还能支撑文件上传。

(1) Http请求:客户端请求提交到DispatcherServlet。
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路!
(2) 寻找处理器:由DispatcherServlet控制器萌芽一个或多个HandlerMapping,找到处理请求的Controller。
(3) 调用处理器:DispatcherServlet将请求提交到Controller。

(4)(5)调用营业处劳憾サ回结不雅:Controller调用营业逻辑处理后,返回ModelAndView。
(6)(7)处理视图映射并返回模型: DispatcherServlet萌芽一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。
(8) Http响应:视图负责将结不雅显示到客户端。
重要注解
ContextLoaderListener
在讲ContextLoaderListener之前,起首来懂得一下web.xml的感化:
- 一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。web.xml文件是用来初始化设备信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。当你的web工程没用到这些时,你可以不消web.xml文件来设备你的Application。
- 当要启动某个web项目时,办事器软件或容器如(tomcat)会第一步加载项目中的web.xml文件,经由过程个中的各类设备来启动项目,只有个中设备的各项均无误时,项目才能精确启动。web.xml有多项标签,在其加载的过程中次序依次为:context-param >> listener >> fileter >> servlet。(同类多个节点以出现次序依次加载)

而spring mvc启动过程大年夜致分为两个过程:
- ContextLoaderListener初始化,实例化IoC容器,并将此容器实例注册到ServletContext中。
- DispatcherServlet初始化。
个中ContextLoaderListener监听器它实现了ServletContextListener这个接口,在web.xml设备这个监听器,启动容器时,就会默认履行它实现的办法。在ContextLoaderListener中接洽关系了ContextLoader这个类,所以全部加载设备过程由ContextLoader来完成。

前面说到DispatcherServlet中有个特别的Bean叫MultipartResolver,可用于限制文件的上传大年夜小等。当解析器MultipartResolver完成处理时,请求便会像其他请求一样被正常流程处理。
ServletContextListener 接口有两个办法:contextInitialized,contextDestroyed

DispatcherServlet
Spring MVC框架,与其他很多web的MVC框架一样:请求驱动;所有设计都环绕着一个中心Servlet来展开,它负责把所有请求分发到控制器;同时供给其他web应用开辟所须要的功能。不过Spring的中心处理器,DispatcherServlet,能做的比这更多。
下图展示了Spring Web MVC的DispatcherServlet处理请求的工作流。熟悉设计模式的同伙会发明,DispatcherServlet应用的其实就是一个“前端控制器”的设计模式(其他很多优良的web框架也都应用了这个设计模式)。
流程图:
在web.xml中的设备:

控制器:
个中
- load-on-startup:表示启动容器时初始化该Servlet;
- url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩大名的请求。

在Spring MVC中,每个DispatcherServlet都持有一个本身的高低文对象WebApplicationContext,它又持续了根(root)WebApplicationContext对象中已经定义的所有bean。这些持续的bean可以在具体的Servlet实例中被重载,在每个Servlet实例中你也可以定义其scope下的新bean。
WebApplicationContext持续自ApplicationContext,它供给了一些web应用经常须要用到的特点。它与通俗的ApplicationContext不合的处地点于,它支撑主题的解析,并且知道它接洽关系到的是哪个servlet(它持有一个该ServletContext的引用)

spring mvc同时供给了很独特别的注解,用于处理要乞降衬着视图等。DispatcherServlet初始化的过程中会默认应用这些特别bean进行设备。如不雅你想指定应用哪个特定的bean,你可以在web应用高低文WebApplicationContext中简单地设备它们。
推荐阅读
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 临渊羡鱼,不如退而结网。我们步步为营,大年夜头开端赞助你用Python做出第一张词云图来。迎接测验测验哦>>>详细阅读
本文标题:Spring思维导图,让Spring不再难懂(mvc篇)
地址:http://www.17bianji.com/lsqh/36292.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示