web项目使用ehcache-web进行页面缓存或者文件压缩

一:  小试 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

时间: 2024-11-13 08:03:28

web项目使用ehcache-web进行页面缓存或者文件压缩的相关文章

java web项目中的web.xml标签之context-param

WEB项目初始化过程: 在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>. 接着容器会创建一个ServletContext(上下文),应用范围内即整个WEB项目都能使用这个上下文. 接着容器会将读取到<context-param>转化为键值对,并交给ServletContext. 容器创建<listener></listener>中的类实例,即创建监听(备注:li

web项目中的web.xml元素解析

1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义).所有部署描述符文件的顶层(根)元素为web-app.请注意,XML元素不像HTML,他们是大小写敏感的.因此,web-App和WEB-APP都是不

java web项目启动时自动加载自定义properties文件

首先创建一个类 public class ContextInitListener implements ServletContextListener 使得该类成为一个监听器.用于监听整个容器生命周期的,主要是初始化和销毁的. 类创建后要在web.xml配置文件中增加一个简单的监听器配置,即刚才我们定义的类. Xml代码 <listener> <!-- lang: xml --> <description>ServletContextListener</descri

在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式,虽然Web API或者WCF方式的调用,相对直接连接数据库方式,响应效率上略差一些,不过扩展性强,也可以调动更多的设备接入,包括移动应用接入,网站接入,Winfrom客户端接入,这样可以使得服务逻辑相对独立,负责提供接口即可.这种方式中最有代表性的就是当前Web API的广泛应用,促进了各个接入端

创建Maven web项目时 出现 web.xml is missing and &lt;failOnMissingWebXml&gt; is set to true错误 pox.xml编译错误

今天创建一个maven项目 pom.xml出现如下错误: web.xml is missing and <failOnMissingWebXml> is set to true 这是因为你因为你WEB-INF下没有web.xml导致造成的 解决方案: 右击项目——>Java EE Tools——>Generate Deployment Descriptor Stub.然后系统会在src/main/webapp/WEB_INF文件加下创建web.xml文件.错误解决! 当然这个方法是

Java Web项目--使用Servlet生成一个页面

为了生成一个servlet对应的网页.我们需要新建一个web.xml,其中将会放置servlet的相关信息.web.xml文件放置在WebContent/WEB-INF/目录下.(我们在Eclipe中新建一个Dynamic Web Project的时候一直点"next"的话会有提示"Generate web.xml deployment descriptor",勾选该选项会默认生成一个web.xml文件).我们需要配置两对映射关系,一对是servlet名和他对应的s

Java Web项目--使用JSP生成一个页面

我们使用了servlet生成了一个网页,但是可以看到使用servlet生成网页必须将网页的内容全部嵌入到Java代码当中,不是很方便.所以有没有什么办法是将Java代码嵌入到html代码中,而不是像servlet这样将html代码嵌入到Java代码中的呢.答案是使用JSP.JSP是使用类似"<% %>"括起来的一段嵌入到html中的Java代码.我们下面将展示使用一个jsp页面显示一个网页的效果.JSP页面的开头需要加上一行"<%@ page content

解决maven web项目Cannot detect Web Project version. Please specify version of Web Project through...的错误

前面已经聊了创建maven web工程,但是问题来了,创建maven web工程之后会出现如下的错误,在pom.xml文件头部 有以下的错误 [plain] view plain copy print? Cannot detect Web Project version. Please specify version of Web Project through <version> configuration property of war plugin. E.g.: <plugin&g

用eclipse创建动态web项目手动生成web.xml方法

在你创建的项目上单击右键,然后单击java EE Tools下的用红线圈住的地方,然后查看你的WEB-INF文件夹,就会发现web.xml文件就创建好了.这样总比你重新创建项目,把之前做过的东西推翻重来简单的多吧. 原文地址:https://www.cnblogs.com/sbclmy/p/8947422.html