【问题标题】:Is there an ehcache jsp tag?是否有 ehcache jsp 标签?
【发布时间】:2011-09-28 08:02:05
【问题描述】:

在我当前的一个项目中,JSP 变得越来越大(很多 jstl end el 逻辑,没有 Java),并且由于流量增加,许多级别的缓存已成为必要。有些组件需要是动态的,因此我们将无法使用基于过滤器的解决方案。不幸的是,该逻辑使用了许多自定义标签,几乎不使用包含,所以SimplePageFragmentCachingFilter 也无济于事。

我正在寻找的是这样的:

<ehcache:cache key="${myApp.cacheKey}">
    <many />
    <jsp />
    <tags />
    <here />
</ehcache:cache>

此标记将为pageContext.out 公开一个虚拟写入器并将该写入器刷新到缓存和页面,并且在后续请求中将直接从缓存写入pageContext.out

这样的野兽存在吗?

提示:我知道我们应该改变设计,减少 JSP 中的逻辑等。不幸的是,这不会发生。我不是在这里做决定的人,所以请不要去那里。哦,还有:是的,我已经用谷歌搜索过了。

【问题讨论】:

  • 我见过这样一种机制用于缓存整个 JSP 的结果。但那是在一个名为 CoreMedia 的专有内容管理系统中。
  • @nfechner 但它是 JSP 内部的一个标记,还是一种从外部缓存 JSP 调用的机制?
  • 第二种情况。缓存整个 JSP。所以我认为该解决方案不会对您有所帮助。
  • @nfechner 好的,这大致相当于我在问题中提到的SimplePageFragmentCachingFilter,然后
  • >这样的野兽存在吗?由于不再支持 OSCache(它的 jsp 标签起到了作用),我认为不幸的是,答案是否定的。但我仍在寻找......

标签: java jsp ehcache jsp-tags


【解决方案1】:

为此存在两个标签库:Jakarta CacheOpenSymphony OSCache。两者都已启用,Jakarta Cache 库无法下载,但您仍然可以下载 OSCache 库here:OSCache 2.4

它应该按如下方式使用(在您按照通常的方式将 JAR 放入 /WEB-INF/lib 之后):

<%@taglib prefix="oscache" uri="http://www.opensymphony.com/oscache" %>
...
<oscache:cache key="${myApp.cacheKey}">
    <many />
    <jsp />
    <tags />
    <here />
</oscache:cache>

【讨论】:

    【解决方案2】:

    我做了这样的事情:https://github.com/psiegman/ehcachetag

    尚未在生产系统上使用它,但它的代码覆盖率不错。

    【讨论】:

    • 你能在公共仓库中发布一个 maven 工件吗?即使是快照版本也会有所帮助。
    【解决方案3】:

    我相信答案是否定的,这样的野兽是不存在的。

    【讨论】:

    • 我相信这应该是一个评论。
    • 肖恩,通常我会对此发表评论。但在这种情况下,我很确定这是问题的正确答案。用于生成输出的 JSP 机制几乎肯定不会允许这个概念。
    • 既然你可以将jsp输出写入一个变量,没有什么可以阻止这样的事情。
    【解决方案4】:

    对此有一个增强请求 http://jira.terracotta.org/jira/browse/CDV-1617 我建议为它投票。

    【讨论】:

      猜你喜欢
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多