`jakarta.servlet.ServletRequest#getParameterMap`是否可以包含空键或值(在Tomcat中)?

zu0ti5jz  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(168)

jakarta.servlet.ServletRequest#getParameterMap可以包含null键或值吗(在Tomcat中)?
文档对此并不清楚:
返回此请求的参数的java.util.Map。
请求参数是随请求一起发送的额外信息。对于HTTPservlet,参数包含在查询字符串或提交的表单数据中。
返回:一个不可变的java.util.Map,包含参数名作为键,参数值作为Map值。参数Map中的键的类型为String。参数Map中的值为String数组类型。

6vl6ewon

6vl6ewon1#

这其实是两个问题:
它可以包含null键吗?不。关键字是参数名。如果一个参数没有名字,它就不存在。
它可以包含null值吗?否。该值是参数值。参数在查询字符串或发布数据中可能看起来没有值,但Map将其存储为具有单个值“”的String数组。如果你试图从map中获取一个值,它返回null,这表明具有该键/名称的参数不存在。
由于您提到了Tomcat,它返回ParameterMap(规范指定了Map,这是一个接口,因此不同的容器可能返回不同类型的Map)。
一般来说,您可以假设您获得的Map与您通过ServletRequest.getParameterValues进行交互的Map具有相同的行为。

相关问题