首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >条纹1.5 :在Tomcat上运行-控制HTTP (缓存-控制)头的最佳方法?

条纹1.5 :在Tomcat上运行-控制HTTP (缓存-控制)头的最佳方法?
EN

Stack Overflow用户
提问于 2010-12-15 23:52:06
回答 2查看 902关注 0票数 1

目前,我正在使用这里描述的Servlet过滤器的修改版本:

http://onjava.com/pub/a/onjava/2004/03/03/filters.html

并将其连接到条调度器servlet,如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
 <filter-mapping>
        <filter-name>CacheControl</filter-name>
        <servlet-name>StripesDispatcher</servlet-name>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>

这是可行的:但是有控制我所有内容的效果--我如何才能在每个JSP基础和/或每个actionBean方法基础上获得控制?

我打算尝试扩展'ForwardResolution‘并在这里注入,但是似乎不能在我自己的包结构中实现这一点?(我认为受保护的构造函数)。

我还有两个想法(我不喜欢这个声音)是:

effect).

  • Passing参数中的
  1. 在调用ActionBean的所有JSP上创建随机缓存密钥(从而使ActionBean中的缓存控件无效),然后我可以在CacheControl过滤器中检查是否添加缓存控制头。
  2. 可以将该指令添加到JSP中吗?这样做的推荐方法是什么。

顺便说一句,我的过滤器似乎每一个invocation...is都会被调用两次--这可能是我将过滤器连接到条纹servlet的方式的副作用吧?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-16 10:56:26

实际上,进一步的研究表明,条纹1.5有一个注释机制,用于控制HTTP缓存头:

代码语言:javascript
代码运行次数:0
运行
复制
http://www.stripesframework.org/display/stripes/News

//客户端缓存控制。新的@HttpCache注释可以应用于ActionBean类和/或事件处理程序方法,以控制客户端缓存响应的方式。方法的注释覆盖类上的注释,注释从超类继承而来。这对于来自IE的AJAX调用特别有用。//

票数 2
EN

Stack Overflow用户

发布于 2010-12-16 06:38:57

我将向后开始--您的筛选器会被调用两次,可能是因为同一个页面请求两种资源--例如,页面和css。或者打个ajax电话。

然后,如果您想控制每个请求的资源的缓存,下面是两个servlet唯一的解决方案。我不知道条纹,所以可能还有更好的:

  • 创建了一个实用程序class+method,CacheUtils.addCacheHeaders(response)说。在此方法中,将所有缓存头添加到响应中。在您喜欢的任何地方调用它--一行用于添加缓存。这是一个可编程的approach
  • Define (以逗号分隔的)请求urls列表,它位于过滤器的init-param中。init(..)方法解析param,将其存储在列表中,并仅在当前请求uri (request.getRequestURI())与列表中的请求uri(request.getRequestURI())匹配时应用缓存。这是一种声明式方法--
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4456189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档