“掌握了缓存机制,标志程序员进入中高级阶段。”---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() } }
相关资源: