参考资料:
https://waylau.gitbooks.io/jersey-2-user-guide/content/
https://jersey.java.net/documentation/latest/
拦截器意图操纵的实体,通过操纵实体的输入/输出数据流。比如你需要编码的客户端请求的实体主体
jersey提供如下拦截器:
ReaderInterceptor
WriterInterceptor
reader用的不多,writer可以用来开启gzip压缩,这个倒是很实用,
同样需要注册该类
注:访问后先执行请求过滤器,再匹配到相应方法,执行方法体,
然后有异常,执行异常拦截器,其次执行回复过滤,最后是GZIP压缩
context.proceed(),之前不小心把这句漏了所有请求没返回~
来自:http://blog.csdn.net/u012706811/article/details/52054157
资源实例下载:http://download.csdn.NET/detail/sotong006/9913077
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