在 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!