我们要解决的任务是为使用HttpService.registerResources()方法在OSGi环境中公开的静态资源(例如Cache-Control
)设置自定义响应标头。
根据以下细节,实现这一目标的最佳途径是什么:
我们想到的解决方案是:
使用与资源URI相同的URI为每个registerResource()
调用注册过滤器。过滤器将响应设置响应标头。
在根路径上注册一个过滤器,并将其配置为在请求URI对应于已知资源URI路径时设置响应头。
我们渴望听到有关建议解决方案的意见,并了解其他替代方案。
答案 0 :(得分:2)
基于Equinox Jetty的HttpService实现已支持所有资源注册的If-None-Match
和If-Modified-Since
个请求标头。
但是,如果它确实需要与框架无关并且符合HttpService标准并且您无论如何都要以编程方式注册资源,那么我建议您编写自己的servlet(例如像the one from Equinox)来处理资源请求。而不是使用registerResources
使用此servlet和registerServlet
直接包装任何资源注册。您可以在那里实施任何缓存策略。