版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Spring MVC是一种基于MVC模式的Web框架,使用Spring MVC可以轻松地创建Web应用程序。Spring MVC中的DispatcherServlet是请求处理的核心组件,它负责将请求分发到正确的处理程序并处理响应。
org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration,里面有个 DispatcherServletRegistrationBean,关键是这里只能指定一个path,如下的源码截图
Spring MVC是一个MVC模式的实现。在Spring MVC的使用中,需要在web.xml中配置DispatcherServlet,也就是说其核心是一个Servlet,这个DispatcherServlet实现的是Sun的J2EE核心模式中的前端控制器模式(Front Controller),所有的Web请求都需要通过它来处理,进行转发、匹配、数据处理后,并转由页面进行展现,因此这个DispatcherServlet可以看成是Spring MVC实现最为核心的部分。
注意:Springboot的版本是2.0.5.release。 Springboot中我们引入spring-boot-starter-web依赖后,web就自动配置好了,在web.xml的年代
以下是一个简单的web.xml配置文件示例,其中包含DispatcherServlet的初始化配置:
Spring Boot一个非常突出的优点就是不需要我们额外再部署Servlet容器,它内置了多种容器的支持。我们可以通过配置来指定我们需要的容器。
开局一张图🤡 1、执行流程 1、用户发送请求至前端控制器DispatcherServlet。 2、DispatcherServlet收到请求调用处理器映射器HandlerMapping。 3、处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。 4、DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapt
Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的作用是将请求分发到不同的处理器,就是像一个中介,负责转发请求到指定处理器。
SpringMVC框架是以请求为驱动,围绕Servlet设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是DispatcherServlet,它是一个Servlet,顶层是实现的Servlet接口。
注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
在Spring Boot框架未出现之前,要开发一个基于Spring MVC框架的项目,通常需要在Java web项目的描述符文件web.xml中添加如下配置:
( 1)用户发送请求至前端控制器 DispatcherServlet ( 2) DispatcherServlet 收到请求后, 调用 HandlerMapping 处理器映射器, 请求获取 Handle ( 3) 处理器映射器根据请求 url 找到具体的处理器, 生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet ( 4) DispatcherServlet 调用 HandlerAdapter 处理器适配器 ( 5) HandlerAdapter 经过适配调用 具体处理器(Handler, 也叫后端控制器) ( 6) Handler 执行完成返回 ModelAndView ( 7) HandlerAdapter 将 Handler 执行结果 ModelAndView 返回给DispatcherServlet ( 8) DispatcherServlet 将 ModelAndView 传给 ViewResolver 视图解析器进行解析 ( 9) ViewResolver 解析后返回具体 View ( 10) DispatcherServlet 对 View 进行渲染视图( 即将模型数据填充至视图中) ( 11) DispatcherServlet 响应用户
本文介绍SpringMVC的基本原理,对于一个浏览器请求,SpringMVC的处理流程。
1.用户发送请求至前端控制器DispatcherServlet 2.DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3.处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4.DispatcherServlet通过HandlerAdapter处理器适配器调用处理器 5.执行处理器(Controller,也叫后端控制器)。 6 Controller执行完成返回ModelAndView 7.HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet 8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器 9.ViewReslover解析后返回具体View 10.DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。 11.DispatcherServlet响应用户
Spring MVC框架介绍 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 Spring MVC框架提供了构建web应用程序的全功能MVC模块,使用了Spring可插入架构,可以选择是使用内置的Spring web框架还是struts这样的web框架,通过接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring
1.用户在客户端发送请求,经过前端控制器DispatcherServlet,请求处理器处理,返回ModelAndView返回结果到前端控制器;
MVC:是一种架构模式,将业务逻辑和页面展示分离,使程序分层、分工合作,既相互独立,又协同合作。
https://www.processon.com/view/link/60573bfbe401fd4c038971d7
先看一张流程图,实线部分为spring框架完成,虚线部分(即contronller调用业务层部分)才是我们需要动手完成的
SpringMVC 框架是以请求为驱动,围绕 Servlet 设计,将请求发给控制器,然后通过模型对象,分派器来展示请求结果视图。其中核心类是 DispatcherServlet,它是一个 Servlet,顶层是实现的Servlet接口。
在之前的学习中我们已经了解了SpringBoot得基本启动流程,但是到目前为止还有几个小问题。第一是基于后置处理器的注解解析得详细过程,getBean是如何调用BeanPostProcessors提供的接口的。还有SpringBoot是如何整合Servlet的。如果上述三个问题得到的解决,就我本身来说。我觉得SpringBoot得分析就已经可以初步结束,剩下的工作就是学习springBoot得基础组件比如jdbc、cache、mvn等内容。但是这只是目前的想法,至于在这期的解析中能不能发现新的疑惑目前还不得而知。现在就让我们开始解决这三个疑问吧。
在 Web MVC 框架中,每个 DispatcherServlet 都拥有自己的 WebApplicationContext,它继承了 ApplicationContext。WebApplicationContext 包含了其上下文和 Servlet 实例之间共享的所有 beans。
1.用户发送请求至前端控制器DispatcherServlet(也叫中央处理器). 2.DispatcherServlet收到请求调用HandlerMappering处理器映射器 3.处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet. 4.DispatcherServlet调用HandlerAdapter处理器适配器。 5.HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。 6.Controller执行完成返回ModelAndView. 7.HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet. 8.DisPatcherServlet将ModelAndView传给ViewReslover视图解析器。 9.ViewReslover解析后返回具体View. 10.DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。 11.DispatcherServlet响应用户。 组件说明: 以下组件通常使用框架提供实现:
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。
在启动web服务时,此处的applicationContext类型是AnnotationConfigServletWebServerApplicationContext,原因省略。
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。
DispatcherServlet:作为前端控制器,整个流程控制的中心,控制其它组件执行,统一调度,降低组件之间的耦合性,提高每个组件的扩展性。
一、SpringMVC 执行流程 1. 流程图 2. 文字描述 ① 浏览器发送请求到服务器,DispatcherServlet(前端核心控制器) 匹配所有请求 ② DispatcherServlet
在上一篇《Spring——Web应用中的IoC容器创建(WebApplicationContext根应用上下文的创建过程)》中说到了Web应用中的IoC容器创建过程.这一篇主要讲SpringMVC的核心DispatcherServlet. 从web.xml中简要回顾一下WebApplicationContext根应用上下文的创建过程.具体过程详见上篇博客. 1 2 <context-param> 3 <param-name
通过深入分析Spring源码,我们知道Spring框架包括大致六大模块, 如Web模块,数据库访问技术模块,面向切面模块,基础设施模块,核心容器模块和模块,
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154116.html原文链接:https://javaforall.cn
Spring的Web框架就是为解决在web开发中遇到如一系列问题而设计的。 SpringMVC基于模型-视图-控制器( Model-View-Controller, MVC) 模式实现, 它能够帮你构建像Spring框架那样灵活和松耦合的Web应用程序。每当用户在Web浏览器中点击链接或提交表单的时候, 请求就开始工作了。 对请求的工作描述就像是快递投送员。 与邮局投递员一样, 请求会将信息从一个地方带到另一个地方。
DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置spring MVC的第一步。 DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。
MVC模式是在Java的Web应用开发中非常常用的模式。MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。 总之MVC模式实现了页面展示与业务逻辑向分离,这也是解耦的重要实现方式。由于mvc模式非常常用,当前基于MVC模式的框架也有很多,如struts2,sprin
图1 DispatchServlet的类继承图
SpringMVC框架介绍 1) spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles
在Nginx反向代理一个带有WebSocket功能的Spring Web程序(源代码地址)时,发现访问WebSocket接口时总是出现403响应,Nginx的配置参考的是官方文档:
阅读更多 http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=81&threadID=37385 Solaris 10 SPARC WebLogic
作用:接收请求,响应结果,相当于转发器,中央处理器。有了dispatcherServlet减少了其它组件之间的耦合度。
本文将分析SpringMVC的核心分发器DispatcherServlet的初始化过程以及处理请求的过程,让读者了解这个入口Servlet的作用。
有看到一些应用在 web.xml 文件中配置了多个 DispatcherServlet,例如:
领取专属 10元无门槛券
手把手带您无忧上云