Spring MVC 框架


一、 SpringMVC 介绍

SpringMVC 特点和概述

SpringMVC 从易用性,效率上 比曾经流行的 Struts2 更好
SpringMVC 是 WEB 层框架【解读: SpringMVC 接管了 Web 层组件, 比如控制器, 视图, 视图解析, 返回给用户的数据格式, 同时支持 MVC 的开发模式/开发架构】
SpringMVC 通过注解,让 POJO 成为控制器,不需要继承类或者实现接口
SpringMVC 采用低耦合的组件设计方式,具有更好扩展和灵活性
支持 REST 格式的 URL 请求.
SpringMVC 是基于 Spring 的, 也就是 SpringMVC 是在 Spring 基础上的。SpringMVC 的核心包 spring-webmvc-xx.jar 和 spring-web-xx.jar

梳理 Spring SpringMVC SpringBoot 的关系

Spring MVC 只 是 Spring 处 理 WEB 层 请 求 的 一个 模 块 /组 件 , Spring MVC 的 基 石 是
Servlet[Java WEB]
Spring Boot 是为了简化开发者的使用, 推出的封神框架(约定优于配置,简化了 Spring的配置流程), SpringBoot 包含很多组件/框架,Spring 就是最核心的内容之一,也包含 SpringMVC
他们的关系大概是: Spring Boot > Spring > Spring MVC

二、 MVC流程

Http请求到DispatcherServlet

在Spring MVC框架中,所有的HTTP请求都会首先经过一个核心的Servlet——DispatcherServlet。它是整个Spring MVC的前端控制器,负责接收请求并将其分发到合适的处理器。下面是一个web.xml配置:

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

HandlerMapping寻找处理器

DispatcherServlet接收到请求后,会通过HandlerMapping寻找合适的处理器(Controller)。HandlerMapping是一个接口,其实现类用于映射请求URL到具体的Controller方法。下面是一个基于注解的配置:


@Controller
@RequestMapping("/hello")
public class ExampleController {
 
    @RequestMapping("/hello1")
    public String hello() {
        return "hello";
    }

调用处理器Controller

找到合适的处理器后,DispatcherServlet会调用这个处理器(Controller)的方法来处理请求。Controller是一个用来定义请求处理逻辑的组件。下面是一个示例代码:

@Controller
@RequestMapping("/hello")
public class ExampleController {
 
    @RequestMapping("/hello1")
    public String hello() {
        return "hello";
    }

Controller调用业务逻辑处理后返回ModelAndView

Controller处理请求后,通常会返回一个ModelAndView对象。这个对象包含了视图名和模型数据,视图名用于指示渲染哪个视图,模型数据用于传递到视图中进行展示。下面是一个示例代码:

@Controller
@RequestMapping("/hello")
public class ExampleController {
 
    @RequestMapping("/hello1")
    public ModelAndView hello() {
        ModelAndView mav = new ModelAndView("hello");
        mav.addObject("message", "Hello, World!");
        return mav;
    }
}

DispatcherServlet查询ModelAndView并进行视图解析

DispatcherServlet会使用视图解析器(ViewResolver)来解析ModelAndView对象中的视图名,生成最终的视图对象。下面是一个配置视图解析器的代码:

<bean id="viewResolver"
      class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

ModelAndView反馈浏览器HTTP响应

最终,DispatcherServlet将生成的视图对象和模型数据传递给视图引擎,渲染出HTML并返回给浏览器作为HTTP响应。

  • 10
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值