1. 静态资源压缩
GZIP是站点压缩加速的一种技术,对于开启后能够加快我们站点的打开速度。原理是经过server压缩,client浏览器高速解压的原理,能够大大降低了站点的流量。

详细代码能够參加jeecg高速开发平台的实现;

通过资源压缩拦截器,降低带宽訪问

參考代码:

/**
* JS缓存压缩
* JEECG开源社区
* 论坛:www.jeecg.org
* @author 张代浩
*/
public class GZipFilter implements Filter { public void destroy() {
}
/**
* 推断浏览器是否支持GZIP
* @param request
* @return
*/
private static boolean isGZipEncoding(HttpServletRequest request){
boolean flag=false;
String encoding=request.getHeader("Accept-Encoding");
//update-begin--Author:JueYue Date:20140518 for:IE下Excel上传encode为空的bug--------------------
if(encoding!=null&&encoding.indexOf("gzip")!=-1){
flag=true;
}
//update-end--Author:JueYue Date:20140518 for:IE下Excel上传encode为空的bug--------------------
return flag;
} public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse) response;
HttpServletRequest req=(HttpServletRequest)request;
if(isGZipEncoding(req)){
Wrapper wrapper = new Wrapper(resp);
chain.doFilter(request, wrapper);
byte[] gzipData = gzip(wrapper.getResponseData());
resp.addHeader("Content-Encoding", "gzip");
resp.setContentLength(gzipData.length);
//静态资源文件缓存机制
//CacheResource(request, response, chain);
ServletOutputStream output = response.getOutputStream();
output.write(gzipData);
output.flush();
} else {
chain.doFilter(request, response);
} } public void init(FilterConfig filterConfig) throws ServletException {} /**
* 提高系统訪问性能,主键缓存
*/
public void CacheResource(ServletRequest request, ServletResponse response,
FilterChain chain){
//1.强转httpservlet,方便调用方法
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
//2.获取资源文件名称的URI
String uri = req.getRequestURI();
//3.获得文件扩展名,lastIndexOf(".")+1 获得.最后一次出现的索引的后一位:jpg
uri = uri.substring(uri.lastIndexOf(".")+1);
System.out.println( uri );//測试获取后缀是否正确
//4断对应后缀文件,设定缓存时间
long date = 0;
//System.out.println( new Date().getTime());//測试当前时间用 //推断URI获取的后缀名是否与JPG相等,不考虑大写和小写
if(uri.equalsIgnoreCase("jpg")){
//读取XML里的JPG配置的參数,这里设定了时间
//获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出。由于单位是毫秒
date = System.currentTimeMillis()+5*60*60*1000;
} if(uri.equalsIgnoreCase("gif")){
//读取XML里的JPG配置的參数,这里设定了时间
//获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出,由于单位是毫秒
date = System.currentTimeMillis()+5*60*60*1000;
} if(uri.equalsIgnoreCase("css")){
//读取XML里的JPG配置的參数。这里设定了时间
//获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出。由于单位是毫秒
date = System.currentTimeMillis()+5*60*60*1000;
} if(uri.equalsIgnoreCase("js")){
//读取XML里的JPG配置的參数,这里设定了时间
//获取当前系统时间 + 须要缓存的时间(小时),Long 防止溢出。由于单位是毫秒
date = System.currentTimeMillis()+5*60*60*1000;
}
//设置缓存时间
res.setDateHeader("Expires", date);
} private byte[] gzip(byte[] data) {
ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(10240);
GZIPOutputStream output = null;
try {
output = new GZIPOutputStream(byteOutput);
output.write(data);
} catch (IOException e) {
} finally {
try {
output.close();
} catch (IOException e) {
}
}
return byteOutput.toByteArray();
} }

2. 静态资源缓存
3. easyui 页面优化
  http://www.easyui.info/archives/1435.html
   http://www.360doc.com/content/14/0209/08/9200790_350899585.shtml

