wro4j是一个Web资源优化工具。众所周知,到服务器加载一个大的文件比加载两个小的文件快,因为会增加HTTP交互的次数并且大部分浏览器在任何时候对于同一个服务器,只保持两个连接。开发wro4j项目的目的是减少加载一个页面的请求次数和传输的数据量.

WRO4j最大限度地减少和压缩CSS和JavaScript等web资源,WRO4j可以在编译时配置一个非常有用的API - 与适当的maven插件一起运行时。
有两种办法使用,一个在运行时混合,一个是使用Maven编译时混合。

运行时混合:
第一步在web.xml加入wrofilter:

<filter><filter-name>WebResourceOptimizer</filter-name><filter-class>ro.isdc.wro.http.WroFilter</filter-class></filter><filter-mapping><filter-name>WebResourceOptimizer</filter-name><url-pattern>/wro/*</url-pattern></filter-mapping>

第二步在WEB-INF 目录下配置一个wro.xml文件,如下:

  <groups xmlns="http://www.isdc.ro/wro"><group name="all"><css>/asset/*.css</css><js>/asset/*.js</js></group></groups>      

在页面使用:
<link rel="stylesheet" type="text/css" href="/wro/all.css" />

这种方式会耗费一些服务器CPU。

编译时混合,使用Maven,需要多Maven熟悉:
wro.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<groups xmlns="http://www.isdc.ro/wro"><group name="javaonly-base-scripts"><js minimize="false">/scripts/jquery-1.6.1.min.js</js><js minimize="false">/scripts/jqXMLUtils.pack.js</js><js minimize="false">/scripts/cufon/cufon-yui.js</js><js minimize="false">/scripts/cufon/font.js</js><js minimize="false">/scripts/cufon/replace.js</js></group><group name="javaonly-scripts"><js>/scripts/scriptFile1.js</js><js>/scripts/scriptFile2.js</js>  </group><group name="javaonly-debugging"><js minimize="false">/scripts/scriptDebug1.js</js><js minimize="false">/scripts/scriptDebug1.js</js></group><group name="javaonly-styles"><css>/styles/screen/base.css</css><css>/styles/screen/layout.css</css><css>/styles/screen/content.css</css><css>/styles/screen/menu.css</css><css>/styles/screen/footer.css</css><css>/styles/screen/login.css</css><css>/styles/screen/tooltip.css</css> <css>/styles/screen/homepage.css</css></group>
</groups>
</pre>

然后在pom.xml中增加wro4j插件:“

<plugin><groupId>ro.isdc.wro4j</groupId>
<artifactId>wro4j-maven-plugin</artifactId>
<version>${wro4j.version}</version>
<executions><execution>
<id>optimize-web-resources</id><phase>compile</phase><goals><goal>run</goal></goals></execution></executions><configuration><ignoreMissingResources>false</ignoreMissingResources>
<jsDestinationFolder>
${project.build.directory}/${project.build.finalName}/scripts/wro/</jsDestinationFolder>
<cssDestinationFolder>
${project.build.directory}/${project.build.finalName}/styles/wro/</cssDestinationFolder><wroManagerFactory>
ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory></configuration>
/plugin>

最后我们在页面可以得到最小化的资源,如:

<link rel="stylesheet" type="text/css" href="/wro/javaonly-styles.css" />

wro4j:Java Web资源压缩相关推荐

  1. java web资源目录下_Java Web项目中的各种资源的路径写法

    如图,在项目中要跳转到如下的路径中(在项目下的target.html): public class PathDemo extends HttpServlet { public void doGet(H ...

  2. java Web程序使用wro4j合并、压缩js、css等静态资源

    在Web项目中,js.css合并压缩,不仅有利于减少Http请求数量.减少宽带资源占用,还能有效的管理各种js.css的引入,使整个项目更加有序.而对于访问用户来说,其更大的好处是增加了页面的打开速度 ...

  3. 前端资源压缩合并maven插件之wro4j

    前端资源压缩合并maven插件之wro4j 原文写于 2014-05-14 https://github.com/kuitos/kuitos.github.io/issues/5 参考文章:前端性能优 ...

  4. java web压缩过滤器_Java Web过滤器Filter(五)

    Filter概述 Filter意为滤镜或者过滤器,用于在Servlet之外对request或者response进行修改.Filter提出滤镜链的概念,一个FilterChain包括多外Filter.客 ...

  5. Java中用ClassLoader载入各种资源(类、文件、web资源)的方法

    ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象. ClassLoader负责载入 ...

  6. ASP.NET Core Web 资源打包与压缩

    本文将介绍使用的打包和压缩的优点,以及如何在ASP.NET Core应用程序中使用这些功能. 概述 在ASP.Net中可以使用打包与压缩这两种技术来提高Web应用程序页面加载的性能.通过减少从服务器请 ...

  7. IntelliJ IDEA 中的Java Web项目的资源文件复制新增如何更新到部署包中?

    文章目录 resources目录下的文件复制新增 webapp目录的文件复制新增 IntelliJ IDEA 中的Java Web项目的资源文件如果复制新增,正常的重新部署.重启服务器.update ...

  8. Java Web应用实现GZIP压缩传输

    本篇介绍Java Web 应用如何配置GZIP压缩以提高js , css 等文件的传送速度, 加快网页的展现速度. 实现方式选择 直接压缩文件, 比如将js文件通过gzip 工具压缩成 .gzjs 的 ...

  9. java web 加载类_Java中用ClassLoader载入各种资源(类、文件、web资源)的方法

    lassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象. ClassLoader负责载入系 ...

最新文章

  1. 美团即时物流的分布式系统架构设计
  2. 高德纳咨询公司(Gartner)预测:2019年七大人工智能科技趋势
  3. 利剑无意之JAVA面试题(二)
  4. jquery mobile页面切换效果(Flip toggle switch)(注:jQuery移动使用的数据属性的列表。 )...
  5. python post有随机字符串_Python 中的POST/GET包构建以及随机字符串的生成
  6. qpython能使用json吗l_[python] 详解Python在使用JSON时需要注意的编码问题
  7. nginx post请求超时_nginx的重试机制以及nginx常用的超时配置说明
  8. 参加2015年TOP100会议的零散笔记
  9. Python-变分模态分解(VMD)python代码及其测试用例
  10. 串口硬盘如何应用于并口硬盘计算机,串口并口硬盘连接具体步骤(转)
  11. Flash builder 4.6下载以及安装
  12. 计算机辅助初中英语教学,利用多媒体优化初中英语课堂教学课题研究
  13. 解析阿里“聚石塔”产品
  14. JavaWeb 狂神
  15. 随心所欲的“四舍五入” 之 ROUNDUP函数如何使用?
  16. 20130114 1080p vs. 1080i
  17. ABP官方文档(四十四)【后台作业和后台工人】
  18. 第6章 PPT页面排版与高级设计技术
  19. oracle ORA-22992问题
  20. 高性能 MySQL实战

热门文章

  1. com.google.zxing 二维码工具类
  2. shell脚本控制jar包启停
  3. Windows10 WSL2 安装 Ubuntu20.04LTS
  4. Android四大组件完全解析(一)---Activity
  5. 智和信通,部署智慧交通运维系统,构建一站式运维监控平台
  6. JavaFX图片浏览并实现缩放
  7. 随机过程 Brown 运动(上)
  8. Qbao Network 1024周年庆, 邀请Q 宝宝和金主爸爸来抱锦鲤啦!
  9. 功能软件(一):以IDM对抗百度网盘!
  10. 如何让自己时刻冷静的方法_情绪激动时如何冷静下来?教你4招很管用