Java 如何使用过滤器修改请求对象中的头
我需要创建一个过滤器并修改请求对象中设置的标题值。如何使用筛选器修改请求对象中的标头?请求对象中没有可用的setHeader方法。您可以使用Java 如何使用过滤器修改请求对象中的头,java,Java,我需要创建一个过滤器并修改请求对象中设置的标题值。如何使用筛选器修改请求对象中的标头?请求对象中没有可用的setHeader方法。您可以使用javax.servlet.http.HttpServletRequestWrapper包装服务器传递的HttpServletRequest对象 在包装器类中,您需要重写getHeader方法并返回header的修改值 您可以参考此处的类似帖子您可以使用 导入java.util.stream.collector 将下面的方法添加到您的类中 private M
javax.servlet.http.HttpServletRequestWrapper
包装服务器传递的HttpServletRequest
对象
在包装器类中,您需要重写getHeader
方法并返回header的修改值
您可以参考此处的类似帖子您可以使用 导入java.util.stream.collector 将下面的方法添加到您的类中
private Map<String, String> convertHeadersToLowerCase(Map<String, String> headers) {
return headers
.entrySet()
.stream()
.collect(Collectors.toMap(entry -> entry.getKey().toLowerCase(), entry -> entry.getValue()));
}
私有映射转换器headerstolowercase(映射头){
返回标题
.entrySet()
.stream()
.collect(Collectors.toMap(entry->entry.getKey().toLowerCase(),entry->entry.getValue());
}
然后,在返回响应中的标题之前,应确保在返回之前通过将以下内容添加到响应方法的控制器中来转换标题:
requestHeaders=convertRequestHeadersToLowerCase(requestHeaders)
您在谈论HTTP吗?是的HttpServletRequest请求对象为此目的使用
HttpServletRequestWrapper
。OP询问的是修改请求中的头,而不是响应。