Web中的Spring

本文详细介绍了SpringMVC框架,包括其组成部分、运行原理和简单使用方法。SpringMVC基于MVC模式,由DispatcherServlet、HandlerMapping、HandlerAdapter、Handler、ViewResolver和View构成。文中通过注解方式展示了如何配置和使用SpringMVC,以及信息在控制器与视图之间的交互,如传递模型数据、接受请求输入等。
摘要由CSDN通过智能技术生成

前言:前面我们学习了关于Spring核心的IOC和AOP知识,除此之外,以此为基础,Spring的MVC框架还经常被用于Web开发(SpringMVC)

一、什么是SpringMVC框架?

在了解SpringMVC之前,我们先回顾一下Spring基础架构:

Spring MVC 是Spring的一部分,基于模型 - 视图 - 控制器( Model-View-Controller , MVC )模式实现,它能够帮你构建像 Spring 框架那样灵活和松耦合的 Web 应用程序。在实际开发中,接收浏览器的请求响应,对数据进行处理,然后返回页面进行显示。

转发此文关注我添加小助手VX:xuanwo008咨询如何获取java技术干货、面试资料

二、SpringMVC组成以及运行原理

Ⅰ、SpringMVC的组成

  1. DispatcherServlet:前端控制器 (SpringMVC的核心)-----相当于MVC中的C,作为中心调用其他组件,降低其他组件之间的耦合性
  2. HandlerMapping:处理器映射器 ----------------------------------根据用户请求找到对应路径的处理器(相当于处理器的名单)
  3. HandlAdapter:处理器适配器 --------------------------------------调用执行处理器方法(适配器模式的应用)
  4. Handler:处理器 --------------------------------------------------------处理用户请求的类,相当于传统意义上的Servlet
  5. ViewResolver:视图解析器 ------------------------------------------处理返回结果,将处理器适配器返回的数据模型转换成具体视图,并进行渲染输出(实际上就是将处理器返回的名称补充成具体的路径也就是一个视图,同时从数据模型中提取数据进行填充)
  6. View:视图 ---------------------------------------------------------------视图是数据最终需要展现给客户的地方,Spring支持多种类型的视图:jstlVies,freemarkerView等,最常用的是JSP和使用模板实现的html等

Ⅱ、SpringMVC请求响应流程

用户发起请求,携带请求信息到前端控制器进行调度

前端控制器(DispatcherServlet)调用处理器映射器,根据请求信息从处理器映射器中找到访问路径的目标处理器

前端控制器(DispatcherServlet)根据得到的目标处理器映射,调用处理器适配器方法(处理器适配器将处理器方法包装成适配器模式)

处理器适配器(HandlerAdapter)调用处理器(Handler)相应功能方法,并将结果返回给前端控制器

前端控制器(DispatcherServlet)根据得到的数据结果和目标视图名称,调用视图解析器(ViewResolver)返回目标视图完整路径

前端控制器(DispatcherServlet)根据得到的视图路径,对目标视图(view)进行渲染(数据填充等),得到目标视图

前端控制器(DispatcherServlet)将目标视图展现给用户

从上述流程可以看到,SpringMVC的功能流转是围绕前端控制器(DispatcherServlet)实现的,这样的好处是使得各个组件之间的耦合性大大降低,各个组件只做自己应该做的事情。其实这是大部分框架想要实现的目标。

分析DispatcherServlet,从Spring官网查看到的结构图如下:

从结构图可以看到,DispatcherServlet包含了两个Web应用上下文,用于独立控制,其中:

  • Servlet WebApplicationContext:管理用于网络请求的处理器适配器,视图解析器,处理器映射器和处理器
  • Ro
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值