我正在与httpservletrequest合作,我必须从该对象输出所有标题和信息。
对于标题,我正在使用getHeadersNames()
Enumeration<String> headerEnums = servletRequest.getHeaderNames();
while (headerEnums.hasMoreElements()) {
String elementName = headerEnums.nextElement();
String elementValue = servletRequest.getHeader(elementName);
sb.append("Header.").append(elementName).append("=").append(elementValue).append(", ");
}
之后,我正在使用getters检索所有参数,例如:
sb.append("getAuthType").append("=").append(servletRequest.getAuthType());
我从getContentType()
Header.content-type
和ContentType
我的问题:
- 有一种很好的方法来输出所有
servletRequest
参数,而无需迭代headers
,attributes
和Geters吗?喜欢ToString()? - 我如何避免在没有时间集的情况下检索重复的论点?
- 是否可以在其getter为空的标题内有一个标头?例如:
content-type
存在于标题中,但getContentType()
是空的?
我的答案是在apache tomcat的背景下(8.5)。
是否可以在其getter为空的标题内有一个标头?例如:内容类型存在于标题中,但是
getContentType()
是null
?
除非有错误,否则不可能。这些方法查询了包含标题的相同内部数据结构。
我如何避免在没有时间集的情况下检索重复的论点?
您正在查询两次相同的数据结构 - 因此很简单 - 不要对同一件事进行两次要求。要么使用标题,要么使用HttpservletRequest中的方法。唯一的区别是,当使用方法时,您将获得默认值(例如-1,如果内容长度未知),而如果您要求缺少标头,则会获得null。
有一种不错的方法来输出所有ServletRequest参数,而没有迭代标头,属性和Getters?像ToString()
至少我不知道这种标准方法。