在Jersey生命周期中,一个人如何拦截请求?

cww:

我已经使用了Jersey一年的大部分时间,并且偶然发现了一个我找不到答案的问题:如何截获(或挂钩)Jersey请求生命周期?

理想情况下,我可以在容器从网络接受请求的时间到调用处理程序方法的时间之间执行一些自定义的过滤/验证/拒绝。如果有一种简单的方法可以按子路径过滤拦截器(例如,在/下有一个拦截器,在/ user /下有另一个拦截器,等等),则可以加分。

谢谢!

编辑:为了更清楚一点,这里的总体思路是能够编写一些将在许多API调用中运行的代码,而不必从每个处理程序方法中显式调用该代码。这将减少额外的代码,并消除了传递请求上下文的需要。

cww:

我找到了答案。

首先,创建一个实现ContainerRequestFilter的类。该接口指定以下方法,在该方法中进行过滤。ContainerRequest对象包含有关当前请求的信息。

public ContainerRequest filter(ContainerRequest req);

之后,在web.xml的servlet配置中包含以下XML

<init-param>
  <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
  <param-value>path.to.filtering.class</param-value>
</init-param>

资料来源:

http://jersey.576304.n2.nabble.com/ContainerRequestFilter-and-Resources-td4419975.html http://markmail.org/message/p7yxygz4wpakqno5

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建一个计算来从两个日期中得出一个人的年龄?

我可以让这些生命周期中的任何一个隐含吗?

一个人如何加总分?

一个人如何代表空字符?

一个人如何访问超类?

一个人如何使用Ubuntu for Android?

如何调整属于一个类的唯一指针的char数组的大小。必须在程序的整个生命周期中保持活力

git:如何将提交推送到另一个人的现有拉取请求?

我在 Fragment 生命周期中遇到了麻烦,需要一个解决方案来解决它

一个人如何使用Maven个人资料?

给定一个人的名字,如何查询关于这个人的wikidata属性?

一个人如何加一个大数字?

一个人如何创建一个适应不同尺寸图像的画廊?

如何将一个人的ID是另一个人的外键批量插入到两个表中?

一个人如何才能执行git push来检查一个人是否具有对远程写权限?

从arrayList中移除一个人

从array中删除一个人

Learnyounode http被一个人收走

TASM一个人解决

排名mysql并查询一个人

一个人让我发疯

价值不是由一个人激发的?

一个人应该如何连接一组数组?

拥有一个在整个对象生命周期中都拥有资源的类成员是一个好主意吗?

一个人可以保存填写的PDF,而另一个人不能保存

如何在sailsjs生命周期方法中循环一个集合?

如何在Swift的另一个生命周期时刻应用scalePagesToFit?

一个人应该如何在泛型中实现空对象模式?

一个人应该如何组织AngularJS服务