请求响应-响应

news2025/1/18 9:53:28

在这里插入图片描述
前面已经说了我们重点关注的就是XXXcontroller类
进行请求接收
和响应
接收参数那些我们在请求部分讲过了
现在我们来处理响应部分

响应

设置响应数据

可以发现其实我们之前都是设置过的
比如那个Hello World
浏览器都接收到了且在浏览器上进行了输出
这里的是返回值作为这个响应的
这样的操作需要一个注解ResponseBody
这个注解既可以作用在方法上又可以作用在类上

在这里插入图片描述
比如这个就是作用在类上
这个类里所有方法的返回值都会作为响应值返回给浏览器
这里的@RestController=@Controller+@ResponseBody两个注解的合并
在这里插入图片描述
然后其实我们那个开发中那个规范就是规定了
每个请求路径对应获取的东西和内部操作

响应数据类型

在这里插入图片描述

可以发现每一个接口响应的路径很随意
需要统一一下
我们就新建一个类Result 包含code msg 和 data属性
然后把返回值全设置为Result对象
在这里插入图片描述
对应具体类

在这里插入图片描述
在这里插入图片描述

最后因为是对象所以会封装成json类型的数据
在这里插入图片描述

案例

解析emp.xml文件
返回对应格式(渲染完后的)
在这里插入图片描述

步骤

在这里插入图片描述
1.导入解析xml文件的依赖
dom4j
在这里插入图片描述
2.写工具类-主要运用我们dom4j的方法进行解析文件
并且进行封装到我们的集合里并返回
在这里插入图片描述
3.然后我们引入一个实体类进行员工数据的封装-xml文件里面介绍对应的员工对象
第一个和第二个参数分别的解析的xml文件
第二个是进行数据封装的类的class对象
在这里插入图片描述
4.引入xml文件到resource
在这里插入图片描述
5.引入我们的一些前端页面(放到resources里的static目录)
在这里插入图片描述
注意:SpringBoot的静态资源(html,css,js等静态资源)存放目录需要一定规范1.classpath:/static中2.classpath:/public(resources新建一个public目录放进去)3.classpath:/resources(resources新建一个resources目录放进去(没错就是套的同名))
对于maven我们的classpath路径就是resources

6.编写controller程序

package com.itheima.controller;

import com.itheima.pojo.Emp;
import com.itheima.pojo.Result;
import com.itheima.utils.XmlParserUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class EmpController {

    @RequestMapping("/listEmp")
    public Result list(){
        //1. 加载并解析emp.xml
        String file = this.getClass().getClassLoader().getResource("emp.xml").getFile();
        System.out.println(file);
        List<Emp> empList = XmlParserUtils.parse(file, Emp.class);

        //2. 对数据进行转换处理 - gender, job
        empList.stream().forEach(emp -> {
            //处理 gender 1: 男, 2: 女
            String gender = emp.getGender();
            if("1".equals(gender)){
                emp.setGender("男");
            }else if("2".equals(gender)){
                emp.setGender("女");
            }

            //处理job - 1: 讲师, 2: 班主任 , 3: 就业指导
            String job = emp.getJob();
            if("1".equals(job)){
                emp.setJob("讲师");
            }else if("2".equals(job)){
                emp.setJob("班主任");
            }else if("3".equals(job)){
                emp.setJob("就业指导");
            }
        });

        //3. 响应数据
        return Result.success(empList);
    }

}

效果

postman获取数据
在这里插入图片描述

结合前端页面
注意我们不需要加static路径,应为它本来就是存放静态页面的
而且我们的前端代码其实可以看到他原本是没有写数据的,就是根据后端获取的数据和js然后往前端页面上一个一个填这样
实现了动态数据这种效果
在这里插入图片描述
这行代码就是重点
就是它通过哪个方法(请求路径)获取数据
我们写的访问xml数据是listEmp所以这里也需要是listEmp
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/422821.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Direct3D 12——纹理——纹理

纹理不同于缓冲区资源&#xff0c;因为缓冲区资源仅存储数据数组&#xff0c;而纹理却可以具有多个mipmap层级(后 文有介绍)&#xff0c;GPU会基于这个层级进行相应的特殊操作&#xff0c;例如运用过滤器以及多重采样。支持这些特殊 的操作纹理资源都被限定为一些特定的数据格式…

7 个最好的 Word 转 PDF 转换器

如果您使用 Word 文件&#xff0c;您可能在某个时候遇到过将 Word 文件转换为 PDF 的紧迫问题。PDF 文件有很多优点。它们通常更紧凑&#xff0c;无论您在哪里打开它们看起来都一样。PDF 还允许您共享文档&#xff0c;而不必冒有人更改内容的风险。那么如何将 Word 文档转换为 …

小白学网络安全要学些什么?

一.网络安全学些什么呢&#xff1f; 虽然网上已经有非常多的学习路线了&#xff0c;但是仍然有很多零基础的小白还是不懂网络安全到底应该要怎么去学习&#xff0c;我也经常会在后台收到这样的问题“我想学网络安全&#xff0c;需要先学编程语言吗&#xff1f;”、“学渗透就业…

【python零碎】

1. 拼接字符中&#xff0c;插入变量 >>> shepherd "Mary" >>> age 32 >>> stuff_in_string "Shepherd {} is {} years old.".format(shepherd, age) >>> print(stuff_in_string) Shepherd Mary is 32 years old. &…

HIT-CSAPP 第五章 面向程序的优化方法(1)

