2020-11-03

SpringBoot工程下Spring MVC技术的应用?

Spring MVC 简介
背景分析
在大型软件系统设计时,业务一般会相对复杂,假如所有业务实现的代码都纠缠在一起,会出现逻辑不清晰、可读性差,维护困难,改动一处就牵一发而动全身等问题。为了更好解决这个问题就有了我们现在常说的分层架构设计。

MVC 是什么
MVC是一种软件架构设计思想,基于MVC架构将我们的应用软件进行分层设计和实现,例如可以分为视图层(View),控制层(Controller),模型层(Model),通过这样的分层设计让我们程序具备更好的灵活性和可可扩展性.因为这样可以将一个复杂应用程序进行简化,实现各司其职,各尽所能.比较适合一个大型应用的开发.

Spring MVC 概述
Spring MVC是MVC设计思想在Spring框架中的一种实现,基于这样的思想spring框架设计了一些相关对象,用于更好的基于MVC架构处理请求和响应,其简易架构如图所示:

image.png

其中:
1)DispatcherServlet是客户端所有请求处理的入口,负责请求转发。
2)RequestMapping负责存储请求url到后端handler对象之间的映射。
3)Handler 用于处理DispatcherServlet对象转发过来的请求数据。
4)ViewResolver负责处理所有Handler对象响应结果中的view。

Spring MVC 快速入门
准备工作
第一步:创建项目module,基本信息如图所示:

在这里插入图片描述

第二步:添加项目依赖(可以在module创建时,也可以创建后),代码如下:

在这里插入图片描述

第三步:启动项目检测控制台启动状态是否OK

statics 目录分析及应用
statics 目录为springboot工程创建时添加了web依赖以后自动创建的目录,此目录中可以存储html、css、js、html等相关资源,这些资源可以在启动服务器以后,直接在浏览器进行访问。例如:
第一步:在statics目录下创建一个index.html页面,代码如下:

在这里插入图片描述

第二步:启动服务器并直接进行访问测试,如图所示

在这里插入图片描述

templates 目录分析及应用
templates 目录为springboot工程创建时添加了thymeleaf依赖以后自动创建的目录,此目录中要存储一些html模板,这个模板页面不能直接通过浏览器url进行访问,需要基于后端控制器,在方法中定义页面响应,例如:

第一步:定义TemplateController及方法,代码如下:

在这里插入图片描述

第二步:在templates目录中定义模板页面default.html,代码如下:
在这里插入图片描述

其中,假如default.html要在放在templates子目录中,则还需要在配置文件中配置thymeleaf的前缀,例如:

在这里插入图片描述

第三步:启动服务进行访问测试,如图所示:

在这里插入图片描述

SpringMVC 响应数据处理
ModelAndView 应用
我们有一业务,现在需要将响应数据封装到ModelAndView对象,然后响应到客户端,如何实现呢?

第一步:定义ModelViewController以及方法,代码如下:

在这里插入图片描述

第二步:在default.html页面中添加呈现数据的代码,例如:
在这里插入图片描述

第三步:启动项目进行访问测试,并检测输出结果,例如:

在这里插入图片描述

JSON数据响应
我们有一业务不需要页面,只需要将响应数据转换为json,然后响应到客户端,如何实现呢?
第一步:定义ReponseResult对象用于封装响应数据,例如:
在这里插入图片描述

第二步:定义JsonObjctController以及方法,代码如下:

在这里插入图片描述

第三步:启动服务器分别进行访问测试,代码如下:

在这里插入图片描述

SpingMVC 请求参数数据处理
我们在执行业务的过程中通常会将一些请求参数传递到服务端,服务端如何获取参数并注入给我们的方法参数的呢?

准备工作
定义一个controller对象,用户处理客户端请求,例如:

在这里插入图片描述

直接量方式
在ParamObjectController中添加方法,基于直接量方式接受客户端请求参数,例如:

在这里插入图片描述

访问时,可以这样传参,例如:

在这里插入图片描述

POJO对象方式
定义pojo对象,用于接受客户端请求参数,例如:

在这里插入图片描述

定义Controller方法,方法中使用pojo对象接收方法参数,例如:

在这里插入图片描述

启动服务进行访问测试,可以这样传参,例如:

在这里插入图片描述

Map对象方式
有时候我们不想使用pojo对象接收请求参数,我们可以使用map对象来接收,又该如何实现呢?

定义Controller方法,基于map对象接收请求参数,例如:
在这里插入图片描述

其中,map接收请求参数,必须使用@RequestParam对参数进行描述.

启动服务进行访问测试,可以这样传参,例如:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值