JSP輸出HTML時產生的大量空格和換行的移除方法
這個問題當年也困擾了我比較長的時間.因為在jsp內使用的EL標籤和其他標籤時,會產生大量的空格和換行符.例如:
------- start ---------- <c:choose> <c:when test="${fn:length(mainPageList)>1&}"> Something </c:when> <c:otherwise> Others </c:otherwise> </c:choose> ------- end -----------
這段代碼在Tomcat上輸出如下,多了幾行換行。
------- start ---------- Something ------- end -----------
當然,一般不去特別留意是不會發現有什麼問題的,畢竟輸出再多的空格和換行符,對於瀏覽器產生的最終效果是一樣的。也就是大部分開發人員忽略這個問題的原因;但實際上這些空格和換行會佔用了不少空間,我的經驗是30%左右是空格/換行。也有人說,當web伺服器以zip的方式來輸出html時,空格引起的頻寬問題就可以解決了;是的,當使用zip來輸出html時,空格/換行的空間會被節省回來,但這個增加zip的工作量,而且最大的問題是,瀏覽器產生頁面時,還是會還原所有的空格的換行符。對於前端開發人員來說這是個噩耗,面對大量的空格和冗長的html源碼,想要找到對應出問題的樣式所在的位置可不是容易的事情。
下面說一下解決方案,以Tomcat為例:
方案一,利用web伺服器的trimSpaces功能。
Tomcat5 以上版本皆可使用,這是最簡單的方法。
<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>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>3</load-on-startup> </servlet>
這個方案有個缺點,它會去掉所有jsp EL標籤之間的空格的換行符,在部分情況下也來帶來不便。
如:Your name is ${firstName} ${lastName}. ==輸出為==> Your name is firstNamelastName.
兩個${}變數之間的空格也會消失。要解決這個問題是相當麻煩,要引入一個只有一個空格的變數。
Your name is ${firstName}${one_space}${lastName}.
這樣就正常了,麻煩。雖然可以在一些全域變數的地方來增加一個one_space的變量,但程式碼看起來還是不爽。
方案二,我比較喜歡。
這個方案只有在支援jsp 2.1的web伺服器上才可以使用,如Tomcat6。
Jsp2.1多了一個很有用的指令;
這個指令可以使jsp輸出的html時去除多餘的空行(jsp上使用EL和tag會產生大量的空格和空白),沒有使用trimSpaces的問題,現在jsp輸出html也可以很好地排版,看起來也專業;以前我一直都羨慕velocity的模板,輸出html十分乾淨好看,現在jsp也可以了。
另外提一下,Tomcat6有一些相容性問題,例如不能使用#{}這種程式碼在jsp中,因為會被當成JSF腳本執行。
雖然這是一個很小的問題,但我們還是要注意細節。
更多JSP輸出HTML時產生的大量空格和換行的去除方法相關文章請關注PHP中文網!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

HTML適合初學者學習,因為它簡單易學且能快速看到成果。 1)HTML的學習曲線平緩,易於上手。 2)只需掌握基本標籤即可開始創建網頁。 3)靈活性高,可與CSS和JavaScript結合使用。 4)豐富的學習資源和現代工具支持學習過程。

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。

GiteePages靜態網站部署失敗:404錯誤排查與解決在使用Gitee...

實現圖片點擊後周圍圖片散開並放大效果許多網頁設計中,需要實現一種交互效果:點擊某張圖片,使其周圍的...

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

網頁批註功能的Y軸位置自適應算法本文將探討如何實現類似Word文檔的批註功能,特別是如何處理批註之間的間�...
