栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

泽西岛:默认缓存控制为无缓存

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

泽西岛:默认缓存控制为无缓存

通过使用ResourceFilterFactory,使用Jersey可以轻松实现-
您可以创建附加到方法的任何自定义注释来设置缓存控制设置。应用程序初始化时,将为每个发现的资源方法调用ResourceFilterFactories-
在您的ResourceFilterFactory中,您可以检查该方法是否具有@CacheControlHeader批注(或任何您想调用的注解)-如果没有,只需返回添加“
no-cache”的响应过滤器”指令,否则应使用批注中的设置。这是如何执行此操作的示例:

public class CacheFilterFactory implements ResourceFilterFactory {    private static final List<ResourceFilter> NO_CACHE_FILTER = Collections.<ResourceFilter>singletonList(new CacheResponseFilter("no-cache"));    @Override    public List<ResourceFilter> create(AbstractMethod am) {        CacheControlHeader cch = am.getAnnotation(CacheControlHeader.class);        if (cch == null) { return NO_CACHE_FILTER;        } else { return Collections.<ResourceFilter>singletonList(new CacheResponseFilter(cch.value()));        }    }    private static class CacheResponseFilter implements ResourceFilter, ContainerResponseFilter {        private final String headerValue;        CacheResponseFilter(String headerValue) { this.headerValue = headerValue;        }        @Override        public ContainerRequestFilter getRequestFilter() { return null;        }        @Override        public ContainerResponseFilter getResponseFilter() { return this;        }        @Override        public ContainerResponse filter(ContainerRequest request, ContainerResponse response) { // attache Cache Control header to each response based on the annotation value response.getHttpHeaders().putSingle(HttpHeaders.CACHE_CONTROL, headerValue); return response;        }    }}

批注可以如下所示:

@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface CacheControlHeader {    String value();}

通过将以下初始化参数添加到web.xml中的Jersey servlet的定义,可以在您的应用程序中注册ResourceFilterFactory:

<init-param>    <param-name>com.sun.jersey.spi.container.ResourceFilters</param-name>    <param-value>package.name.CacheFilterFactory</param-value></init-param>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号