Jersey拦截器

来源:互联网 发布:淘宝修改中差评工作室 编辑:程序博客网 时间:2024/05/21 17:59
参考资料: 
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


原创粉丝点击