直接上代码:
1.ehcache.xml
<ehcache updateCheck="false" dynamicConfig="false">
<diskStore path="java.io.tmpdir/ehcache" />
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
properties="connect=UDP(mcast_addr=231.12.21.132;mcast_port=45566;ip_ttl=32;
mcast_send_buf_size=150000;mcast_recv_buf_size=80000):
PING(timeout=2000;num_initial_members=6):
MERGE2(min_interval=5000;max_interval=10000):
FD_SOCK:VERIFY_SUSPECT(timeout=1500):
pbcast.NAKACK(gc_lag=10;retransmit_timeout=3000):
UNICAST(timeout=5000):
pbcast.STABLE(desired_avg_gossip=20000):
FRAG:
pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;
shun=false;print_local_addr=true)"
propertySeparator="::" />
<defaultCache maxElementsInMemory="1000" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />
<cache name="mycache" maxElementsInMemory="10" eternal="false"
timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true">
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"
properties="replicateAsynchronously=true, replicatePuts=true,
replicateUpdates=true, replicateUpdatesViaCopy=false, replicateRemovals=true" />
</cache>
</ehcache>
2.EhcacheListener.java
package com.listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
public class EhcacheListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent e) {
CacheManager ehcache = new CacheManager();
Cache cache = ehcache.getCache("mycache");
e.getServletContext().setAttribute("mycache", cache);
}
public void contextDestroyed(ServletContextEvent e) {
e.getServletContext().removeAttribute("mycache");
}
}
3.EhcacheWrite.java
package com.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
public class EhcacheWrite extends HttpServlet {
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String key=request.getParameter("key");
String value=request.getParameter("value");
Cache mycache=(Cache)this.getServletContext().getAttribute("mycache");
mycache.put(new Element(key,value));
request.setAttribute("message","成功写入:key="+key+",value="+value);
request.getRequestDispatcher("/writeData.jsp").forward(request, response);
}
public void init() throws ServletException {
}
}
4.EhcacheRead.java
package com.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.ehcache.Cache;
public class EhcacheRead extends HttpServlet {
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String key = request.getParameter("key");
Cache mycache = (Cache) this.getServletContext()
.getAttribute("mycache");
String value=mycache.get(key)==null?null:mycache.get(key).getObjectValue().toString();
request.setAttribute("message", value);
request.getRequestDispatcher("/readData.jsp").forward(request, response);
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException
* if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
6.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:web="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<listener>
<listener-class>com.listener.EhcacheListener</listener-class>
</listener>
<servlet>
<servlet-name>EhcacheWrite</servlet-name>
<servlet-class>com.servlet.EhcacheWrite</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EhcacheWrite</servlet-name>
<url-pattern>/servlet/EhcacheWrite</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>EhcacheRead</servlet-name>
<servlet-class>com.servlet.EhcacheRead</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EhcacheRead</servlet-name>
<url-pattern>/servlet/EhcacheRead</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
7.index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
</head>
<body>
<u>
<li><a href="<%=path%>/writeData.jsp">写数据</a></li>
<li><a href="<%=path%>/readData.jsp">读数据</a></li>
</u>
</body>
</html>
8.writeData.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="<%=path%>/servlet/EhcacheWrite" method="post">
<table>
<tr>
<th>Key<th>
<td><input type='text' name='key'/></td>
</tr>
<tr>
<th>Value<th>
<td><input type='text' name='value'/></td>
</tr>
<tr>
<td colspan='2'>
<input type='submit' value='提交'/><a href="<%=path%>/index.jsp">返回</a><br/>
</td>
</tr>
</table>
</form>
<% if(request.getAttribute("message")!=null){
out.print(request.getAttribute("message"));
}%>
</body>
</html>
9.readData.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="<%=path%>/servlet/EhcacheRead" method="post">
<table>
<tr>
<th>Key<th>
<td><input type='text' name='key'/></td>
</tr>
<tr>
<td colspan='2'>
<input type='submit' value='提交'/><a href="<%=path%>/index.jsp">返回</a><br/>
</td>
</tr>
</table>
</form>
<%out.print(request.getAttribute("message"));%>
</body>
</html>
代码可以 点击打开链接下载