Java& Jersey 1.17:自定义默认响应标头

时间:2013-08-14 09:39:25

标签: java jersey

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

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

在Jersey中是否有任何方法可以默认从响应头中删除“Server”键值,而无需创建响应,手动删除它然后返回它?

非常感谢任何帮助!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

问候,Evgeniy

答案 2 :(得分: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;
  }
}