首页 > 其他分享 >Spring MVC学习笔记

Spring MVC学习笔记

时间:2023-05-25 11:25:18浏览次数:42  
标签:Spring MVC 视图 Handler 笔记 DispatcherServlet View

1、基本概念

  • Spring MVC 是 Spring 中的一个很重要的模块,主要赋予 Spring 快速构建 MVC 架构的 Web 程序的能力。
  • MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。
  • Spring MVC 下我们一般把后端项目分为 Service 层(处理业务)、Dao 层(数据库操作)、Entity 层(实体类)、Controller 层(控制层,返回数据给前台页面)。

Entity 层(实体类):每个类和数据表是一一对应的,表里的字段和类的属性也一一对应。

Dao 层(mapper层):主要实现的功能是对数据库的操作

Service 层:主要实现的功能是具体的业务逻辑,首先设计接口再设计其实现类

Controller 层:主要实现的功能是请求转发,接收前端传过来的参数,调用相应的service接收到返回值后再传给前端。

Model 1时代:整个 Web 应用几乎全部用 JSP 页面组成,只用少量的 JavaBean 来处理数据库连接、访问等操作。这个模式下 JSP 即是控制层(Controller)又是表现层(View)。

Model 2 时代:JSP是表现层(View)+Servlet是控制层(Controller)

2、Spring MVC工作原理

 步骤:

1、客户端(浏览器)发送请求,DispatcherServlet拦截请求。

2、DispatcherServlet 根据请求信息调用 HandlerMapping 。HandlerMapping 根据 uri 去匹配查找能处理的 Handler(也就是我们平常说的 Controller 控制器) ,并会将请求涉及到的拦截器和 Handler 一起封装。

3、DispatcherServlet 调用 HandlerAdapter适配执行 Handler 。

4、Handler 完成对用户请求的处理后,会返回一个 ModelAndView 对象给DispatcherServlet

ModelAndView 顾名思义,包含了数据模型以及相应的视图的信息。Model 是返回的数据对象,View 是个逻辑上的 View

5、ViewResolver 会根据逻辑 View 查找实际的 View

6、DispaterServlet 把返回的 Model 传给 View(视图渲染)

7、把 View 返回给请求者(浏览器)

核心组件:

  • DispatcherServlet:核心的中央处理器,负责接收请求、分发,并给予客户端响应。
  • HandlerMapping:处理器映射器,根据 uri 去匹配查找能处理的 Handler ,并会将请求涉及到的拦截器和 Handler 一起封装。
  • HandlerAdapter:处理器适配器,根据 HandlerMapping 找到的 Handler ,适配执行对应的 Handler
  • Handler:请求处理器,处理实际请求的处理器。
  • ViewResolver:视图解析器,根据 Handler 返回的逻辑视图 / 视图,解析并渲染真正的视图,并传递给 DispatcherServlet 响应客户端

 

标签:Spring,MVC,视图,Handler,笔记,DispatcherServlet,View
From: https://www.cnblogs.com/coooookie/p/17430608.html

相关文章

  • 利用gpt学习笔记
    如果您想要将t.sample_type_code的前两个字符与td.template_code进行匹配,可以使用LEFT()函数来提取子字符串,并将其作为连接条件。以下是修改后的查询语句:SELECT*FROMt_sample_type_templatetLEFTJOINt_template_datatdONLEFT(t.sample_type_code,2)=LEFT(td.......
  • 实例化和初始化的区别?Spring依赖注入和属性赋值
    实例化和初始化的区别Spring依赖注入IOC(给字段赋值)和Spring测试 ......
  • Spring学习笔记
    1、基本概念Spring:开源的轻量级的java开发框架,目的是提高开发人员的开发效率以及系统的可维护性。核心功能是支持IOC(控制反转)和AOP(面向切面编程)可以很方便地对数据库进行访问、可以很方便地集成第三方组件(电子邮件,任务,调度,缓存等等)、对单元测试支持比较好、支持RESTfulJava......
  • Springboot @Value注解
    配置文件test:name:123list:1,2,3aa:userInfoServiceImpl.merChantNoController:@Value("${test.name}")publicStringname1;//输出123@Value("#{'${test.list}'}")publicList<Object>list;//输出[1,2,3]......
  • MyBatis体系笔记(未完结)
    MyBatis什么是MyBatisMyBatis是优秀的持久层框架MyBatis使用XML将SQL与程序解耦,便于维护MyBatis学习简单,执行高效,是JDBC的延伸1.MyBatis开发流程引入MyBatis依赖创建核心配置文件创建实体(Entity)类创建Mapper映射文件初始化SessionFactory......
  • 【Spring从成神到升仙系列 一】2023年再不会动态代理,就要被淘汰了
    ......
  • SpringBoot 出现 Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘
    问题点1:如果Content-Type设置为“application/x-www-form-urlencoded;charset=UTF-8”无论是POST请求还是GET请求都是可以通过这种方式成功获取参数,但是如果前端POST请求中的body是Json对象的话,会报上述错误。请求中传JSON时设置的Content-Type如果是application/json或者tex......
  • spring booot arthas报错
    Causedby:org.springframework.beans.BeanInstantiationException:Failedtoinstantiate[com.taobao.arthas.agent.attach.ArthasAgent]:Factorymethod'arthasAgent'threwexception;nestedexceptionisjava.lang.IllegalStateException:java.lang.ref......
  • Mybatis中,SpringMVC中,SpringBoot项目中,出现There is no getter for property named 'x
    现象:Thereisnogetterforpropertynamed'xxxxxx'报错原因:其实说起原因有很多种,百度上都有很详细的说明,其中最重要也是经常发生的就是mapper.xml与是对应的实体类匹配不上导致错误发生,而我报错的原因是从mapper接口中向xml传入参数的时候,传入的是实体类对象,只有这一个参数,而在......
  • 【SpringBoot】SpringBoot常用注解
    一、前言首先这里说的SpringBoot常用注解是指在我们开发项目过程中,我们经常使用的注解,包含Spring、SpringBoot、SpringCloud、SpringMVC等这些框架中的注解,而不仅仅是SpringBoot中的注解。这里只是作一个注解列举,每个注解具体如何使用可以自行搜索查询哈。二、配置启动相关注解2.1......