《大数据技术及应用》课件 单元4 竞赛登记管理系统前后端数据交互_第1页
《大数据技术及应用》课件 单元4 竞赛登记管理系统前后端数据交互_第2页
《大数据技术及应用》课件 单元4 竞赛登记管理系统前后端数据交互_第3页
《大数据技术及应用》课件 单元4 竞赛登记管理系统前后端数据交互_第4页
《大数据技术及应用》课件 单元4 竞赛登记管理系统前后端数据交互_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单元4竞赛登记管理系统前后端数据交互学习目标01掌握项目中前后端数据交互的方式02熟悉配置不同的JSON数据转换器03掌握对前端数据进行统一校验的方式04理解对异常的全局处理任务4.1定义竞赛信息交互格式前端页面后端服务采集数据传给后端显示从后端获取的数据接收并校验前端传来的数据任务场景任务布置前端如何将用户填入的竞赛信息数据转为JSON格式发送给后端?前端页面后端如何接收JSON格式的数据?接收后如何处理?后端服务知识准备JSON个数JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但是独立于语言,在前后端数据交互中被广泛使用。前端发送JSON格式数据前端代码中,无论是通过JavaScript的Ajax技术还是Html5的表单提交,都支持以JSON格式将数据发送给后端。这种数据交互方式使得前后端的数据传输更加灵活和高效。SpringBoot框架处理JSON格式数据SpringBoot框架内置了Jackson数据转换器,用于处理JSON格式的数据。它可以将JSON格式数据转换为后端接口使用的对象类型数据,从而方便后端进行数据处理和操作。知识准备Jackson是SpringBoot框架内置的JSON数据转换器,专为前后端交互的数据设计,提供快速且高效的数据转化能力。Jackson转换器Gson由Google公司开发,是一个优秀的JSON格式转换器,需要引入Gson相关的依赖,它提供了丰富的API接口,能够处理复杂的数据结构。Gson转换器Fastjson是阿里巴巴公司开发的高效、快速的JSON格式转换器,只需引入FastJson相关的依赖并去掉Web起步依赖中的Jackson即可使用。Fastjson转换器知识准备AjaxResult类AjaxResult类是一个全局响应结构,它扩展了HashMap以存储状态码、返回内容和数据对象。通过继承HashMap,AjaxResult能够以键值对的形式管理响应数据。AjaxResult类定义了后端返回给前端的通用数据结构,其中包括表示消息码的code,表示消息值的msg,表示业务数据的data。任务实施Maven中添加Json解析依赖如果使用默认的Jackson,无需对pom.xml做修改。如果要采用Google公司的Gson,需要在pom.xml中加入Gson相关的依赖,并且去掉Web起步依赖中的Jackson。如果采用阿里巴巴公司的FastJson转换器,需要引入FastJson相关的依赖,同时去掉Web起步依赖中的Jackson。刷新Maven依赖在Idea中添加完依赖后点击页面右上角的刷新按钮,Idea将会自动把依赖下载到本地环境中。任务实施创建竞赛信息实体类SysCompete这个竞赛信息实体类中,定义了竞赛项目id、项目名称、比赛时间、主办单位、教师数量及名单、学生数量及名单、竞赛类型、竞赛级别、学时信息、获奖情况、竞赛费用、竞赛相关文件、填报人信息、审批状态、教师标记、删除标记等信息。编写前端页面新建页面addCompete.html。用户可以在页面录入相关竞赛项目的信息,并可以选择相关文件,通过Ajax方式以JSON数据格式发送给后端。任务实施创建控制器新建AddCompetitionInfoController.java类,用到了三个注解:@RestController,@PostMapping,@RequestBody。自定义全局响应结构类定义一个AjaxResult类继承HashMap<String,Object>类型。当数据无误,发送的数据成功被后端接收的时候,调用success()方法返回数据。当用户输入的信息有误的时候,调用error()方法给前端返回错误。任务实施Postman简介Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,可以模拟用户发起的各类HTTP请求(如:get/post/delete/put等等)。将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果是否和预期值相匹配。有了Postman的帮助,开发人员能够及时发现接口中的bug,提高开发效率。接口测试工具接口测试工具访问Postman官网

访问Postman官网的下载页/downloads/下载安装Postman

在Postman官网上,选择适合您操作系统的版本进行下载和安装。启动Postman

安装完成后,打开Postman应用程序。新建请求在Postman主界面,点击右上角的“+”按钮,创建一个新的请求标签页。在新建的标签页中,您可以输入请求的URL、选择请求方法(如GET、POST等)以及添加请求头和请求体。接口测试工具发送请求并查看结果点击右侧的“Send”按钮,Postman将发送请求并显示响应结果。响应结果包括状态码、响应时间、响应头和响应体等信息。接口测试工具任务4.2校验竞赛信息的合规性任务场景系统在进行信息处理的时候,一般要先对信息进行校验,防止程序运行中出现不必要的错误。我们可以在前端页面就进行数据校验,但后端的校验也是必不可少的,因为开发要遵循的一个原则就是“前端不可信”。因为前端位于客户端,用户很容易修改前端代码,绕过前端的校验。数据校验要求用户在输入学生的姓名,学院,专业,班级等数据信息时,要求都不能为空。用户在输入学生的学号时,要求学号不能小于10位,防止被黑客通过SQL注入的方式,盗取信息。任务布置知识准备Java在包validation-api中定义了验证的接口,而实现该接口的是HibernateValidator。JavaValidationSpringValidation是对HibernateValidation的又一次封装。SpringValidation提供了@Validated注解,新增了分组检验的功能。SpringValidation@NotBlank

