Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用过滤器修改请求对象中的头_Java - Fatal编程技术网

Java 如何使用过滤器修改请求对象中的头

Java 如何使用过滤器修改请求对象中的头,java,Java,我需要创建一个过滤器并修改请求对象中设置的标题值。如何使用筛选器修改请求对象中的标头?请求对象中没有可用的setHeader方法。您可以使用javax.servlet.http.HttpServletRequestWrapper包装服务器传递的HttpServletRequest对象 在包装器类中,您需要重写getHeader方法并返回header的修改值 您可以参考此处的类似帖子您可以使用 导入java.util.stream.collector 将下面的方法添加到您的类中 private M

我需要创建一个过滤器并修改请求对象中设置的标题值。如何使用筛选器修改请求对象中的标头?请求对象中没有可用的setHeader方法。

您可以使用
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询问的是修改请求中的头,而不是响应。