Java-SpringMVC

一、SpringMVC简介

1、什么是MVC

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分

M:Model,模型层,指工程中的JavaBean,作用是处理数据

JavaBean分为两类:

  • 一类称为实体类Bean:专门存储业务数据的,如 Student、User 等

  • 一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。

V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据

C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器

2、MVC的工作流程:

用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器

3、什么是SpringMVC

SpringMVC是Spring的一个后续产品,是Spring的一个子项目

SpringMVC 是 Spring 为表述层开发提供的一整套完备的解决方案。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案

注:三层架构分为表述层(或表示层)、业务逻辑层、数据访问层,表述层表示前台页面和后台servlet

4、SpringMVC的特点

  • Spring 家族原生产品,与 IOC 容器等基础设施无缝对接

  • 基于原生的Servlet ,通过了功能强大的前端控制器DispatcherServlet,对请求和响应进行统一处理

  • 表述层各细分领域需要解决的问题全方位覆盖 ,提供全面解决方案

  • 代码清新简洁,大幅度提升开发效率

  • 内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可

  • 性能卓著,尤其适合现代大型、超大型互联网项目要

5、SpringMvc作用:

  • SpringMvc完成了客户端与服务器端的数据传输

6.SpringMvc的组成

  • DispatcherServlet(前端控制器):用于指定客户端请求的拦截策略

  • HandlerMapping(控制器映射器):用于查找并返回请求的控制器映射名

  • HandlerAdaptor(控制器适配器):用于查找并返回映射名对应的控制器处理类名

  • ModelandView(视图对象模型):用于封装数据

  • ViewReslover(视图解析器):用于解析数据并渲染视图

7.SpringMvc的工作流程

  • 用户发送请求 至 前端控制器(DispatcherServlet); 提示:DispatcherServlet的作用:接收请求,调用其它组件处理请求,响应结果,相当于转发器、中央处理器,是整个流程控制的中心

  • 前端控制器(DispatcherServlet)收到请求后调用处理器映射器(HandlerMapping) 处理器映射器(HandlerMapping)找到具体的Controller(可以根据xml配置、注解进行查找),并将Controller返回给DispatcherServlet;

  • 前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)。处理器适配器经过适配调用具体的Controller;(Controller--> service --> Dao --> 数据库) Controller执行完成后返回ModelAndView, 提示:Model(模型数据,即Controller处理的结果,Map) View(逻辑视图名,即负责展示结果的JSP页面的名字) 处理器适配器(HandlerAdapter)将controller执行的结果(ModelAndView)返回给前端控制器(DispatcherServlet);

  • 前端控制器(DispatcherServlet)将执行的结果(ModelAndView)传给视图解析器(ViewReslover) 视图解析器(ViewReslover)根据View(逻辑视图名)解析后返回具体JSP页面

  • 前端控制器(DispatcherServlet)根据Model对View进行渲染(即将模型数据填充至视图中); 前端控制器(DispatcherServlet)将填充了数据的网页响应给用户

相关推荐
向着光芒的女孩1 天前
【IDEA】关不了的Proxy Authentication弹框探索过程
java·ide·intellij-idea
Filotimo_1 天前
Spring Boot 整合 JdbcTemplate(持久层)
java·spring boot·后端
李慕婉学姐1 天前
【开题答辩过程】以《“饭否”食材搭配指南小程序的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·spring·小程序
abments1 天前
pgsql timestamp without time zone > character varying解决方案
java
sanggou1 天前
大数据量查询处理方案 - 内存优化与高效展示
java
没有bug.的程序员1 天前
Java 字节码:看懂 JVM 的“机器语言“
java·jvm·python·spring·微服务
白露与泡影1 天前
2025年BAT面试题汇总:JVM+Spring+Dubbo+Redis+并发编程
jvm·spring·dubbo
-大头.1 天前
深入理解 Java 内存区域与 JVM 运行机制
java·jvm
没有bug.的程序员1 天前
JVM 整体架构:一套虚拟机的心脏与血管
java·jvm·spring boot·spring cloud·架构
晨枫阳1 天前
不同语言的元组对比
java·前端·javascript