去除JSP留下的空白行

JSP生成的html里面会留下许多空白行(以及space, tab, etc.),那是动态语句留下的痕迹。当初留下这些空白行自然有他的理由 - 方便调试,这样行号才能对的上。但是对于处于production环境中的页面,这么多空白行有时候会是个灾难,常见原因有二: a. 大大增加了页面体积; b. 不利于SEO.

众所周知,tomcat 5.x以后新加入了一个参数来解决这个问题,那就是
<init-param>
<param-name>trimSpaces</param-name>
<param-value>true</param-value>
</init-param>

在web.xml里面给jsp servlet添加这个参数就OK。

但是这样做有一个问题: 本来有用的space也会被trim掉。比如

<c:out value="${name}"/> <c:out value="${birth}"/>

之间的空格,在这个开关打开以后就没了,于是乎网页就显示成Jan2007-1-1,而不是Jan 2007-1-1,这样可不好。

更好的方案是,利用Ant的replaceregexp task,把你不想要的东西替换掉,包括空行和空白。以下ant代码是我在工程中用到的,供参考:

<!-- strip blank lines before webpage -->
<replaceregexp match="\r\n" replace=""
    flags="g" byline="false"
    file="${war.dir}/site/common/setvar.jsp" />
       
<replaceregexp match="\r\n" replace=""
    flags="g" byline="false">
    <fileset dir="${war.dir}/site/layouts/" includes="**/*.jsp" />
</replaceregexp>

由于这个步骤只是在最后把发布的网页修改了,不会影响原文件的可读性。...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值