jakarta.servlet.ServletRequest#getParameterMap可以包含null键或值吗(在Tomcat中)?文档对此并不清楚:返回此请求的参数的java.util.Map。请求参数是随请求一起发送的额外信息。对于HTTPservlet,参数包含在查询字符串或提交的表单数据中。返回:一个不可变的java.util.Map,包含参数名作为键,参数值作为Map值。参数Map中的键的类型为String。参数Map中的值为String数组类型。
jakarta.servlet.ServletRequest#getParameterMap
6vl6ewon1#
这其实是两个问题:它可以包含null键吗?不。关键字是参数名。如果一个参数没有名字,它就不存在。它可以包含null值吗?否。该值是参数值。参数在查询字符串或发布数据中可能看起来没有值,但Map将其存储为具有单个值“”的String数组。如果你试图从map中获取一个值,它返回null,这表明具有该键/名称的参数不存在。由于您提到了Tomcat,它返回ParameterMap(规范指定了Map,这是一个接口,因此不同的容器可能返回不同类型的Map)。一般来说,您可以假设您获得的Map与您通过ServletRequest.getParameterValues进行交互的Map具有相同的行为。
ParameterMap
Map
ServletRequest.getParameterValues
1条答案
按热度按时间6vl6ewon1#
这其实是两个问题:
它可以包含null键吗?不。关键字是参数名。如果一个参数没有名字,它就不存在。
它可以包含null值吗?否。该值是参数值。参数在查询字符串或发布数据中可能看起来没有值,但Map将其存储为具有单个值“”的String数组。如果你试图从map中获取一个值,它返回null,这表明具有该键/名称的参数不存在。
由于您提到了Tomcat,它返回
ParameterMap
(规范指定了Map
,这是一个接口,因此不同的容器可能返回不同类型的Map)。一般来说,您可以假设您获得的Map与您通过
ServletRequest.getParameterValues
进行交互的Map具有相同的行为。