欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

缓存filter及资源池模式 ServletOSCacheEJBWeb 

程序员文章站 2022-03-11 07:50:24
...
 一。缓存过滤器模式
1。概念:缓存过滤器模式是通过使用servlet的filter来动态地缓存生成的页面,从而提高web层的性能和伸缩性。工作原理非常简单,当第一次请求到来时,判断是否可以缓存,可以的话就放在缓存里。当下次请求时,直接从缓存中取出,而不是再次请求。
2。一个简单实现对html页面的缓存:
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb package cfexample.controller;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import java.io.*;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.*;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.http.*;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
/** *//**
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb  *用来替代HttpServletReponse的新对象,以提供缓存能力
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb  
*/

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
public class CacheResponseWrapper extends HttpServletResponseWrapper 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
private CacheOutputStream outStream;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
//替换OutputStream和PrintWriter
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
    private ServletOutputStream stream;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
private PrintWriter writer;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb    
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
class CacheOutputStream extends ServletOutputStream 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb  
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
private ByteArrayOutputStream bos;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb  
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         CacheOutputStream() 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             bos 
= new ByteArrayOutputStream();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
public void write(int param) throws IOException 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             bos.write(param);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
public void write(byte[] b, int off, int len) throws IOException 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             bos.write(b, off, len);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
protected byte[] getBytes() 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
return bos.toByteArray();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb      
public CacheResponseWrapper(HttpServletResponse original) 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
super(original);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
protected ServletOutputStream createOutputStream() 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
throws IOException
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         outStream 
= new CacheOutputStream();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
return outStream;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
public ServletOutputStream getOutputStream()
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
throws IOException 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
if (stream != null缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
return stream;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
if (writer != null缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
throw new IOException("Writer already in use");
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         stream 
= createOutputStream();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
return stream;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb      
public PrintWriter getWriter() throws IOException 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
if (writer != null缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
return writer;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
if (stream != null缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
throw new IOException("OutputStream already in use");
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         writer 
= new PrintWriter(new OutputStreamWriter(createOutputStream()));
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
return writer;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
protected byte[] getBytes() throws IOException 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
if (outStream != null缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
return outStream.getBytes();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
return null;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
//CacheFilter.java 过滤器:
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
package cfexample.controller;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import java.io.*;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import java.net.*;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import java.util.*;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import java.text.*;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.*;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.http.*;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.Filter;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.FilterChain;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.FilterConfig;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.ServletContext;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.ServletException;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.ServletRequest;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
import javax.servlet.ServletResponse;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
public class CacheFilter implements Filter 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
private FilterConfig filterConfig = null;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
//缓存池
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
    private HashMap cache;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
public CacheFilter() 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
public void doFilter(ServletRequest request, 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                          ServletResponse response,
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                          FilterChain chain)
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
throws IOException, ServletException
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         HttpServletRequest req 
= (HttpServletRequest) request;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         HttpServletResponse res 
= (HttpServletResponse) response;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb        
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
//缓存子中的键URI+查询字符串
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
        String key = req.getRequestURI() + "?" + req.getQueryString();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
//只缓存get请求的内容
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
        if (req.getMethod().equalsIgnoreCase("get"&& isCacheable(key)) 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
byte[] data = (byte[]) cache.get(key);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb            
//池中没有,生成并存入
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
            if (data == null缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                 CacheResponseWrapper crw 
= new CacheResponseWrapper(res);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                 chain.doFilter(request, crw);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                 data 
= crw.getBytes();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                 cache.put(key, data);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             }
 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
// 如果有的话,直接得到返回
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
            if (data != null缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                 res.setContentType(
"text/html");
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                 res.setContentLength(data.length);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                 
try 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                     OutputStream os 
= res.getOutputStream();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                     os.write(data);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                     os.flush();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                     os.close();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                 }
 catch(Exception ex) 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                     ex.printStackTrace();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb                 }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }
 else 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb             
// generate the data normally if it was not cacheable
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
            chain.doFilter(request, response);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
//判断是否可以缓存,考虑一个配置文件配置哪些可以缓存,此处省去
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
    private boolean isCacheable(String key) 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
return true;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
public void init(FilterConfig filterConfig) 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
this.filterConfig = filterConfig;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         cache 
= new HashMap();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
public void destroy() 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         cache.clear();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         cache 
= null;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb         filterConfig 
= null;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb }

缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 


3.实际应用例子:oscache是很好的解决web层缓存的方案!!准备认真读读它的源代码。

二。资源池模式:
1。概念:一个资源池就是一组预先生成的对象,它们可以被出借以便节省多次chuang创建它们所花费的时间。典型的如:EJB池(Service Locator一般都有一个ejb的home接口池),数据库连接池。

2。优点:A。提高了应用的可伸缩性,使资源的创建和开销不至于失控。B,产生了一个统一的有效微调点,通过运行时修改池参数来影响应用的性能等因素。

3。简单实现:
(1)首先一个创建对象的工厂:
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb package pool;
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
public interface ResourceFactory 缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb {
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
public Object createResource();
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb     
//验证返回的资源,并提供还原
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
    public boolean validateResource(Object o);
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb }


(2)资源池:
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb 
缓存filter及资源池模式
            
    
    
        ServletOSCacheEJBWeb