Jersey拦截器

参考资料: 
https://waylau.gitbooks.io/jersey-2-user-guide/content/ 
https://jersey.java.net/documentation/latest/

拦截器意图操纵的实体,通过操纵实体的输入/输出数据流。比如你需要编码的客户端请求的实体主体 

jersey提供如下拦截器:

ReaderInterceptor
WriterInterceptor

reader用的不多,writer可以用来开启gzip压缩,这个倒是很实用,

并且jersey开启gzip压缩很方便,乱码问题解决办法就是主动告诉浏览器使用哪一种编码解码就好了

public class GzipInterceptor implements WriterInterceptor {
    @Override
    public void aroundWriteTo(WriterInterceptorContext context)
            throws IOException, WebApplicationException {

        MultivaluedMap<String, Object> headers = context.getHeaders();
        headers.add("Content-Encoding", "gzip");
        String ContentType = context.getMediaType().toString();
        headers.add("Content-Type",ContentType+";charset=utf-8");//解决乱码问题
        final OutputStream outputStream = context.getOutputStream();
        context.setOutputStream(new GZIPOutputStream(outputStream));
        context.proceed();
        System.out.println("GZIP拦截器压缩");
    }
}

同样需要注册该类

//注册拦截器
register(GzipInterceptor.class);

注:访问后先执行请求过滤器,再匹配到相应方法,执行方法体,
然后有异常,执行异常拦截器,其次执行回复过滤,最后是GZIP压缩


context.proceed(),之前不小心把这句漏了所有请求没返回~


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


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


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值