SpringBoot:SpringMVC(下)

server/2024/11/15 5:58:44/

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、@RequestBody补充
  • 二、@PathVariable
  • 三.@RequestPart:
  • 四.@ResponseBody
  • 五.@CookieValue,@SessionAttribute,@RequestHeader


前言

提示:这里可以添加本文要记录的大概内容:

接着上一篇的mvc(上),下面继续接着写,上篇回顾,讲到了
a. @RequestMapping: 路由映射
b. @RequestParam: 后端参数重命名
c. @RequestBody: 接收JSON类型的参数
这三个类注解,接下来开启新篇


提示:以下是本篇文章正文内容,下面案例可供参考

一、@RequestBody补充

public class UserInfo {private Integer id;private String username;private Integer age;@Overridepublic String toString() {return "UserInfo{" +"id=" + id +", username='" + username + '\'' +", age=" + age +'}';}public Integer getId() {return id;}public String getUsername() {return username;}public Integer getAge() {return age;}public void setId(Integer id) {this.id = id;}public void setUsername(String username) {this.username = username;}public void setAge(Integer age) {this.age = age;}
}
java">@RequestMapping("/r6")public String r6(@RequestBody UserInfo userInfo){return userInfo.toString();}

这里就是再补充一下中Java对象转json的写法

java">public class JSONUtils {public static void main(String[] args) throws JsonProcessingException {ObjectMapper objectMapper = new ObjectMapper();UserInfo userInfo = new UserInfo();userInfo.setUsername("zhangsan");userInfo.setAge(18);userInfo.setId(10);//对象转jsonString s = objectMapper.writeValueAsString(userInfo);System.out.println(s);UserInfo userInfo1 = objectMapper.readValue(s,UserInfo.class);System.out.println(userInfo1);}
}

在这里插入图片描述
第一行就是转成的json格式
然后把这个复制到postman中

java">{"id":10,"username":"zhangsan","age":18}

requestbody是body并且是json格式
在这里插入图片描述
在这里插入图片描述
然后就可以了

二、@PathVariable

这个就是修改url的路径
我演示一下

java"> @RequestMapping("/r7/{name}/{age}")public String r7(@PathVariable String name,@PathVariable Integer age){return "name:"+name+"age:"+age;}

在这里插入图片描述

三.@RequestPart:

java">@RequestMapping("/r9")public String r9(@RequestPart MultipartFile file) throws IOException {String filename = file.getOriginalFilename();file.transferTo(new File("D:/images/"+filename));return filename;}

在这里插入图片描述
在这里插入图片描述
这个这样子写别忘了

四.@ResponseBody

这个二记住一下@RestController = @Controller + @ResponseBody

五.@CookieValue,@SessionAttribute,@RequestHeader

@CookieValue: 从Cookie中获取值
@SessionAttribute: 从Session中获取值
@RequestHeader: 从Header中获取值

java">public class RequestController {@RequestMapping("/getCookie")public String getCookie(HttpServletRequest request){Cookie[] cookies = request.getCookies();
//        Arrays.stream(cookies).forEach(x -> System.out.println(x.getName()+":"+x.getValue()));if (cookies!=null){for (Cookie c:cookies) {System.out.println(c.getName()+":"+c.getValue());}return "获取cookie成功";}return "获取失败";}@RequestMapping("/getCookie2")public String getCookie2(@CookieValue("bite")String bite){return "bite"+bite;}@RequestMapping("/setSession")public String setSession(HttpServletRequest request){HttpSession session = request.getSession();session.setAttribute("userName","wangwu");return "设置session成功";}@RequestMapping("/getSession")public String getSession(HttpServletRequest request){HttpSession session = request.getSession();String username = (String) session.getAttribute("username");return "登录用户"+username;}@RequestMapping("/getSession2")public String getSession(HttpSession session){String username = (String) session.getAttribute("userName");return "登录用户:"+username;}@RequestMapping("/getSession3")public String getSession(@SessionAttribute("userName")String username){return "登录用户:"+username;}@RequestMapping("/getHeader")public String getHeader(HttpServletRequest request){String userAgent = request.getHeader("User-Agent");return "userAgent:"+userAgent;}
}

个人感觉还是HttpServletRequest 更加通用,当然了setsession还是得session.setAttribute


http://www.ppmy.cn/server/18270.html

相关文章

贪心(贪婪)算法

主要思想 贪心算法的思想主要可以概括为“总是做出当前看起来最优的选择”,也就是不从整体上进行考虑,所得到的答案是某种意义上的局部最优解,不一定是整体最优解。 贪心算法没有固定算法框架,算法设计的关键是贪心策略的选择。…

HarmonyOS开发:【基于命令行(开发环境)】

准备开发环境 在嵌入式开发中,很多开发者习惯于使用Windows进行代码的编辑,比如使用Windows的Visual Studio Code进行OpenHarmony代码的开发。但当前阶段,大部分的开发板源码还不支持在Windows环境下进行编译,如Hi3861、Hi3516系…

Linux——网络管理nmcli

nmcli 不能独立使用,需要对应的服务启动 1. NetworkManager.service 2. 网络配置和服务不相关 3. 通过 nmcl i 建立网络配置和网卡之前的映射关系 网卡 简称:nmcli d DEVICE :物理设备 TYPE: 物理设备类型 ethernet 以太网…

动态内存管理 柔性数组

文章目录 动态内存函数 malloc freecallocrealloc 重新开辟空间realloc 也可以第一个参数为NULL,则是直接开辟内存,类似于malloc用法 常见的动态内存错误对空指针进行解引用操作对开辟的内存越界访问对非动态开辟的内存使用free释放使用free释放动态开辟…

Mysql基础篇

1 数据库的三大范式 第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项。 第二范式:在第一范式的基础上,消除非主属性对主属性的部分函数依赖。要求实体的非主键完全依赖于主键。所谓完全依赖是指不能存…

macos vscode 激活虚拟环境

用 source activate activate的路径报错 解决:cd到activate下的文件下 直接source activate 解决 (base) dearrdearrdeMacBook-Air 时序作业 % /Applications/文件/派森/时序作业/.venv/bin/activat zsh: no such file or directory: /Applications/文件/派森/时…

改ip地址软件手机怎么弄?分享操作指南与注意事项

随着移动互联网的普及,手机已成为我们日常生活中不可或缺的工具。在某些情况下,我们可能需要更改手机的IP地址,以满足特定的网络需求或实现某些功能。然而,对于许多用户来说,如何在手机上更改IP地址可能是一个相对陌生…

2.6设计模式——Flyweight 享元模式(结构型)

意图 运用共享技术有效地支持大量细粒度的对象。 结构 其中 Flyweight描述一个接口,通过这个接口Flyweight可以接受并作用于外部状态。ConcreteFlyweight实现Flyweight接口,并作为内部状态(如果有)增加存储空间。ConcreteFlywe…