yuicompressor java_使用YUICompressor自动压缩JavaWeb项目中的JS与CSS文件

yuicompressor java_使用YUICompressor自动压缩JavaWeb项目中的JS与CSS文件使用YUICompressor自动压缩JavaWeb项目中的JS与CSS文件###引入Maven依赖“`htmlcom.yahoo.platform.yuiyuicompressor2.4.8“`Java代码“`javapackagecom.itshidu.jeelite.common.web;importcom.itshidu.jeelite.common.util.Compres…

大家好,又见面了,我是你们的朋友全栈君。

使用YUICompressor自动压缩JavaWeb项目中的JS与CSS文件

### 引入Maven依赖

“`html

com.yahoo.platform.yui

yuicompressor

2.4.8

“`

Java 代码

“`java

package com.itshidu.jeelite.common.web;

import com.itshidu.jeelite.common.util.CompressorUtil;

import javax.servlet.*;

import javax.servlet.annotation.WebFilter;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.File;

import java.io.IOException;

import java.util.concurrent.ConcurrentHashMap;

/**

* 自动压缩JS与CSS

* 当访问指定的目录时,会自动压缩并重定向,我们正常开发访问即可

*/

@WebFilter(urlPatterns={“/res/*”})

public class YUICompressorFilter implements Filter{

//URL对应的文件最后修改时间是什么

private static ConcurrentHashMap LastModify = new ConcurrentHashMap();

/* —- Filter —- */

@Override

public void destroy() { }

@Override

public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain chain)

throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) arg0;

HttpServletResponse response = (HttpServletResponse) arg1;

ServletContext application = request.getServletContext();

//String basepath=request.getScheme()+”://”+request.getServerName()+”:”+request.getServerPort()+request.getContextPath()+”/”;

String distpath = “/WEB-INF/yuimin”;

String distDirAbs = application.getRealPath(distpath); //发布的真实文件路径

String path = request.getServletPath(); //访问的URL:/res/xx/xxxx.js

String srcabs = application.getRealPath(path);

File srcfile = new File(srcabs); //访问的源文件

File distfile = new File(distDirAbs,path); //最终发布在项目中的压缩文件

if(!path.endsWith(“.js”)&&!path.endsWith(“.css”)){

chain.doFilter(request,response);return;

}

if(!distfile.getParentFile().exists()){

distfile.getParentFile().mkdirs();

}

if(!srcfile.exists()){ //源文件不存在

chain.doFilter(request,response);return;

}

if(LastModify.get(path)==null#124;#124;srcfile.lastModified()!=LastModify.get(path)){ //如果源文件被修改

CompressorUtil.compress(srcfile,distfile);

LastModify.put(path,srcfile.lastModified());

System.out.println(“压缩:”+path);

}

request.getRequestDispatcher(distpath+path).forward(request,response);

}

@Override

public void init(FilterConfig arg0) throws ServletException { }

}

“`

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/161216.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python打造最强告白代码,世界这么大,你的那个他总会遇见的(源码可直接运行)[通俗易懂]

    Python打造最强告白代码,世界这么大,你的那个他总会遇见的(源码可直接运行)[通俗易懂]能和喜欢的人在一起是一件多么美好幸福的事,可现实却并非如此,喜欢的我不敢表白,我们往往都感觉喜欢的那个人特别的优秀,也就是情人眼里出西施,即使互相都喜欢了,又有些人因羞于表达,或怕被拒绝而错过了对方,爱情就是这般捉弄人。有一首歌写得好,爱需要勇气,确实如此,希望看到这的你,能勇敢迈出第一步,勇敢追求自己的幸福,收获美好的爱情。文章末尾有惊喜。1.遇见你我很幸运❤❤要是有机会的话,我想和你一起喝奶茶,一起看电影一起吹晚风回家,一起走剩下的路,我的意思是:和你。完整源码:代码里面可以

  • java ee简介_Java EE 简介

    java ee简介_Java EE 简介JavaEE简介JavaEE基本架构JavaEE的诞生是为了解决传统C/S架构的弊端:客户端臃肿庞大,扩展性差等弊端。JavaEE将传统的两层结构细分为了四层。这四层分别是:Client层,Web层,Business层,EIS层JavaEE客户端JavaEE客户端层可分为以下几种:Web客户端,通常是浏览器呈现的网页,这种客户端成为轻量级客户端,因为他们不与…

  • @NotEmpty、@NotBlank、@NotNull三种注解的区别

    @NotEmpty、@NotBlank、@NotNull三种注解的区别@NotEmpty用在集合类上面加了@NotEmpty的String类、Collection、Map、数组,是不能为null或者长度为0的(StringCollectionMap的isEmpty()方法)@NotBlank只用于String,不能为null且trim()之后size>0@NotNull:不能为null,但可以为empty,没有Size的约束…

  • hive sql和mysql区别_mysql改表名语句

    hive sql和mysql区别_mysql改表名语句mssql的正式名字是SQLServerMS公司出的。图形操作界面好一些,性能还可以。在在mssql和oracle上不能互换.支持OLEDB连接.asp、mssaql只能forwindow mysql就是mysql下面是readme:免费软件。性能也可以。速度快,用于小规模.命令行界面.(可以装图形操作软件.) sqlserver我以前是做ASP的时候用的 现在学PHP

  • IIS下图片文件防盗链的办法「建议收藏」

    IIS下图片文件防盗链的办法「建议收藏」IIS不支持UrlRewrite。  所以我们需要通过安装第三方服务器扩展让IIS支持UrlRewrite。  目前有一种产品能比较好地支持IIS的UrlRewrite,名字叫ISAPI_Rewrite。  下载地址在:[url]http://www.helicontech.com/download/[/url]具体的设置方法:修改http.ini文件…

  • 下拉框、下拉控件之Select2

    下拉框、下拉控件之Select2

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号