一: 小试 EhCache web 用来缓存JSP页面
0) 涉及到的jar包
ehcache-core-2.5.2.jar,
ehcache-web-2.0.4.jar
1) web.xml
这里使用了个简单的过滤器来拦截所有的jsp请求
<web-app
<filter>
<filter-name>PageCacheFilter</filter-name><filter-class>net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter </filter-class>
</filter>
<filter-mapping>
<filter-name>PageCacheFilter</filter-name><url-pattern>/*.jsp</url-pattern>
</filter-mapping>
</web-app>
2) ehcache.xml
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../main/config/ehcache.xsd">
<diskStore path="java.io.tmpdir/ehcache" />
<cache name="SimplePageCachingFilter"
maxElementsInMemory="10000"
maxElementsOnDisk="1000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="5"
timeToLiveSeconds="10"
memoryStoreEvictionPolicy="LFU"
/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
</ehcache>
3)一个简单的index.jsp页面来打印出日志
<%@page import="java.sql.ResultSet"%>
<%@page import="com.db.DB"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>测试</title>
</head>
<body>
<%
System.out.println(System.currentTimeMillis());
%>
</body>
</html>
4)测试方法
1.启动了项目去访问index.jsp页面
2.刷新index.jsp页面,看后台是否打印出日志
3.其实使用页面缓存已对文件进行了gzip压缩了。无需在使用下面的GzipFilter进行过滤处理。
二、使用gzip优化web应用(filter实现)
测试时没有发现有用,似乎tomcat已经启用了gzip功能
gzip是http协议中使用的一种加密算法,客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其他资源,
返回到客户端,客户端加载后渲染呈现,这种情况文件一般都比较大,如果开启Gzip ,那么服务器端响应后,会将页面,
JS,CSS等文本文件或者其他文件通过高压缩算法将其压缩,然后传输到客户端,由客户端的浏览器负责解压缩与呈现。
通常能节省40%以上的流量
1) web.xml中添加过滤器
<filter>
<filter-name>gzipFilter</filter-name>
<filter-class>
net.sf.ehcache.constructs.web.filter.GzipFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>gzipFilter</filter-name>
<url-pattern>*.js</url-pattern>
<url-pattern>*.tpl</url-pattern>
<url-pattern>*.prd</url-pattern>
<url-pattern>*.ftl</url-pattern>
<url-pattern>*.html</url-pattern>
<url-pattern>*.css</url-pattern>
</filter-mapping>
http://happysoul.iteye.com/blog/1151692