httpservletrequest中的标题和速度



我正在与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-typeContentType

我的问题:

  1. 有一种很好的方法来输出所有servletRequest参数,而无需迭代headersattributes和Geters吗?喜欢ToString()?
  2. 我如何避免在没有时间集的情况下检索重复的论点?
  3. 是否可以在其getter为空的标题内有一个标头?例如:content-type存在于标题中,但getContentType()是空的?

我的答案是在apache tomcat的背景下(8.5)。

是否可以在其getter为空的标题内有一个标头?例如:内容类型存在于标题中,但是getContentType()null

除非有错误,否则不可能。这些方法查询了包含标题的相同内部数据结构。

我如何避免在没有时间集的情况下检索重复的论点?

您正在查询两次相同的数据结构 - 因此很简单 - 不要对同一件事进行两次要求。要么使用标题,要么使用HttpservletRequest中的方法。唯一的区别是,当使用方法时,您将获得默认值(例如-1,如果内容长度未知),而如果您要求缺少标头,则会获得null。

有一种不错的方法来输出所有ServletRequest参数,而没有迭代标头,属性和Getters?像ToString()

至少我不知道这种标准方法。

最新更新