若是在jsp中使用以下标签css
<cache:cache key="foobar" scope="session"> some jsp content </cache:cache>
那么这中间的一段jsp代码将会以key="foobar"缓存在session中,任何其余页面中使用这个key的cache标签都能共享这段存在缓存中的执行结果。html
考虑一个需求,一个页面是有许多个不一样的jsp文件拼出来的,可能在页首有随机的广告,登陆用户的信息,系统的即时信息,固定的目录信息等等;这其中能够考虑将固定的目录信息放入缓存中,而其余动态信息则即时刷新;再进一步考虑有时候页面之间的信息是关联的,只有当其中一条信息的内容变化了才须要去刷新。java
对于这种需求就能够考虑在<cache:cache/>标签中配置group属性,将不一样的具备关联关系的cache内容分组,这样oscache会自动的帮你检查该组缓存内容的变化状况,若是有任何一子成员组的内容变化了则会执行刷新,这样就能够在页面实现数据的动态同步。缓存
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ page import="java.text.SimpleDateFormat"%> <%@ 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分组group1和group2,将group2设置为每次都执行刷新,因此test1为key的cache每次刷新页面内容都是从新执行过的 --> <cache:cache key='test1' groups='group1,group2' duration='5s'> <b>Cache Time1</b>: <%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())%><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> <!-- test2只有当间隔时间超过5秒才会更新内容 --> <cache:cache key='test2' groups='group1' duration='5s'> <b>Cache Time2</b>: <%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())%><br> This is some cache content test2 that is in 'group1' (refreshes if more than 5 seconds old)<br> </cache:cache> <hr>
<!--每隔20秒刷新一次-> <cache:cache key='test3' duration='20s'> <b>Cache Time3</b>: <%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())%><br> This is some cache content test3 that is in 'group1' and 'group2'. The groups are added using the tag.<br> </cache:cache> <hr>
<!--实时刷新--> <cache:cache key='test4' duration='20s'> <b>Cache Time4</b>: <%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())%><br> This is some cache content test4 that is in 'group1' and 'group2'. The groups are added using the tag.<br> <cache:addgroups groups='group1,group2' /> </cache:cache> <hr> </body> </html>
<cache:addgroup group='{you_group}'/>能够将所在的you_group加入当前所在位置的group中session