0

我想知道是否可以为每个匹配的 HTTP 请求调用一个方法。

我的情况:我需要在 http 标头中发送地理位置数据,我发送请求,它匹配定义的操作,同时我的地理位置被更新。

我可以轻松地为每个类中的每个方法复制一个方法调用,但我宁愿找到一种更充分的方法来解决这个问题。

感谢您的阅读。

4

1 回答 1

1

您正在寻找的是 Jersey ResponseFilter。这是一个非常简单的示例,它为每个传出请求添加一个静态标头:

package my.package;

import com.sun.jersey.spi.container.ContainerRequest;
import com.sun.jersey.spi.container.ContainerResponse;
import com.sun.jersey.spi.container.ContainerResponseFilter;

public class SimpleFilter implements ContainerResponseFilter
{
  private static final String HEADER = "MyHeader";

  public SimpleFilter()
  {
  }

  @Override
  public ContainerResponse filter(final ContainerRequest request, final ContainerResponse response)
  {
    response.getHttpHeaders().add(HEADER, "MyValue");
    return response;
  }
}

request您可以通过该方法的和response参数访问各种信息filter

您需要通过 web.xml 文件添加过滤器以激活它:

<init-param>
  <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
  <param-value>my.package.SimpleFilter</param-value>
</init-param>
于 2013-07-03T21:43:35.977 回答