是否有JSP minifier这样的东西? (或开源HTML缩小器)

时间:2011-03-30 15:37:38

标签: html jsp minify

这是一个HTML缩小器,可以跳过<%%>之间的所有内容。

实际上,开源HTML缩小器将是一个很好的起点,特别是如果它已经有代码来保存像<textarea这样的某些块的内容。它的代码可能也可以保留<%%>块。

我知道HTML minifiers不太常见,因为它比JS / CSS更频繁地更改并且通常是动态生成的,但是如果在编译缓存副本之前可以使JSP编译器缩小,则会导致缩小的HTML

此外,ASP minifier可能非常接近同样的事情。而且我不关心对服务器有意义的自定义标签。对服务器(对我公司而言)重要的唯一事情是<%%>块。

4 个答案:

答案 0 :(得分:10)

这个问题有点过时,但资源的回复仍然没有成为发布的方式。

HtmlCompressor使这件事成为可能而且非常简单。

您可以通过Java API使用它:

String html = getHtml(); //your external method to get html from memory, file, url etc.
HtmlCompressor compressor = new HtmlCompressor();
String compressedHtml = compressor.compress(html);

或者您可以通过Taglib使用它:

Download .jar file of the current release and put it into your lib/ directory
Add the following taglib directive to your JSP pages:

<%@ taglib uri="http://htmlcompressor.googlecode.com/taglib/compressor" prefix="compress" %>

Please note that JSP 2.0 or above is required.

在JSP中:

<compress:html removeIntertagSpaces="true">
    <!DOCTYPE html>
    ...
    </html>
</compress:html>

干杯

答案 1 :(得分:3)

JSP将转换转换为Java代码并随后编译为字节码。因此,缩小JSP没有任何意义。

您可以通过编写自定义过滤器来处理JSP页面生成的输出。我编写过滤器来修剪JSP输出中的空行和不必要的空格,遗憾的是它不公开。但如果你四处搜索,我相信你可以找到servlet过滤器来从生成的HTML中删除不需要的东西。

答案 2 :(得分:1)

查看Trim Filter(http://www.servletsuite.com/servlets/trimflt.htm),您只需在web.xml中映射即可。 它将帮助您删除空格,也可以删除注释。

根据我的经验,如果你使用自己没有任何输出的标签,例如JSTL C控制标签(c:if,c:choose,...),那么在JSP中会出现很多空白,然后这个非常方便。

答案 3 :(得分:0)

正如您已经意识到HTML缩小不太常见,并且有时会导致错误,而不是从中获得任何好处。 HTML也是动态生成的内容。

另一方面,有许多更好的方法可以加速应用程序前端。

WebUtilities 是一个小型的java库,可以帮助加速J2EE webapp前端。以下是链接。

  

http://code.google.com/p/webutilities/

使用新的0.0.4版本,它可以进行许多优化,从而显着提升性能。如果您觉得有用,请查看。