Spring MVC 常用注解和用法(二)——url,cookie,session

目录

一·请求参数接收

1.1@PathVariable:获取url中参数

1.2@RequestBody:传递JSON数据

结果:​编辑1.3@RequestPart:上传文件

1.4@RequestHeader:获取Header

1.5@CookieValue:获取Cookie

二·响应处理

2.1返回静态页面

2.2@ResponseBody:返回数据

2.3返回JSON


一·请求参数接收

1.1@PathVariable:获取url中参数

@PathVariable主要用于请求url路径上的数据绑定。

java 复制代码
@RequestMapping("/m8/{id}/{name}")
public String method8(@PathVariable Integer id,
                      @PathVariable("name") String userName) {
    return "解析参数 id:" + id + ", name:" + userName;
}

访问:http://127.0.0.1:8080/param/m8/5/zhangsan

结果:解析参数 id:5, name:zhangsan

1.2@RequestBody:传递JSON数据

JSON是一种轻量的数据交互格式,本质是字符串,负责在不同语言中数据传递和交换。

接收JSON对象,需要使用@RequestBody注解

postman发送JSON数据

结果:1.3@RequestPart:上传文件

java 复制代码
@RequestMapping("/m9")
public String getFile(@RequestPart("file") MultipartFile file) throws IOException {
    String fileName = file.getOriginalFilename();
    file.transferTo(new File("D:/temp/" + file.getOriginalFilename()));
    return "接收到文件名称为:" + fileName;
}

1.4@RequestHeader:获取Header

传统方式可以从HttpServletRequest中获取:

更简洁的方式:

1.5@CookieValue:获取Cookie

传统方式:获取所有cookie的key和value放在数组中

简洁方式:一个变量接收一个cookie的value

1.6@SessionAttribute:获取Session

二·响应处理

2.1返回静态页面

创建前端界面index.html

后端响应处理:

结果:

注意:这里必须使用@Controller,不能使用@RestController。否则index.html会被当作数据返回,而不是视图。

2.2@ResponseBody:返回数据

此时/index.html会作为字符串数据返回给前端

作用在类上:该类中的所有方法返回的都是数据。

作用在方法上:该方法返回的是数据。

如果类中有方法返回页面,有方法返回数据,可以将@ResponseBody加到对应方法上。

2.3返回JSON

后端方法返回对象,Spring MVC可以自动转为JSON。

相关推荐
weixin_460443562 小时前
2026年新修订《网络安全法》实施:Java私有化考试系统如何做好SBOM、漏洞治理与安全升级?
java·开发语言·在线考试系统·企业培训考试系统·宏远培训考试系统·国企培训考试系统·国产化培训系统
海鸥-w5 小时前
什么是AOP
java
Cc.Y5 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
paopaokaka_luck6 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787056 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
阿森_dev6 小时前
2027 届毕设选题怎么选:30 个 Java 方向选题的实现难度排序
java·开发语言·spring boot·毕业设计·课程设计
Sarvartha6 小时前
Lambda 表达式和函数式接口
java·开发语言
计算机毕业设计杰瑞6 小时前
【计算机毕设精品】基于SpringBoot的一体化教务与学业质量管理系统的设计与实现,附源码_增删改查_java项目_可完美运行部署_网站项目
java·spring boot·课程设计
colinu6 小时前
C++ 异步任务与线程生命周期:`std::async`、`future`、`thread`、`jthread` 与协作式退出
java·jvm·c++
蜗牛互联网7 小时前
Python + JSON Schema 实现工单结构化输出与本地复核
java·人工智能·后端