【发布时间】:2021-10-29 08:10:33
【问题描述】:
我有以下代码:
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpHeaders httpHeaders = Collections.list(httpServletRequest.getHeaderNames())
.stream()
.collect(Collectors.toMap(
Function.identity(),
h -> Collections.list(httpServletRequest.getHeaders(h)),
(oldValue, newValue) -> newValue,
HttpHeaders::new
));
System.out.println(httpHeaders);
chain.doFilter(request, response);
}
它工作得很好,但我只需要获取一些特定的数据,比如接受编码和接受语言。有没有可能以某种方式做到这一点?
【问题讨论】:
-
httpServletRequest.getHeader(
) 将获取特定标头的值 -
你也可以同时做两个标题吗?
-
你想要什么结果,标题名称和值的映射,或者只是一些标题的值?
-
标题名称和值也适用于指定的。所以基本上我写的代码对标题中的每个数据都是这样做的。但我需要同样的回应,只需要几个。
标签: java java-stream