天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

這個(gè)問(wèn)題當(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)有什么問(wèn)題的,畢竟輸出再多的空格和換行符,對(duì)于瀏覽器生成的最終效果是一樣的。也就是大部分開(kāi)發(fā)人員忽略這個(gè)問(wèn)題的原因;但實(shí)際上這些空格和換行會(huì)占用了不少空間,我的經(jīng)驗(yàn)是30%左右是空格/換行。也有人說(shuō),當(dāng)web服務(wù)器以zip的方式來(lái)輸出html時(shí),空格引起的帶寬問(wèn)題就可以解決了;是的,當(dāng)使用zip來(lái)輸出html時(shí),空格/換行的空間會(huì)被節(jié)省回來(lái),但這個(gè)增加zip的工作量,而且最大的問(wèn)題是,瀏覽器生成頁(yè)面時(shí),還是會(huì)還原所有的空格的換行符。對(duì)于前端開(kāi)發(fā)人員來(lái)說(shuō)這是個(gè)噩耗,面對(duì)大量的空格和冗長(zhǎng)的html源碼,想要找到對(duì)應(yīng)出問(wèn)題的樣式所在的位置可不是容易的事情。
下面說(shuō)一下解決方案,以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)簽之間的空格的換行符,在部分情況下也來(lái)帶來(lái)不便。
如:Your name is ${firstName} ${lastName}. ==輸出為==> Your name is firstNamelastName.
兩個(gè)${}變量之間的空格也會(huì)消失。要解決這個(gè)問(wèn)題是相當(dāng)麻煩,要引入一個(gè)只有一個(gè)空格的變量。
<c:set var="one_space"> </c:set>
Your name is ${firstName}${one_space}${lastName}.
這樣就正常了,麻煩。雖然可以在一些全局變量的地方來(lái)增加一個(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)生大量的空格和空行),沒(méi)有使用trimSpaces的問(wèn)題,現(xiàn)在jsp輸出html也可以很好地排版,看上去也專(zhuān)業(yè);以前我一直都羨慕velocity的模板,輸出html十分干凈好看,現(xiàn)在jsp也可以了。
另外提一下,Tomcat6有一些兼容性問(wèn)題,例如不能使用#{}這種代碼在jsp中,因?yàn)闀?huì)被當(dāng)成JSF腳本執(zhí)行。
雖然這是一個(gè)很小的問(wèn)題,但我們還是要注意細(xì)節(jié)。

jsp技術(shù)JSP輸出HTML時(shí)產(chǎn)生的大量空格和換行的去除方法,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 香蕉97超级碰碰碰碰碰久 | 免费精品国产人妻国语 | 暖暖日本手机免费完整版在线观看 | 久久精品动漫网一区二区 | 在线免费观看a视频 | 啪啪做羞羞事小黄文 | 欧美午夜福利主线路 | 91嫩草私人成人亚洲影院 | 福利视频一二三在线观看 | 丁香美女社区 | 亚洲精品色情APP在线下载观看 | 最近韩国HD免费观看国语 | 善良的小峓子2在钱免费中文字 | 侮辱丰满美丽的人妻 | 毛片基地看看成人免费 | 十分钟免费看完整视频 | 久久中文字幕人妻AV熟女 | AV午夜午夜快憣免费观看 | 帅哥操帅哥 | 中文在线观看永久免费 | 色综合色综合久久综合频道 | 又色又爽又黄gif动态视频 | 久久受www免费人成_看片中文 | 最近中文字幕完整版免费高清 | 91综合久久久久婷婷 | 日本无码毛片一区二区手机看 | 99热久久这里只有精品 | 亚洲人成7777| 最近中文字幕2018MV高清在线 | 亚洲AV综合色一区二区三区 | 国产成人ae在线观看网站站 | 男人桶女人j的视频在线观看 | 国产精品私人玩物在线观看 | 国产午夜精品AV一区二区麻豆 | 羞羞答答的免费视频在线观看 | 一个吃奶两个添下面H | 国产成人亚洲精品午夜国产馆 | 扒开腿狂躁女人GIF动态图 | 国产精品久久久久影院嫩草 | 最近中文字幕2019免费版 | 亚洲日本国产综合高清 |