OSCache-JSP页面缓存(2)
如果在jsp中使用如下标签
<cache:cache key="foobar" scope="session">
some jsp content
</cache:cache>
那么这中间的一段jsp代码将会以key="foobar"缓存在session中,任何其他页面中使用这个key的cache标签都能共享这段存在缓存中的执行结果。
考虑一个需求,一个页面是有许多个不同的jsp文件拼出来的,可能在页首有随机的广告,登录用户的信息,系统的即时信息,固定的目录信息等等;这其中可以考虑将固定的目录信息放入缓存中,而其他动态信息则即时刷新;再进一步考虑有时候页面之间的信息是关联的,只有当其中一条信息的内容变化了才需要去刷新。
对于这种需求就可以考虑在<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中
OSCache-JSP页面缓存(2)的更多相关文章
- JSP 页面缓存以及清除缓存
一.概述 缓存的思想可以应用在软件分层的各个层面.它是一种内部机制,对外界而言,是不可感知的. 数据库本身有缓存,持久层也可以缓存.(比如:hibernate,还分1级和2级缓存) 业务层也可以有缓存 ...
- jsp页面缓存清理
jsp页面开发过程中,页面修改了,但是显示的还是以前的页面,没有显示刚修改的内容,清理缓存方法,加上头信息: <meta http-equiv="pragma" conten ...
- nginx+redis 实现 jsp页面缓存,提升系统吞吐率
最近在开发的时候,发现之前APP客户端的一部分页面用的是webview交互,这些页面请求很多,打开一套试卷,将会产生100+的请求量,导致系统性能下降.于是考虑在最靠近客户端的Nginx服务器上做Re ...
- jsp页面禁用缓存
问题:为什么禁用JSP页面缓存 就是为了得到实时信息 怎样禁用JSP页面缓存 1.在JSP页面设置 <meta http-equiv="pragma" content=&qu ...
- SP 页面缓存以及清除缓存
JSP 页面缓存以及清除缓存 一.概述 缓存的思想可以应用在软件分层的各个层面.它是一种内部机制,对外界而言,是不可感知的. 数据库本身有缓存,持久层也可以缓存.(比如:hibernate,还分1级和 ...
- JSP页面中的指令标识
JSP页面中的指令标识 制作人:全心全意 指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中.也就是说,指令标识对于客户端浏览器是不可见的 ...
- OSCache页面缓存的使用
完成项目时,为了减少对数据库的频繁操作,引出了缓存,缓存分为以下几种: 1.一级缓存 一级缓存的存储域是session,作用于单个的dao 2.二级缓存 二级缓存的存储域是sessionFactory ...
- HTML页面和JSP页面禁止缓存
一.JSP页面禁止缓存: 防止浏览器缓存当前访问的JSP动态页面,可以采用如下的方式进行设置,此效果如下的“HTML禁止缓存”: % 将过期日期设置为一个过去时间response.setHeader( ...
- 关于HTML(JSP)页面的缓存设置 -- cache-control
我在项目中遇到这么一个问题,当用户登录了系统后,进入并copy下系统某个页面的link,然后关闭浏览器,重新打开浏览器,把刚才复制好的link paste到浏览器的地址栏去,直接enter,发现浏览器 ...
- 强制JSP页面刷新,防止被服务器缓存(可用于静态include强制刷新)
对于jsp页面,为了防止页面被服务器缓存.始终返回同样的结果. 通常的做法是在客户端的url后面加上一个变化的参数,比如加一个当前时间. 我现在使用的方法是在jsp头部添加以下代码: <% ...
随机推荐
- 2017.11.17 Demo-stm8+temperature timeing control
1Find the lab and add in project. Downtown it from ST official website..compile it to ensure it pa ...
- Android 静默安装/后台安装& Root permission
Android 静默安装/后台安装& Root permission 静默安装其实很简单,今天在网上找资料找半天都说的很复杂,什么需要系统安装权限.调用系统隐藏的api.需要系统环境下编译.需 ...
- ORM版,学生管理系统02
学生管理系统 urls.py url(r'^student_list/$',views.student_list,name="student_list"), url(r'^dele ...
- (一)Nginx正向代理与反向代理
引言:身为前端开发人员来说对于Nginx的作用或许很少听到,这个东西是后端使用的,Nginx对前端而言意味着什么,有什么用呢?大白会整理出几篇文章给大家细细道来. 1.正向代理的概念 正向代理,也就是 ...
- Oracle 索引的失效和重建
查询指定表的索引 SELECT T1.TABLE_NAME, T1.INDEX_NAME, T1.INDEX_TYPE, T1.UNIQUENESS, T1.TABLE_OWNER, T1.STATU ...
- SQL Server临时表的使用方案
文章来源:http://www.codesky.net/article/201007/145241.html 我们今天是要和大家一起讨论的是SQL Server临时表的实用大全,如果你对SQL S ...
- LeetCode Design TinyURL
原题链接在这里:https://leetcode.com/problems/design-tinyurl/description/ 题目: How would you design a URL sho ...
- ulimit 设置
1. /etc/security/limit.conf * soft nofile 65535 * hard nofile 65535 * soft nproc 65535 * hard nproc ...
- 调用 Windows 7 中英文混合朗读
1.windows7内置语音识别 2.文本到语音转换增加了 Microsoft Lili - Chinese(China) ,支持中英文混合朗读 3.女声.部分词组基本发音准确 以上让我有做个小程序的 ...
- mysql中OPTIMIZE TABLE的作用及使用
来看看手册中关于 OPTIMIZE 的描述: OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... 如果您已经删除 ...