在 servlet 中使用 EhCache 緩存
本文主要介紹 在純servlet應用中 整合 EhCache 緩存的使用
1.整合EhCache首先我們要下載EhCache的架包
下載地址:http://ehcache.org/downloads/catalog
直接下載 hcache-2.7.4-distribution.tar.gz
下載后,我們解壓出來到lib文件夾里找到架包,總共有3個文件
ehcache-2.7.4.jar
slf4j-api-1.6.6.jar
slf4j-jdk14-1.6.6.jar
這3個文件我們都是需要的,直接導入到項目里
2.導入架包之后,我們要考慮怎么和servlet容器進行整合
在上一篇文章中 我介紹了 怎么在 servlet 中使用和初始化 ServletContext 也就是全局變量
那我們整合EhCache 是否就可以 把 EhCache 放到 ServletContext 里去?
照例,先實現一個ServletContext的監聽器并且在ServletContext初始化的時候初始化我們的EhCache
public class ContextLoaderListener implements ServletContextListener{
//實現全局上下文初始化方法
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
//獲得全局變量
ServletContext servletContext = servletContextEvent.getServletContext();
//初始化 EhCache 管理器
CacheManager cacheManager = new CacheManager();
//初始化 defaultCache Cache
Cache cache = cacheManager.getCache("defaultCache");
//新建一個cache節點,并賦值"value1"
Element element = new Element("key1","value1");
//把cache節點存儲到默認的cache
cache.put(element);
//將cahe存儲到全局變量(servletContext)
servletContext.setAttribute("Cache",cache);
}
//實現全局上下文銷毀函數
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
//實現
}
} 在 web.xml 里配置 contextInitialized 監聽器
<listener>
<listener-class>listener.ContextLoaderListener</listener-class>
</listener>3.整合完畢,然后我們就可以測試是否整合成功 因為前面我們初始化的時候已經給cache存儲了一個key為“key1”的cache節點
所以我們在helloOut這個servlet中直接查看是否可以取到"key1"節點
public class HelloOut extends HttpServlet {
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException {
PrintWriter writer = response.getWriter();
writer.println("Hello Word For BAE3");
//獲取全局變量
ServletContext servletContext = getServletContext();
//從全局變量獲取 cache
Cache cache = (Cache) servletContext.getAttribute("Cache");
//輸出cache中key為"key1"節點的value
writer.println(cache.get("key1").getObjectValue());
writer.close();
}
}打開 http://localhost:8080/EhCacheTest_war_exploded/hello
可以明顯的看到,我們已經在helloOut這個servlet中取到cache里面"key1"節點的value
預告下一篇文章:java servlet + EhCache 實現的 短鏈接 項目
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!