JSP/HTML页面 (公共JS、CSS、Image缓存)-----静态缓存
2016-11-25 10:42
537 查看
【1】服务端配置一个Filter,实现对js、css和image的缓存
web.xml配置
如何让页面公共资源在用户第一次加载后,就不需要服务器二次加载?
实现方式是对应公用的JS都放到一个页面中,别的页面包含他,在这个页面中增加页面缓存(特定静态资源)
页面应用:
google 浏览器分析:
package com.cache.model.filter; import java.io.IOException; import java.util.Enumeration; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse; public class CacheFilter implements Filter { private FilterConfig fc; @Override public void destroy() { // TODO Auto-generated method stub this.fc = null; } @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletResponse response = (HttpServletResponse) res; for (Enumeration e = fc.getInitParameterNames(); e.hasMoreElements();) { String headerName = (String) e.nextElement(); response.addHeader(headerName, fc.getInitParameter(headerName)); } chain.doFilter(req, response); } @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub this.fc = filterConfig; } }
web.xml配置
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter> <filter-name>CacheFilter</filter-name> <filter-class>com.cache.model.filter.CacheFilter</filter-class> <init-param> <param-name>Cache-Control</param-name> <param-value>max-age=604800, public</param-value> </init-param> </filter> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>/js/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>/images/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>CacheFilter</filter-name> <url-pattern>/css/*</url-pattern> </filter-mapping> </web-app>完成这一步,在服务端已经实现了对页面公共资源的缓存,但是当前情况下页面还是会每次访问服务器的,只是压力减小了。
如何让页面公共资源在用户第一次加载后,就不需要服务器二次加载?
实现方式是对应公用的JS都放到一个页面中,别的页面包含他,在这个页面中增加页面缓存(特定静态资源)
<%@ page language="java" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <meta charset="utf-8" /> <meta http-equiv="cache-control" content="max-age=604800, public"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!--IE10--> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" /> <!--<meta name=”renderer” content=”webkit|ie-comp|ie-stand”>--> <meta name=”renderer” content=”webkit|ie-comp|ie-stand” /> <!-- CSS styles --> <link rel="stylesheet" type="text/css" href="<%=basePath%>commons/css/bootstrap.min.css" /> <script src="<%=basePath%>commons/js/jquery-1.4.2.min.js" charset="utf-8"></script>
页面应用:
<%@ page language="java" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <jsp:include page="index.jsp" flush="true"/><!--动态包含--> <title>页面缓存</title> </head> <body> </body> </html>
google 浏览器分析:
相关文章推荐
- html,css,js防止浏览器缓存,导致不加载新页面。
- HTML页面后台取静态资源(CSS,JS文件)的路劲问题!
- html 页面视图中的资源文件(css/js/image)的路径问题。
- 控制静态资源(html,css,js)的缓存时间的过滤器
- 控制html、css、js等静态资源的缓存时间的过滤器
- 静态页面html防止js加载缓存
- 缓存页面中的不变元素(CSS/JS/IMAGE)
- iOS UIWebView加载本地HTML页面规避js、css的缓存
- 如何给静态html 引用的js或者css路径后面加上时间戳,去除调试的客户端缓存。
- 静态HTML页面不缓存js文件的方法
- HTML页面自动清理js、css文件的缓存(自动添加版本号)
- 页面的缓存与不缓存-html,css,js
- css是什么?css是和js一样的作用于最终html页面的技术
- html+css+angularjs 实现商品库存信息管理页面 可删除/批量删除/可模糊查询/可升序降序
- 禁止静态文件缓存的方法,可用于JS与CSS文件上
- iOS之在webView中引入本地html,image,js,css文件的方法
- html 页面中JS与CSS,图片的加载顺序
- 使Eclipse下支持编写HTML/JS/CSS/JSP页面的自动提示。
- Java实现缓存页面中不变的元素,JS,CSS,图片等
- jsoup 获得html页面所有的连接和图片,js,css等