`
itsnack
  • 浏览: 38133 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

在jsp页面中使用oscache标签实现可配置的页面缓存

阅读更多

在jsp页面中使用oscache标签实现可配置的页面缓存

文章分类:Java编程

最近在学习oscache的相关内容,写点东西作为巩固

如果在jsp中使用如下标签

Java代码 复制代码
  1. <cache:cache key="foobar" scope="session">   
  2.          ... some jsp content ...   
  3. </cache:cache>  
<cache:cache key="foobar" scope="session">
         ... some jsp content ...
</cache:cache>

 那么这中间的一段jsp代码将会以key="foobar"缓存在session中,任何其他页面中使用这个key
的cache标签都能共享这段存在缓存中的执行结果

考虑一个需求,一个页面是有许多个不同的jsp文件拼出来的
可能在页首有随机的广告,登录用户的信息,系统的即时信息,固定的目录信息等等
这其中可以考虑将固定的目录信息放入缓存中,而其他动态信息则即时刷新
再进一步考虑 有时候页面之间的信息是关联的,只有当其中一条信息的内容变化了才需要去刷新
对于这种需求就可以考虑在<cache:cache/>标签中配置group属性,将不同的具有关联关系的cache内容
分组,这样oscache会自动的帮你检查该组缓存内容的变化情况,如果有任何一子成员组的内容变化了
则会执行刷新,这样就可以在页面实现数据的动态同步
代码如下:(来源oscache:groupTest.jsp )

Java代码 复制代码
  1. <%@ page import="java.util.*" %>   
  2. <%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache" %>   
  3.   
  4. <head>   
  5. <title>Test Page</title>   
  6. <style type="text/css">   
  7. body {font-family: Arial, Verdana, Geneva, Helvetica, sans-serif}   
  8. </style>   
  9. </head>   
  10. <body>   
  11.   
  12. <a href="<%= request.getContextPath() %>/">Back to index</a><p>   
  13. <hr>Flushing 'group2'...<hr>   
  14. <cache:flush group='group2' scope='application'/>   
  15. <hr>   
  16. <cache:cache key='test1' groups='group1,group2' duration='5s'>   
  17.     <b>Cache Time</b>: <%= (new Date()).getTime() %><br>   
  18.     This is some cache content test1 that is in 'group1' and 'group2'. Normally it would refresh if it   
  19.     was more than 5 seconds old, however the <cache:flush group='group2' scope='application'>   
  20.     tag causes this entry to be flushed on every page refresh.<br>   
  21. </cache:cache>   
  22. <hr>  
<%@ page import="java.util.*" %>
<%@ taglib uri="http://www.opensymphony.com/oscache" prefix="cache" %>

<head>
<title>Test Page</title>
<style type="text/css">
body {font-family: Arial, Verdana, Geneva, Helvetica, sans-serif}
</style>
</head>
<body>

<a href="<%= request.getContextPath() %>/">Back to index</a><p>
<hr>Flushing 'group2'...<hr>
<cache:flush group='group2' scope='application'/>
<hr>
<cache:cache key='test1' groups='group1,group2' duration='5s'>
    <b>Cache Time</b>: <%= (new Date()).getTime() %><br>
    This is some cache content test1 that is in 'group1' and 'group2'. Normally it would refresh if it
    was more than 5 seconds old, however the <cache:flush group='group2' scope='application'>
    tag causes this entry to be flushed on every page refresh.<br>
</cache:cache>
<hr>

 

这里有两个cache分组group1和group2,将group2设置为每次都执行刷新,所以test1为key的cache每次刷新页面内容都是重新执行过的

Java代码 复制代码
  1. <cache:cache key='test2' groups='group1' duration='5s'>   
  2.     <b>Cache Time</b>: <%= (new Date()).getTime() %><br>   
  3.     This is some cache content test2 that is in 'group1' (refreshes if more than 5 seconds old)<br>   
  4. </cache:cache>   
  5. <hr>  
<cache:cache key='test2' groups='group1' duration='5s'>
    <b>Cache Time</b>: <%= (new Date()).getTime() %><br>
    This is some cache content test2 that is in 'group1' (refreshes if more than 5 seconds old)<br>
</cache:cache>
<hr>

 

而test2只有当间隔时间超过5秒才会更新内容

 

Java代码 复制代码
  1. <cache:cache key='test3' duration='20s'>   
  2.     <b>Cache Time</b>: <%= (new Date()).getTime() %><br>   
  3.     This is some cache content test3 that is in 'group1' and 'group2'. The groups are added using the <cache:addgroup /> tag.<br>   
  4.     <cache:addgroup group='group1'/>   
  5.     <cache:addgroup group='group2'/>   
  6. </cache:cache>   
  7. <hr>   
  8. <cache:cache key='test4' duration='20s'>   
  9.     <b>Cache Time</b>: <%= (new Date()).getTime() %><br>   
  10.     This is some cache content test4 that is in 'group1' and 'group2'. The groups are added using the <cache:addgroups /> tag.<br>   
  11.     <cache:addgroups groups='group1,group2'/>   
  12. </cache:cache>   
  13. <hr>   
  14. </body>   
  15. </html>  
<cache:cache key='test3' duration='20s'>
    <b>Cache Time</b>: <%= (new Date()).getTime() %><br>
    This is some cache content test3 that is in 'group1' and 'group2'. The groups are added using the <cache:addgroup /> tag.<br>
    <cache:addgroup group='group1'/>
    <cache:addgroup group='group2'/>
</cache:cache>
<hr>
<cache:cache key='test4' duration='20s'>
    <b>Cache Time</b>: <%= (new Date()).getTime() %><br>
    This is some cache content test4 that is in 'group1' and 'group2'. The groups are added using the <cache:addgroups /> tag.<br>
    <cache:addgroups groups='group1,group2'/>
</cache:cache>
<hr>
</body>
</html>

 

  <cache:addgroup group='{you_group}'/>可以将所在的cache加入存在的group中

分享到:
评论

相关推荐

    OScache配置

    在 OSCache组件中提供了一个CacheFilter用于实现页面级的缓存,主要用于对web应用中的某些动态页面进行缓存,尤其是那些需要生成PDF 格式文件/报表、图片文件等的页面,不仅减少了数据库的交互、减少数据库服务器的...

    OSCache配置说明文档

    OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决...

    OSCache jsp 缓存详解

    看就知道......................

    oscache-JSP缓存

    OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。

    OSCache缓存技术

    尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛...

    oscache的例子

    OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存...

    Oscache使用手册

    尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛...

    oscache文档

    OSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的...

    oscache(JSP定制标记应用)

    javaweb做页面缓存常用,OSCache是一个工业级的...OSCache不但能缓存java对象,还可以缓存页面,http请求和二进制内容,例如pdf文件等。通过应用OSCache,我们不但可以实现通常的Cache功能,还能够改善系统的稳定性。

    oscache缓存中间件

    OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存...

    hibernate+oscache实现二级缓存实例

    非常实用的一个例子,有关于缓存对象 list 或缓存地址或jsp或其它页面,在实例中都有,须望可以帮到大家

    Oscache-入门教程.doc

    尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛...

    OSCache缓存jsp例子

    NULL 博文链接:https://hihitiger.iteye.com/blog/966649

    oscache 使用介紹

    OSCache是OpenSymphony这个开源项目众多Projects中的一个。他是一个高效的J2EE缓存框架,能够很好的解决动态网站速度的问题。

    Oscache框架的搭建步骤

    使用oscache进行缓存,大大提高web系统运行效率

    oscache jar包下载

    oscache-2.4.1.jar资源包,用于java缓存、jsp页面缓存

    oscache-2.4.1-full.rar

    网上对于OSCache缓存Web页面很多说明和例子,但对于缓存对象方面说得不多,我就把自已写得一些东西放出来,让大家看一看是怎样缓存对象的! 我基于GeneralCacheAdministrator类来写的BaseCache类 view plaincopy...

    OSCache使用说明

    OSCache是当前运用最广的缓存方案, Hibernate,jsp,页面等都对其有支持,下面简单介绍一下OSCache的配置和使用过程

    OSCache

    OSCache是一个免费的开放源代码的缓存框架。它提供了对JSP页面,以及其它数据对象的缓存功能。

    OSCache入门教程

    OSCache是一个开放式资源缓冲库,可从...它包括一组JSP的标签,通过它们可以很容易的在你的程序中实现页面缓存,同时,还可以使用它的过滤器,可缓冲的不仅仅是JSP页面,还可以缓存任何Servlet生成的内容。

Global site tag (gtag.js) - Google Analytics