Jersey过滤器

Jersey过滤器、

过滤器可以修改入站和出站请求和响应包括标题的修改,实体等的请求/响应参数。


例如用来操纵请求和响应参数像HTTP头,URI和/或HTTP方法.


服务器过滤主要有两个接口:
ContainerRequestFilter 过滤请求前
ContainerResponseFilter 一个是过滤请求后


1.ContainerResponseFilter
这个是请求结束后响应回复阶段过滤,很简单,有什么参数直接加个断点就能查看到了,同样要使用注解,让jersey认为该类为其一个处理器.

/**
 * 对于response的过滤器
 * 过滤器主要是用来操纵请求和响应参数像HTTP头,URI和/或HTTP方法
 */
@Provider
public class ResponseFilter implements ContainerResponseFilter {
    @Override
    public void filter(ContainerRequestContext containerRequestContext,
                       ContainerResponseContext containerResponseContext) throws IOException {
        /**
         * 具体可以获取什么参数,加个断点就可以看到了
         */
        System.out.println("执行回复过滤");
    }
}
2.ContainerRequestFilter

注解有@PreMatching和@Provider,经测试,前者只要收到请求就开始执行,后者是收到请求,匹配到相应的处理方法后执行,也就是前者匹配前,后者匹配后执行. 
/**
 * 对于request的过滤器
 * 过滤器主要是用来操纵请求和响应参数像HTTP头,URI和/或HTTP方法
 * @author Niu Li
 * @date 2016/7/27
 * Provider //这个是匹配后增加参数或者减少参数
 */
@PreMatching  //不知道为什么和后请求过滤器冲突,不能同时使用
public class PreRequestFilter implements ContainerRequestFilter {
    @Override
    public void filter(ContainerRequestContext containerRequestContext) throws IOException {
        /**
         * 具体可以获取什么参数,加个断点就可以看到了
         */
        System.out.println("PreRequestFilter");
    }
}
注:启动过滤器需要注册RESTApplication
public class RESTApplication extends ResourceConfig {

    public RESTApplication() {

        //想让jersey托管的部分需要加入扫描,或者使用register指定托管类也可以
        packages("com.haikong.resources","com.haikong.exception");
        register(LoggingFilter.class);
        register(JacksonJsonProvider.class);
        //注册过滤器,扫包对@PreMatching注解无用,只能手动加入
        register(PreRequestFilter.class);
        register(ResponseFilter.class);
        /**
         * 对于链接,先执行请求过滤,有异常则执行异常过滤,最后执行回复过滤
         */
        System.out.println("加载RESTApplication");
    }
}

来自:http://blog.csdn.net/u012706811/article/details/52054157

资源实例下载:http://download.csdn.NET/detail/sotong006/9913077


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值