8:Spring MVC-Java Spring

简介: 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属性中指定


目录
相关文章
|
3天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
|
3天前
|
Dubbo Java 应用服务中间件
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
|
3天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
9天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
10天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
11天前
|
安全 Java 数据安全/隐私保护
使用Spring Security进行Java身份验证与授权
【4月更文挑战第16天】Spring Security是Java应用的安全框架,提供认证和授权解决方案。通过添加相关依赖到`pom.xml`,然后配置`SecurityConfig`,如设置用户认证信息和URL访问规则,可以实现应用的安全保护。认证流程包括请求拦截、身份验证、响应生成和访问控制。授权则涉及访问决策管理器,如基于角色的投票。Spring Security为开发者构建安全应用提供了全面且灵活的工具,涵盖OAuth2、CSRF保护等功能。
|
12天前
|
Java 大数据 云计算
Spring框架:Java后台开发的核心
【4月更文挑战第15天】Spring框架在Java后台开发中占据核心位置,因其控制反转(IoC)、面向切面编程(AOP)、事务管理等特性提升效率和质量。Spring提供数据访问集成、RESTful Web服务和WebSocket支持。优势包括高效开发、灵活扩展、强大生态圈和广泛应用。应用于企业级应用、微服务架构及云计算大数据场景。掌握Spring对Java开发者至关重要。
|
15天前
|
Java 应用服务中间件 Maven
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
13 1
|
3月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
43 0
|
8月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
117 0