日期:2014-05-16  浏览次数:20319 次

jsp文件使用include包含之后编译的java文件出现空行问题

JSP编译后生成的java文件中含有大量空白行,这些空白会降低对搜索引擎的友好度和 HTML的可读性。

造成此现象的大概是页面使用 UTF-8编码格式,jsp文件在编译的时候生成这种形式的换行符。

解决方法:

一、使用 EmEditor 工具

  将已经编辑好的UTF-8文件选择另存为,覆盖原来的文件,在保存时“添加 Unicode 签名(BOM)(G)” 的选项是可选的,将前面的勾去掉,保存。 

工具下载页面:http://u.115.com/file/bh5e2iwn

二、在tomcat 6.0 的conf 文件夹中的 web.xml 文件中加入以下注释之间的代码

  <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <!--要添加的代码,tomcat 5.5的-->
        <init-param>
          <param-name>trimSpaces</param-name>
          <param-value>true</param-value>
        </init-param> 
         <!--end-->
        <load-on-startup>3</load-on-startup>
    </servlet>

提醒:需要将tomcat目录中的 work\Catalina\localhost 下编译的文件删除掉

其他tomcat版本(未测试过):

1. 支持JSP 2.1+ ,在每个要去空行的页面里包含下面代码:

<%@ page trimDirectiveWhitespaces="true" %>
在 Tomcat 6.0.14下测试JSP编译成功

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>