濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > JSP輸出HTML時(shí)產(chǎn)生的大量空格和換行的去除方法

JSP輸出HTML時(shí)產(chǎn)生的大量空格和換行的去除方法

熱門標(biāo)簽:福建電銷貓機(jī)器人收費(fèi) 地圖標(biāo)注專業(yè)和非專業(yè) 汝南縣地圖標(biāo)注app 甘肅銷售電銷機(jī)器人公司 四川正規(guī)外呼系統(tǒng)軟件 湖北地圖標(biāo)注公司 外呼直播語(yǔ)音系統(tǒng) 山東ai外呼電銷機(jī)器人好用嗎 智能電話機(jī)器人銷售話術(shù)
這個(gè)問題當(dāng)年也困擾了我比較長(zhǎng)的時(shí)間.因?yàn)樵趈sp內(nèi)使用的EL標(biāo)簽和其他標(biāo)簽時(shí),會(huì)產(chǎn)生大量的空格和換行符.例如:
復(fù)制代碼 代碼如下:

------- start ----------
c:choose>
c:when test="${fn:length(mainPageList)>1}">
Something
/c:when>
c:otherwise>
Others
/c:otherwise>
/c:choose>
------- end -----------

這段代碼在Tomcat上輸出如下,多了幾行換行。
復(fù)制代碼 代碼如下:

------- start ----------
Something
------- end -----------

當(dāng)然,一般不去特別留意是不會(huì)發(fā)現(xiàn)有什么問題的,畢竟輸出再多的空格和換行符,對(duì)于瀏覽器生成的最終效果是一樣的。也就是大部分開發(fā)人員忽略這個(gè)問題的原因;但實(shí)際上這些空格和換行會(huì)占用了不少空間,我的經(jīng)驗(yàn)是30%左右是空格/換行。也有人說,當(dāng)web服務(wù)器以zip的方式來輸出html時(shí),空格引起的帶寬問題就可以解決了;是的,當(dāng)使用zip來輸出html時(shí),空格/換行的空間會(huì)被節(jié)省回來,但這個(gè)增加zip的工作量,而且最大的問題是,瀏覽器生成頁(yè)面時(shí),還是會(huì)還原所有的空格的換行符。對(duì)于前端開發(fā)人員來說這是個(gè)噩耗,面對(duì)大量的空格和冗長(zhǎng)的html源碼,想要找到對(duì)應(yīng)出問題的樣式所在的位置可不是容易的事情。
下面說一下解決方案,以Tomcat為例:
方案一,利用web服務(wù)器的trimSpaces功能。
Tomcat5 以上版本都可以使用,這是最簡(jiǎn)單的方法。
復(fù)制代碼 代碼如下:

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>

這個(gè)方案有個(gè)缺點(diǎn),它會(huì)去掉所有jsp EL標(biāo)簽之間的空格的換行符,在部分情況下也來帶來不便。
如:Your name is ${firstName} ${lastName}. ==輸出為==> Your name is firstNamelastName.
兩個(gè)${}變量之間的空格也會(huì)消失。要解決這個(gè)問題是相當(dāng)麻煩,要引入一個(gè)只有一個(gè)空格的變量。
c:set var="one_space"> /c:set>
Your name is ${firstName}${one_space}${lastName}.
這樣就正常了,麻煩。雖然可以在一些全局變量的地方來增加一個(gè)one_space的變量,但代碼看上去還是不爽。
方案二,我比較喜歡。
這個(gè)方案只有在支持jsp 2.1的web服務(wù)器上才可以使用,如Tomcat6。
Jsp2.1多了一個(gè)很有用的命令;
%@ page trimDirectiveWhitespaces="true" %>
這個(gè)命令可以使jsp輸出的html時(shí)去除多余的空行(jsp上使用EL和tag會(huì)產(chǎn)生大量的空格和空行),沒有使用trimSpaces的問題,現(xiàn)在jsp輸出html也可以很好地排版,看上去也專業(yè);以前我一直都羨慕velocity的模板,輸出html十分干凈好看,現(xiàn)在jsp也可以了。
另外提一下,Tomcat6有一些兼容性問題,例如不能使用#{}這種代碼在jsp中,因?yàn)闀?huì)被當(dāng)成JSF腳本執(zhí)行。
雖然這是一個(gè)很小的問題,但我們還是要注意細(xì)節(jié)。
您可能感興趣的文章:
  • javascript實(shí)現(xiàn)去除HTML標(biāo)簽的方法
  • php正則去除網(wǎng)頁(yè)中所有的html,js,css,注釋的實(shí)現(xiàn)方法
  • js函數(shù)獲取html中className所在的內(nèi)容并去除標(biāo)簽
  • asp中去除html中style,javascript,css代碼
  • php中去除所有js,html,css代碼
  • js中去除字符串中所有的html標(biāo)簽代碼實(shí)例

標(biāo)簽:肇慶 南充 吳忠 梅州 黔東 昌都 白銀 臨沂

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP輸出HTML時(shí)產(chǎn)生的大量空格和換行的去除方法》,本文關(guān)鍵詞  JSP,輸出,HTML,時(shí)產(chǎn),生的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP輸出HTML時(shí)產(chǎn)生的大量空格和換行的去除方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于JSP輸出HTML時(shí)產(chǎn)生的大量空格和換行的去除方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    托克逊县| 田阳县| 荆门市| 图木舒克市| 保山市| 上饶市| 惠州市| 萨嘎县| 霸州市| 洱源县| 日喀则市| 景洪市| 工布江达县| 仁寿县| 红河县| 通榆县| 西吉县| 巨野县| 霍州市| 丽水市| 兴宁市| 澳门| 兴国县| 太湖县| 青海省| 龙江县| 海盐县| 呼伦贝尔市| 南雄市| 莒南县| 六枝特区| 长岛县| 湖州市| 芷江| 施甸县| 安徽省| 敦煌市| 深圳市| 昌吉市| 沈阳市| 嘉荫县|