考纲: 1.面向程序性能的优化 面向编译器的程序优化方法:减少过程调用、减少内存引用、指令并行等方法等方法。面向流水线、超标量、向量CPU的程序优化方法。 2.存储器的层次结构 优化编译器的能力和局限性 内存别名使用妨碍函数优化 void twiddle1(long *xp, long *yp){ //…

ERTEC200P-2 PROFINET设备完全开发手册(4-1)

ERTEC200P-2作为应用处理器&#xff0c;既可以单独使用&#xff0c;通过GPIO扩展实现基本的IO功能。也可以配合外部主机&#xff08;例如单片机&#xff09;实现更复杂的应用。ERTEC200P-2与外部主机接口的示意图如下。常用的接口包括UART&#xff0c;SPI&#xff0c;XHIF接口。…

MSI: 基于多元同步索引的SSVEP频率识别算法

MSI: 基于多元同步索引的SSVEP频率识别算法1.算法背景2.算法原理3.Python代码实现1.算法背景 脑机接口&#xff08;Brain-Computer Interface, BCI&#xff09;因其在神经工程与神经科学中的广泛应用价值而备受研究者们的关注。BCI系统可以在人类或动物被试与外部设备之间提供…

“深元AI”赋能传统加油站智能化转型,全力打造新一代智慧加油站

历届的全国两会和党代会上&#xff0c;“安全生产”始终是核心议题。党的二十大报告提出&#xff1a;推动公共安全治理模式向事前预防转型&#xff0c;并强调要加强重点行业、重点领域安全监管&#xff0c;提高防灾减灾救灾和重大突发公共事件处置保障能力。同时&#xff0c;国…

Linux_vim编辑器

Vi编辑器是所有Unix及Linux系统下标准的编辑器&#xff0c;类似于windows系统下的notepad&#xff08;记事本&#xff09;编辑器&#xff0c;由于在Unix及Linux系统的任何版本&#xff0c;Vi编辑器是完全相同的&#xff0c;因此可以在其他任何介绍vi的地方都能进一步了解它&…

Java的CPU 飙升700%优化的真实案例

最近负责的一个项目上线&#xff0c;运行一段时间后发现对应的进程竟然占用了700%的CPU&#xff0c;导致公司的物理服务器都不堪重负&#xff0c;频繁宕机。 那么,针对这类java进程CPU飙升的问题&#xff0c;我们一般要怎么去定位解决呢&#xff1f; 采用top命令定位进程 登…

spring初始项目创建

首先进入http://spring.p2hp.com/projects/spring-framework.html&#xff0c;点击git按钮 点击Access to Binaries中的链接 找到里程碑版本&#xff0c;要引入仓库地址 这里的spring-context依赖只是基础的spring框架的依赖 在resources目录下创建spring的xml文件&#xff0c…

中国31个主要城市绿地数据(空间分辨率为1m)

近年来&#xff0c;为了满足生态文明和可持续发展的理念&#xff0c;科学的城市绿地规划和管理在中国越来越受到重视。因此&#xff0c;提高UGS分类体系和布局布局的合理性&#xff0c;建设绿色宜居城市&#xff0c;是近年来政府和学者关注的重点。为此&#xff0c;本文选取中国…

ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域

专题一、空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 专题二、ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化&#xff1a;地图符号与…

Terraform 系列-Terraform Cloud 比 Terraform OSS 有哪些增强?

系列文章 &#x1f449; Terraform 系列文章 前言 最近在使用 Terraform Cloud 来置备 OCI 的 Always Free Tier, 发现它非常好用&#xff0c;相比 Terraform OSS, 用起来省心多了。 也借此总结学习下&#xff1a;Terraform Cloud 比 Terraform OSS 有哪些增强&#xff0c;…

【从零开始学Skynet】实战篇《球球大作战》(一):功能设计

为了能把之前在基础篇中学习到的Skynet的各种知识结合起来&#xff0c;所以在实战篇中&#xff0c;我们准备开发一个完整的游戏案例《球球大作战》&#xff0c;介绍分布式游戏服务端的实现方法。 1、功能需求 《球球大作战》是一款多人对战游戏&#xff0c;下图是它的战斗场景…

C语言库函数(memcpy,memmove)的模拟实现

模拟实现memcpy函数 下面是memcpy的函数声明 void *memcpy(void *str1, const void *str2, size_t n) 参数 str1 -- 指向用于存储复制内容的目标数组&#xff0c;类型强制转换为 void* 指针。str2 -- 指向要复制的数据源&#xff0c;类型强制转换为 void* 指针。n -- 要被复…

stm32当中的EXTI外部中断系统

一. 中断系统 中断 &#xff1a; 在主程序运行过程中&#xff0c;出现特定的中断触发条件&#xff0c;使得CPU暂停当前正在运行的程序&#xff0c;而去处理中断程序&#xff0c;完成后&#xff0c;又返回原来被暂停的位置继续工作 中断优先 &#xff1a; 当有多个中断开始时&…

SSR初体验-结合Vue3全家桶

SSR初体验 基础搭建 安装依赖 先开启一个服务器 let express require("express");let server express();server.get("/", (req, res) > {res.send(Hello Node Server); });server.listen(3000, () > {console.log("start node server on …

vue3引入Element plus的详细步骤

目录 一、遇到问题 二、操作步骤 一、遇到问题 在用vue3去引用Element UI的时候&#xff0c;发现了白屏不能显示&#xff0c;一直检查是不是代码的问题。后面找到了问题的所在&#xff0c;原来是vue3对应兼容的是Element Plus&#xff0c;要去下载对应的Element plus版本来引…

为什么提升客户服务是长期成功的关键

当今互联网&#xff0c;服务越来约趋向个人化&#xff0c;但在这个在线互动的时代&#xff0c;当涉及到客户支持时&#xff0c;这种个人联系的感觉可能很难形成。当事情出错时&#xff0c;当客户需要支持时&#xff0c;个人联系的感觉最为强烈。在不远的过去&#xff0c;客户支…