我想知道是否可以为每个匹配的 HTTP 请求调用一个方法。
我的情况:我需要在 http 标头中发送地理位置数据,我发送请求,它匹配定义的操作,同时我的地理位置被更新。
我可以轻松地为每个类中的每个方法复制一个方法调用,但我宁愿找到一种更充分的方法来解决这个问题。
感谢您的阅读。
您正在寻找的是 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>