Java HttpServletRequest中的标头和getter

Java HttpServletRequest中的标头和getter,java,servlets,Java,Servlets,我正在使用HttpServletRequest,必须从该对象输出所有头和信息 对于标题,我使用getHeadersNames 我从getContentType获得重复的参数,例如Header.content-type和ContentType 我的问题是: 有一种很好的方法可以输出所有servletRequest参数,而无需迭代头、属性和getter?喜欢玩串吗? 如何避免在没有时态集的情况下检索重复参数? 有可能在其getter为空的头中有一个头吗?例如:标题中存在内容类型,但getConten

我正在使用HttpServletRequest,必须从该对象输出所有头和信息

对于标题,我使用getHeadersNames

我从getContentType获得重复的参数,例如Header.content-type和ContentType

我的问题是:

有一种很好的方法可以输出所有servletRequest参数,而无需迭代头、属性和getter?喜欢玩串吗? 如何避免在没有时态集的情况下检索重复参数? 有可能在其getter为空的头中有一个头吗?例如:标题中存在内容类型,但getContentType为null?
我的答案是在ApacheTomcat8.5的上下文中

有可能在其getter为空的头中有一个头吗?例如:标题中存在内容类型,但getContentType为null

这是不可能的,除非有bug。这些方法查询包含标题的相同内部数据结构

如何避免在没有时态集的情况下检索重复参数

您要两次查询同一个数据结构,所以很简单,不要对同一件事要求两次。可以使用头,也可以使用HttpServletRequest中的方法。唯一的区别是,当使用这些方法时,如果内容长度未知,您将得到一个默认值,如-1,而如果请求缺少头,您将得到NULL

有一种很好的方法可以输出所有ServletRequest参数,而无需迭代头、属性和getter?喜欢串


至少我不知道有这样的标准方法。

将以映射的形式返回所有请求参数。@ramp我很确定OP需要一个返回所有内容的方法-查询参数、标题等。@SvetlinZarev,你是对的,因为帖子和代码都是关于标题的。我只是逐字回答了这个问题:@ramp谢谢,但我寻找了一个返回所有内容的方法,我认为从标题和解释上看很清楚,对不起。
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(", ");
}
sb.append("getAuthType").append("=").append(servletRequest.getAuthType());