1

我目前正在使用 Java 和 Jersey 1.17 创建 Web 服务。但是,在所有响应标头中,我总是得到我正在使用的任何 Web 容器的当前版本,例如

Content-Type -> application/json
Server -> Jetty(8.1.10.v20130312)
Transfer-Encoding -> chunked

泽西岛有什么方法可以默认从响应标头中删除“服务器”键值,而无需创建响应,手动将其删除然后返回?

任何帮助深表感谢!

4

3 回答 3

3

我认为 jersey 不提供此功能,但您可以通过编写 Servlet 响应过滤器来实现此功能。

在此处了解有关 servlet 过滤器的更多信息:http: //punekaramit.wordpress.com/2010/03/16/intercepting-http-response-using-servlet-filter/

或阅读 Oracle 文档:http ://www.oracle.com/technetwork/java/filters-137243.html

于 2013-08-14T09:43:26.270 回答
0

创建这样的过滤器非常简单:

public class ServerHeaderFilter implements ContainerResponseFilter
{
  private static final String SERVERHEADER = "Server";

  @Override
  public ContainerResponse filter(final ContainerRequest request, final ContainerResponse response)
  {
    response.getHttpHeaders().remove(SERVERHEADER);
    return response;
  }
}
于 2013-08-14T18:01:15.043 回答
0

这是如何在java中使用过滤请求和响应的教程。Java EE 5 教程

您可以使用 HttpServletResponse.setHeader(java.lang.String name, java.lang.String value) 来设置您想要的任何标题。

问候, 叶夫根尼

于 2013-08-14T12:12:00.670 回答