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)


相关推荐

  • Jps命令—使用详解[通俗易懂]

    Jps命令—使用详解[通俗易懂]原文:https://blog.csdn.net/wisgood/article/details/38942449 jps是jdk提供的一个查看当前java进程的小工具,可以看做是JavaVirtualMachineProcessStatusTool的缩写。非常简单实用。    命令格式:jps[options][hostid]     [options…

  • 今天发现一个好用的查询IP地址的工具,记录一波「建议收藏」

    今天发现一个好用的查询IP地址的工具,记录一波

  • android4.4.3_安卓内核版本升级

    android4.4.3_安卓内核版本升级Android4.4源码下载(linux合并)==============================分割线结束=========================旧版本的可以使用115,不想再去115搬运了4g多不是很想上传邮箱吱吱的响受不了,上传下吧,要学会摆脱windows不会linux玩android也没少哈意思,不是?下载所有的droiSplit包split分割的,。wi…

  • Xray基础使用介绍

    Xray基础使用介绍官方使用文档:https://docs.xray.cool/#xray简介xray是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有:检测速度快。发包速度快;漏洞检测算法高效。支持范围广。大至OWASPTop10通用漏洞检测,小至各种CMS框架POC,均可以支持。代码质量高。编写代码的人员素质高,通过CodeReview、单元测试、集成测试等多层验证来提高代码可靠性。高级可定制。通过配置文件暴露了引擎的各种参数,通过修改配置文件可以极大的客

  • C 语言漏洞最严重,PHP 最易受攻击,程序员该怎么写代码?「建议收藏」

    C 语言漏洞最严重,PHP 最易受攻击,程序员该怎么写代码?

  • 卡尔曼滤波系列——(一)标准卡尔曼滤波[通俗易懂]

    卡尔曼滤波系列——(一)标准卡尔曼滤波[通俗易懂]卡尔曼滤波(KalmanFilter)是一种利用线性系统状态方程,利用对系统的观测数据,对系统状态进行最优估计的算法。由于观测数据受到系统中的噪声和干扰的影响,所以系统状态的估计过程也可看作是滤波过程。应用场景之一有利用传感器跟踪感兴趣目标的位置,传感器获取的目标距离、速度、方位角等观测值往往含有噪声。卡尔曼滤波利用目标的动态信息与观测结果相结合,抑制噪声的影响,从而获得一个关于目标位置更准确的估计,这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计(

发表回复

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

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