控制器中使用原生的ServletAPI对象

SpringMVC 内部本质就是基于 ServletAPI,所以 SpringMVC 允许你在控制器中直接注入它们:

public String save6(HttpServletRequest request, HttpServletResponse response)

1. 打印 request

System.out.println(request);

request 代表一次用户请求的所有信息,例如:URL,协议头,请求方式(GET、POST),参数,Cookie,Session,客户端 IP

打印出来只是为了让你知道:SpringMVC 真给你的是原生 request 对象。

2. 获取 HttpSession(重点)

HttpSession session = request.getSession(); System.out.println(session);

session 作用:保存"用户级别"的数据;登录信息、购物车信息、权限信息

session特征:一次浏览器关闭之前,数据一直都在。

request.getSession() 用于:用户登入后保存用户信息,购物车功能,权限控制

3. 获取单个请求参数

String username = request.getParameter("username"); String age = request.getParameter("age");

从表单中取 input 的值,例如:

<input name="username" />

request.getParameter() 永远返回 String

不管你传 number、boolean、日期,全都会变成 String。

4. 打印参数(调试用)

System.out.println(username); System.out.println(age);

5. 获取所有参数 Map(重点)

Map<String, String\[\]> parameterMap = request.getParameterMap();

(1)所有参数都被存成 Map

(2)key → 参数名

(3)value → 参数值数组(即使有 1 个值也用数组存)

例如你的表单:

username = "张三" age = "20"

Map 结构是:

{ "username": "张三", "age": "20" }

6. 遍历参数 Map

for (Map.Entry<String, String\[\]> entry : entrySet) { String key = entry.getKey(); // 参数名 String\[\] values = entry.getValue(); // 参数值数组(一个参数也用数组存) System.out.println("参数名:" + key); for (String v : values) { System.out.println("参数值:" + v); } }

key = input 名字

value = input 的值数组

map.entrySet() 是所有的 key-value 对

每次循环取出一个 entry

entry 相当于:

"username" = "张三" "age" = "20"

entry.getKey() 得到 key

→ username / age

entry.getValue() 得到 value(数组)

"张三" / "20"

相关推荐
vHelios17 小时前
【电商项目】商品搜索开发复盘(1):根据需求拆解搜索接口的设计逻辑
java·微服务·es
极创信息17 小时前
国产化信创适配认证高频术语:信创适配、软件自主可控、国产化率、代码溯源率、代码自主率、代码开源率是什么?
java·python·struts·eclipse·开源·php·hibernate
Data_Journal17 小时前
什么是 CAPTCHA,它是如何工作的?
java·大数据·服务器·前端·数据库
mqiqe17 小时前
响应式流中的错误处理:Project Reactor 异常治理全体系
java·架构
我命由我1234517 小时前
Android 开发问题:TopAppBar 和 topAppBarColors API is experimental...
android·java·java-ee·kotlin·android studio·android jetpack·android-studio
AC赳赳老秦18 小时前
语义采集进阶实战:利用 OpenClaw AI 语义识别自动提取网页核心信息,无需手动编写选择器
java·运维·服务器·python·信息可视化·deepseek·openclaw
AI人工智能+电脑小能手18 小时前
大白话说Java设计模式-23-桥接模式(源码剖析篇)
java·设计模式·jdbc·桥接模式·源码分析·awt·java logging
李高钢18 小时前
C# WPF Prism 进阶(二):区域(Region)与模块化(Module)
java·前端·数据库
long31618 小时前
枚举(Enums)
java·开发语言·数据库
明月_清风18 小时前
Pi Agent 深度解析:开源极简终端 AI 编码代理的终极指南
前端·后端·ai编程