检验字符串类型参数不能为空@NotNull

校验参数不能为null@Null

校验参数必须为null@NotEmpty

校验字符串,集合等不能为空串,空集合...常用的校验注解任务实施03配置异常处理的类创建一个专门的类来统一处理异常,将程序默认的异常信息转化为用户直观的提示方式。01对校验的字段进行注解打开需要进行数据校验的实体类,在每一个需要进行校验的字段上加对应的注解。02在控制器的方法上开启数据校验在接收前端数据的方法中接收对象类型的参数前加上@Valid标签,表明这个对象类型参数需要进行数据校验。任务实施任务4.3完成竞赛信息附件上传任务场景在竞赛登记管理系统中,会要求用户以附件形式提交各种材料,例如获奖证书和立项申报书,这就用到了文件上传功能。用户在页面提交文件后,后端会接收并存储这些文件,由管理人员审核。用户可以查看自己的竞赛登记信息,并且下载自己提交过的文件。03用户在查看自己的历史申报信息时,可以下载相应的文件。01用户在竞赛登记提交界面输入相应的申报信息后,可以选择上传的附件,这里可以上传获奖证书,立项申报文件,费用发放清册等文件,点击提交。02后端可以接收到前端传过来的文件数据,并存储到相应的目录下。任务布置知识准备SpringBoot项目是通过SpringMVC来实现文件上传的。SpringMVC的九大组件之一MultipartResolver是专门用来处理文件上传请求的。单文件上传可以将多文件上传看成是多个单文件一起上传。接收文件的方法中以MultipartFile数组作为参数即可实现多文件的接收。方法体中可以遍历这个文件数组,依次保存到指定目录。多文件上传SpringMVC并未对文件的下载进行封装和优化,我们实现文件下载的话直接使用HttpServletResponse类就行。文件下载任务实施文件上传创建前端页面在页面目录中新建一个html文件,添加一个表单,并在表单中添加“file”类型的input元素。编写FileController控制器在controller包中新建一个FileController类,编写后端接收文件上传请求的处理方法。任务实施文件下载创建前端页面新建一个html页面,在该页面上添加一个文件下载按钮,通过该按钮来触发下载操作。编写FileDownloadController控制器在controller包中新建一个FileDownloadController类用来负责后端逻辑的实现。任务实施任务4.4处理竞赛信息流转中的异常任务场景系统运行的时候难免会产生各种各样的异常情况。这些异常有的是我们程序员的逻辑失误造成的,而有的是一些不可控的因素造成的。我们可以在程序中使用try-catch机制来处理可能遇到的异常,从而增加系统的健壮性。但当遇到异常时,系统不应该直接将原始的错误信息呈现给用户,给用户呈现的应该是经过处理过的提示信息。这样既能减少敏感信息被不怀好意的人发现和利用,又能增强提示的可读性。那么,是否需要在每一个catch代码段中作出错误转化呢?在项目中配置全局异常处理类,用来统一处理程序中的异常。任务布置@ControllerAdvice注解@ControllerAdvice注解的类表示一个增强的控制器,可以将其作为全局异常处理器。此外,这个增强的控制器还能够实现全局数据绑定、全局数据预处理等功能。这些功能的实现需要搭配@ExceptionHandler、@InitBinder、@ModelAttribute等作用在方法的注解。@ExceptionHandler@ExceptionHandler注解主要用在方法上,表示该方法会处理指定的异常。当注解没有属性值时,表示会处理对应方法的参数中的任意类型的异常。而该注解有属性值时,就表明只处理参数指定的异常。知识准备实现HandlerExceptionResolver接口在SpringBoot项目中,默认使用ExceptionHandlerExceptionResolver对象来处理程序中遇到的异常。ExceptionHandlerExceptionResolver是HandlerExceptionResolver接口的实现类之一。HandlerExceptionResolver是SpringMVC九大组件之一,用来处理发生的异常。SpringMVC框架的DispatchServlet在初始化的时候,会去容器中找HandlerExceptionResolver的实现类,用来处理程序中可能出现的异常。知识准备任务实施编写触发异常测试代码新建一个类ExceptionController,在访问方法里直接抛出自定义的异常。编写全局异常处理类新建类GlobalExceptionHandler,类名上注解@RestControllerAdvice。该类中添加方法,在各方法上添加@ExceptionHandler注解和该注解的参数,用来限定该方法处理的特定类型的异常。测试运行运行程序,打开浏览器,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论