8:Spring MVC-Java Spring

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 8:Spring MVC-Java Spring

在Web开发中有两种主要的结构,称为模式一(ModeI)和模式二(Mode II)

8.1 WEB开发模式一

Mode I是指在开发中将显示层、控制层、数据层的操作统一交给JSP或者是JavaBean来进行处理,

优点

  • 架构简单

缺点

  • JSP职责过重,不利于维护

Mode I的处理情况分为两种

完全JSP模式

  • 用户发出的请求(request),交给JSP页面进行处理,为了开发快速与便利,通常都会将显示层(PresentationLayer)和逻辑运算层(Business Logic Layer)全部都写在JSP页面中

使用JSP + JavaBean模式

  • 将显示操作都写入JSP页中,而业务层都写成JavaBean形式,将程序代码封装成组件,这样JavaBean将负责大部分的数据处理。例如执行数据库操作等(类似于DAO),再将数据处理后的结果,返回至JSP页上显示

Model 1 模型图

8.2 WEB开发模式二

Mode II中所有的开发都是以Servlet为主体展开的,由Servlet接收所有的客户端请求,之后根据请求调用相应的JavaBean,并将所有的显示结果交给JSP完成,最典型的就是JSP + Servlet + Javabean的模式,也就是俗称的MVC设计模式

优点

  • 提高的代码的复用率与项目的扩展性

缺点

  • 增加了系统结构和实现的复杂性

Model 2 模型图

8.3 Spring MVC介绍

Spring MVC是Spring框架的一个模块,MVC是一种设计模式,将应用程序的输入、处理和输出分为三个核心层:模型层、视图层、控制层

  • 封装数据处理数据的模型(Model)

模型所表示的是具体做工作的部分,并对应用所要解决的实际问题进行建模,即保存数据的状态

  • 负责展示数据的视图(View)

视图是模型的表示,用户可以看到视图并与之交互,即显示页面

  • 控制程序流转的控制器(Controller)

控制器是应用中对用户命令做出响应的部分,即取得表单数据、调用业务逻辑、转向指定的页面等

8.4 Spring MVC主要组件

1.前端控制器 (DispatcherServlet

本质上是一个Servlet中转站,接收请求后根据配置到相应的Handler中进行处理,调用处理器映射器获取数据和视图后响应结果


2.处理器映射器(HandlerMapping)


根据请求的URL来查找Handler,将访问路径和对应的Handler存储为映射关系


3.处理器适配器(HandlerAdapter)


让固定的Servlet处理方法调用灵活的Handler来进行处理,找到真正的Handler执行请求响应和对应的Handler信息,将结果即Model和View返回给前端控制器


5.视图解析器(ViewResolver)


将视图名称映射到真正的视图地址,即进行视图的解析,将View信息解析成真正的视图(View)


6.视图(View)


View接口的实现类支持不同的视图类型(JSP,Freemarker,PDF等),即将返回的Model数据填充到视图(View)中,渲染后的页面会呈现给用户

8.5 Spring MVC处理流程

在MVC设计模式中,最关键的部分就是要使用RequestDispatcher接口,因为显示内容都是通过此接口保存到JSP页面上进行显示的

简化流程

  • 将URL映射到Java类或方法
  • 封装用户提交的数据
  • 处理用户请求,调用相关的业务处理,封装响应数据
  • 将响应的数据进行渲染和呈现

具体流程

1.客户端浏览器向前端控制器(DispatcherServlet)发出请求


2.前端控制器(DispatcherServlet)接收请求后根据配置到相应的Handler中进行处理,调用处理器映射器(HandlerMapping)获取数据和视图后响应结果


3.理器映射器(HandlerMapping),根据请求的URL来查找后端处理器(Handler),将访问路径和对应的Handler存储为映射关系,返回处理器对象(Handler)和处理器拦截器对象(HandlerInterceptor)给前端控制器(DispatcherServlet)


4.前端控制器(DispatcherServlet)拿到信息后调用处理器适配器(HandlerAdapter),找到真正的Handler执行请求响应和对应的Handler信息,将结果即Model和View返回给处理器适配器(HandlerAdapter)


5.处理器适配器(HandlerAdapter)将Model和View对象返回给前端控制器(DispatcherServlet)


6.前端控制器(DispatcherServlet)在拿到Model和View对象之后发给视图解析器(ViewResolver)


7.视图解析器(ViewResolver)将Model和View对象进行解析,生成成真正的视图对象(View),将View对象返回给前端控制器(DispatcherServlet)


8.前端控制器(DispatcherServlet)拿到View对象后,根据解析结果调用具体的视图,即将返回的Model数据填充到视图(View)中,渲染好的JSP页面会呈现给用户

8.6 Spring MVC的HTTP请求方法

注解 HTTP请求方法
@GetMapping POST
@PostMapping GET
@PutMapping PUT
@PatchMapping PATCH
@DeleteMapping D ELETE
@RequestMapping 可用于以上五种请求,需在method属性中指定


目录
相关文章
|
10天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
38 2
|
23天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
30天前
|
前端开发 Java 数据库连接
Spring 框架:Java 开发者的春天
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。
46 1
Spring 框架:Java 开发者的春天
|
30天前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
30天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
73 2
|
1月前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
38 1
|
1月前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
138 1
|
17天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
31 0
|
6月前
|
设计模式 前端开发 JavaScript
Spring MVC(一)【什么是Spring MVC】
Spring MVC(一)【什么是Spring MVC】
|
5月前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
79 1
下一篇
无影云桌面