JSP輸出HTML時產生的大量空格和換行的去除方法

2021-07-12 02:46:58 字數 1841 閱讀 4965

在web應用中,如果使用jsp作為view層的顯示模板,都會被空格/空換行問題所困擾.

方案一,利用web伺服器的trimspaces功能。

tomcat5 以上版本都可以使用,這是最簡單的方法

[html]view plain

copy

<

servlet

>

<

servlet-name

>

jspservlet-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

>

trimspaces 

param-name

>

<

param-value

>

true 

param-value

>

init-param

>

<

init-param

>

<

param-name

>

xpoweredby

param-name

>

<

param-value

>

false

param-value

>

init-param

>

<

load-on-startup

>

3load-on-startup

>

servlet

>

這個方案有個缺點,它會去掉所有jsp el標籤之間的空格的換行符,在部分情況下也來帶來不便。 

如:your name is $ $. ==輸出為==> your name is firstnamelastname. 

兩個${}變數之間的空格也會消失。

方案二:在支援jsp 2.1的web伺服器上才可以使用,如tomcat6

jsp2.1多了乙個很有用的命令; 

<%@ page trimdirectivewhitespaces="true" %>

這 個命令可以使jsp輸出的html時去除多餘的空行(jsp上使用el和tag會產生大量的空格和空行),沒有使用trimspaces的問題,現在jsp輸出html也可以很好地排版,看上去也專業;

另外提一下,tomcat6有一些相容性問題,例如不能使用#{}這種**在jsp中,因為會被當成jsf指令碼執行。

方案三:在web.xml中配置

jsp中會經常使用到使用jsp標籤和jstl的標籤,比如<%@ page ..%>, <%@ taglib ...%>, , 尤其是迴圈標籤,在jsp最終輸出的html中會產生大量的空行,使得效能降低。最方便的解決方法是在web.xml 中新增以下設定。 

*.jsp 

true  

去除JSP生成HTML時的空白行

使用了jsp的開發者都知道,jsp編譯後生成的html中含有大量空白行,這些空白一般情況並不礙事,頂多降低對搜尋引擎的友好度和html的可讀性。但是使用jsp生成xml檔案時,如果 這個問題困擾了我很久,加上我使用了大量的taglib,如jstl標籤。致使我的html頁面一大塊一大塊禿禿的 白荒地 ...

使用axis2時在temp檔案產生大量快取

解決在使用axis2時,每一次請求產生axis2jar臨時檔案,導致占用大量磁碟空間問題。在spring配置檔案中採用構造注入 id axisconfigcontext class org.apache.axis2.context.configurationcontextfactory factor...

產生oracle大量資料的sql語句

建立1100000行測試資料的的測試表 create table testtable12 as select rownum as id,to char sysdate rownum 24 3600,yyyy mm dd hh24 mi ss as inc datetime,trunc dbms ra...