jsp中会经常使用到使用jsp标签和jstl的标签,比如<%@ page ..%>, <%@ taglib ...%>, <c:forEach....%>, 尤其是循环标签,在jsp最终输出的html中会产生大量的空行,使得性能降低。有以下几种解决方案:
1. 针对单个页面,支持JSP 2.1+ ,在每个要去空行的页面里包含下面代码:
<
%@ page
trimDirectiveWhitespaces
=
"true"
%
>
2. 支持servlet 2.5+, 即 web.xml的 XSD版本为2.5,在web.xml中加入如下代码
<jsp-config>
<jsp-property-group>
<url-pattern>
*.jsp
</url-pattern>
<trim-directive-whitespaces>
true
</trim-directive-whitespaces>
</jsp-property-group>
</jsp-config>
3. Tomcat 5.5.x+,
在Tomcat安装目录/conf/web.xml中找到名叫"jsp"的servlet,添加下面一段代码:
<init-param>
<param-name> trimSpaces </param-name>
<param-value> true </param-value>
</init-param>
<param-name> trimSpaces </param-name>
<param-value> true </param-value>
</init-param>
在实际操作中我加入了tomcat的配置到页面中并反复启动了几次tomcat但是还是没有成功,
后来才想到JSP已经编译成servlet了所以没有能改变,进入到tomcat中的work目录把已经进行JSP编译的class全部删除,然后看下页面源码已成功删除空行