在JSP中使用缓存

“掌握了缓存机制,标志程序员进入中高级阶段。”---banq

首先创建一个缓存类,具体依赖你的程序。然后在JSP中把这个缓存类声明为scope="application"的Bean,它只创建一次,存在于application对象中,事实在它是ServletContext对象,对应用中的所有JSP文件都可见。

缓存类的实现可以参考Jive论坛(也就是Yazd)中的util包,下面是一个假想的博客文章缓存实现的大概思路,并不是可运行代码。

public class Cache{

// Article 是文章类,String是它的id,通过id来查找文章
// java.util.HashMap, 你可以用其它合适的素数来替代103
protected HashMap<String, Article> cachedObjectsHash =
new HashMap<String, Article>(103);

// 根据访问计数来维护的链表,保存了Article的id。最先移除的Article是表尾的对象
protected LinkedList<String> accessedList = new LinkedList<String>;

// HashMap的最大体积(文章数)
protected int maxSize = 1024;

// 把Article的id加入到倒数第2位,也可以加入到表头
public void add(Object key, Article article){
if(!cachedObjectsHash.contains(article)){
cachedObjectsHash.add(article.getId()+"", article);
if(cachedObjectsHash.size() > maxSize){
cachedObjectsHash.remove(accessedList.getLast());
accessedList.removeLast();
}
accessedList.addFirst(article.getId()+"");
}
}

public Article get(Object key){
// 如果在链表中找到,位置前移
// 返回
// 否则查找数据库,并cacheObjectsHash.add()
}
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值