Easyui 页面訪问慢解决方式,GZIP站点压缩加速优化的更多相关文章

  1. 把war包放到Tomcat安装文件夹下,不能直接訪问的解决方式

    临床表现: Tomcat启动后首页能訪问(http://localhost:8080/). 将自己写的一个webprojectwar包放到Tomcat安装文件夹下的/webapps以下(比方hello ...

  2. ruby on rails创建的页面訪问很慢

    ruby on rails创建的页面訪问很慢 用rvm安装的ruby1.9.3 解决:cd ~/.rvm/rubies/ruby-1.9.3-p547/lib/ruby/1.9.1/webrick v ...

  3. html5的postmessage实现js前端跨域訪问及调用解决方式

    关于跨域訪问.使用JSONP的方法.我前面已经demo过了.详细见http://supercharles888.blog.51cto.com/609344/856886,HTML5提供了一个很强大的A ...

  4. 利用JS跨域做一个简单的页面訪问统计系统

    事实上在大部分互联网web产品中,我们一般会用百度统计或者谷歌统计分析系统,通过在程序中引入特定的JS脚本,然后便能够在这些统计系统中看到自己站点页面详细的訪问情况.可是有些时候,因为一些特殊情况,我 ...

  5. java 页面传输中文乱码解决方式

    post 中文乱码解决方案 接受数据的时候设置 request.setCharacterEncoding("utf-8");//编码必须和页面编码一致 页面设置 <%@pag ...

  6. 配置NGINX支持中文URL 中文文件名称或文件夹404无法訪问的解决方法

    NGINX不须要象apache那样要单独载入支持中文模块. # cat /etc/sysconfig/i18n  LANG="en_US.UTF-8" SYSFONT=" ...

  7. javascript跨域訪问探索之旅

    需求:         近期工作负责一个互联网应用A(我公司应用)与还有一个互联网应用B进行通讯.通讯的方式是这种:还有一个互联网应用某些表单信息须要从我公司的互联网应用获取.首先用户訪问互联网应用B ...

  8. web集群中经常使用的session同步解决方式及对照

    随着站点的功能越来越多,用户量越来越庞大,单节点模式已经严重不能支撑整个系统的正常运作,轻则用户页面訪问时间越来越慢.重则就会导致整个系统瘫痪.这时候 就须要优化或调整眼下的架构,大部分人就会採用各种 ...

  9. JBOSS部署项目之后,无法通过IP地址訪问,仅仅能通过localhost或者127.0.0.1訪问

    这几天入职到了一家新的公司,然后第一天就開始搭建各种环境.由于原先一直用的是Tomcat容器,然后也是第一次接触JBOSS容器,搭建完之后,在MyEclipse中启动了JBOSS容器,然后想在浏览器中 ...

随机推荐

  1. 6.11 将分割数据转换为多值IN列表

    问题 已经有了分隔数据,想要将其转换为WHERE子句IN列表中的项目.考虑下面的字符串: 7654,7698,7782,7788 要将该字符串用在WHERE子句中,但是下面的SQL语句是错误的,因为E ...

  2. BZOJ1996: [Hnoi2010]chorus 合唱队 (DP)

    就是想水一发 #include <stdio.h> #include <algorithm> #include <iostream> using namespace ...

  3. ZOJ - 3992 - One-Dimensional Maze (思维)

    题意: 一条长度为n的直线,你一开始在位置m上 其中每个整点都有一个字符'L'或'R',如果是'L'那么你必须往左走一步,否则往右走一步 如果你到达位置1或位置n你任务就完成了 不过有可能你永远到不了 ...

  4. [Algorithm] 11. Linked List Cycle

    Description Given a linked list, determine if it has a cycle in it. To represent a cycle in the give ...

  5. Linux下常用的操作

    Linux下常用的操作 文件定位 locate filename 有些版本的linux会出现 -bash: locate: command not found错误,不要慌,安装一下mlocate包就好 ...

  6. LearnPython笔记:ex48 代码

    赶紧写上 ,一定有人着急要看,啊哈哈哈哈,嘻嘻 哈哈 不枉我起了个大早 利用什么碎片时间啊,真正能深入学习的,是需要大段大段不被打断的时间 1. 完全实现了如下几种输入数据: 2. 遗留:最后一个el ...

  7. hadoop 3.0.0新特性

    1.Minimum required Java version increased from Java 7 to Java 8 java最低支持版本变成java8 2.Support for eras ...

  8. 【Codeforces 493D】Vasya and Chess

    [链接] 我是链接,点我呀:) [题意] [题解] 会发现两个皇后之间如果只有奇数个位置 也就是n%2==1 那么第二个人总是赢的 因为如果white往下跑的话,black也能往下跑. 第二个人没有输 ...

  9. mySQL and sqoop for ubuntu

    数据的导入导出 ——MySQL & sqoop in Ubuntu 1.完成搭建hadoop集群 2.安装MySQL sudo apt-get install mysql-server mys ...

  10. Swift 对象创建(PUT Object)过程详解——基于副本策略(一)

    swift中创建对象,即PUT object,根据选定的存储策略将对象内容写入至相应的服务器(object server).我们重点关注object controller和object servers ...