SpringMVC --- 老杜

1、什么是SpringMVC?

SpringMVC是一个基于Java实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的及部分,简化开发,减少出错,方便组内开发人员之间的配合。
MVC
● Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao)和服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
● View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。
● Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。 也就是说控制器做了个调度员的工作。

2、SpringMVC的核心组件?

  1. DispatcherServlet:前置控制器,是整个流程控制的核心,控制其他组件的执行,进行统一调度,降低组件之间的耦合性,相当于总指挥。
  2. Handler:处理器,完成具体的业务逻辑,相当于 Servlet 或 Action。
  3. HandlerMapping:DispatcherServlet 接收到请求之后,通过 HandlerMapping 将不同的请求映射到不同的 Handler。
  4. HandlerInterceptor:处理器拦截器,是一个接口,如果需要完成一些拦截处理,可以实现该接口。
  5. HandlerExecutionChain:处理器执行链,包括两部分内容:Handler 和 HandlerInterceptor(系统会有一个默认的 HandlerInterceptor,如果需要额外设置拦截,可以添加拦截器)。
  6. HandlerAdapter:处理器适配器,Handler 执行业务方法之前,需要进行一系列的操作,包括表单数据的验证、数据类型的转换、将表单数据封装到 JavaBean 等,这些操作都是由 HandlerAdapter 来完成,开发者只需将注意力集中业务逻辑的处理上,DispatcherServlet 通过 HandlerAdapter 执行不同的 Handler。
  7. ModelAndView:装载了模型数据和视图信息,作为 Handler 的处理结果,返回给 DispatcherServlet。
  8. ViewResolver:视图解析器,DispatcheServlet 通过它将逻辑视图解析为物理视图,最终将渲染结果响应给客户端。

3、SpringMVC 工作原理了解吗?

在这里插入图片描述
流程如下:

  1. 客户端向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器);
  2. DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知,该请求该由哪个Controller来处理(并未调用Controller,只是得知);
  3. DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controller;
  4. HandlerAdapter处理器适配器去执行Controller并得到ModelAndView(数据和视图),并层层返回给DispatcherServlet;
  5. DispatcherServlet将ModelAndView交给ViewReslover视图解析器解析,然后返回真正的视图;
  6. DispatcherServlet将模型数据填充到View视图中进行视图渲染;
  7. DispatcherServlet将结果响应给客户端。

老杜SpringMVC资料

链接:https://pan.baidu.com/s/1xHVoFpayqLwFLhJzOsJpYA?pwd=upnb
提取码:upnb
–来自百度网盘超级会员V5的分享

相关推荐

  1. 动力节点servlet课程笔记感悟

    2024-04-05 14:58:07       25 阅读
  2. <span style='color:red;'>SpringMVC</span>

    SpringMVC

    2024-04-05 14:58:07      42 阅读
  3. <span style='color:red;'>SpringMVC</span>

    SpringMVC

    2024-04-05 14:58:07      35 阅读
  4. <span style='color:red;'>SpringMVC</span>

    SpringMVC

    2024-04-05 14:58:07      36 阅读
  5. <span style='color:red;'>SpringMVC</span>

    SpringMVC

    2024-04-05 14:58:07      36 阅读
  6. <span style='color:red;'>springMVC</span>

    springMVC

    2024-04-05 14:58:07      28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-05 14:58:07       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-05 14:58:07       20 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-05 14:58:07       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-05 14:58:07       20 阅读

热门阅读

  1. think:该写什么样的blog

    2024-04-05 14:58:07       17 阅读
  2. vue如何搭建项目?

    2024-04-05 14:58:07       18 阅读
  3. 九、算法-排序-堆排序

    2024-04-05 14:58:07       18 阅读
  4. ARM Cordio WSF(一)——架构简介

    2024-04-05 14:58:07       22 阅读
  5. 【MySQL】跟着示例学 SQL

    2024-04-05 14:58:07       20 阅读
  6. Linux运维-SHELL编程之正则表达式与流编辑处理器

    2024-04-05 14:58:07       17 阅读
  7. 数据结构中的堆

    2024-04-05 14:58:07       17 阅读
  8. “心灵想要大声呼喊。”

    2024-04-05 14:58:07       20 阅读
  9. CCF CSP模拟真题解答示例

    2024-04-05 14:58:07       16 阅读
  10. 2024-04-04 问AI: 在深度学习中,微调是什么?

    2024-04-05 14:58:07       20 阅读