SpringMVC工作流程

参考:https://www.cnblogs.com/jiyukai/p/7629498.html
参考:https://blog.csdn.net/u014191220/article/details/81387596


一、SpringMVC简介

SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,并管理应用所需对象的生命周期,为简化日常开发,提供了很大便利。

SpringMVC提供了总开关DispatcherServlet;请求处理映射器(Handler Mapping)和处理适配器(Handler Adapter),视图解析器(View Resolver)进行视图管理;动作处理器Controller接口(包含ModelAndView,以及处理请求响应对象request和response),配置灵活,支持文件上传,数据简单转化等强大功能。

二、工作流程与介绍

在这里插入图片描述

  1. 用户发起请求到前端控制器(DispatcherServlet),该控制器会过滤出哪些请求可以访问Servlet、哪些不能访问。就是url-pattern的作用,并且会加载springmvc.xml配置文件。
  2. 前端控制器会找到处理器映射器(HandlerMapping),通过HandlerMapping完成url到controller映射的组件,简单来说,就是将在springmvc.xml中配置的或者注解的url与对应的处理类找到并进行存储,用map<url,handler>这样的方式来存储。
  3. HandlerMapping有了映射关系,并且找到url对应的处理器,HandlerMapping就会将其处理器(Handler)返回,在返回前,会加上很多拦截器。
  4. DispatcherServlet拿到Handler后,找到HandlerAdapter(处理器适配器),通过它来访问处理器,并执行处理器。
  5. 执行处理器
  6. 处理器会返回一个ModelAndView对象给HandlerAdapter
  7. 通过HandlerAdapter将ModelAndView对象返回给前端控制器(DispatcherServlet)
  8. 前端控制器请求视图解析器(ViewResolver)去进行视图解析,根据逻辑视图名解析成真正的视图(jsp),其实就是将ModelAndView对象中存放视图的名称进行查找,找到对应的页面形成视图对象
  9. 返回视图对象到前端控制器。
  10. 视图渲染,就是将ModelAndView对象中的数据放到request域中,用来让页面加载数据的。
  11. 通过第8步,通过名称找到了对应的页面,通过第10步,request域中有了所需要的数据,那么就能够进行视图渲染了。最后将其返回即可。

三、适配器作用

SpringMVC涉及的映射器,视图解析器的作用不难理解,映射器负责将前端请求的url映射到配置的处理器,视图解析器将最终的结果进行解析,但中间为什么要经过一层适配器呢,为什么不经映射器找到controller后直接执行返回呢?

那是因为SpringMVC为业务处理器提供了多种接口实现(例如实现了Controller接口),而适配器就是用来根据处理器实现了什么接口,最终选择与已经注册好的不同类型的Handler Adapter进行匹配,并最终执行,例如,SimpleControllerHandlerAdapter是支持实现了controller接口的控制器,如果自己写的控制器实现了controller接口,那么SimpleControllerHandlerAdapter就会去执行自己写的控制器中的具体方法来完成请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,关于springmvc工作流程,我可以为您解答。Spring MVC的工作流程主要包括以下几个骤:首先,用户发送请求到前端控制器DispatcherServlet;其次,DispatcherServlet将请求映射到对应的处理器HandlerMapping;接着,HandlerMapping将请求和处理器的适配器Adapter进行绑定;然后,适配器Adapter将请求和处理器进行绑定;处理器执行业务逻辑并返回一个ModelAndView对象给适配器Adapter;适配器Adapter将ModelAndView返回给DispatcherServlet;最后,DispatcherServlet将ModelAndView发送给ViewResolver进行视图解析,最后再返回给用户响应结果。希望能对您有所帮助。 ### 回答2: Spring MVC是一个基于MVC(Model-View-Controller)架构的Web框架。其工作流程如下: 1. 客户端发送请求到DispatcherServlet(中央控制器)。DispatcherServlet是所有请求的入口,它负责协调整个请求处理过程。 2. DispatcherServlet 根据请求的URL映射,将请求分发给对应的处理器(Controller)。处理器根据请求中的参数进行处理,并返回一个ModelAndView对象。 3. DispatcherServlet将返回的ModelAndView对象交给视图解析器(View Resolver)进行视图解析,确定最终要返回的视图。 4. 视图解析器解析完视图后,通过View对象来渲染返回的结果。View对象可以是JSP、HTML、JSON等多种形式。 5. 渲染完结果后,视图将结果返回给DispatcherServlet。 6. DispatcherServlet将视图返回给客户端,完成响应过程。 Spring MVC的工作流程简洁高效,通过DispatcherServlet的分发和控制,实现了请求的处理和响应的流程控制。同时,Spring MVC还提供了灵活的配置和扩展机制,可以方便地定制整个框架的行为和业务逻辑。这使得Spring MVC成为了广泛应用的Web开发框架之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值