小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

jsp:include flush標(biāo)簽的含義

 xue_dong5437 2011-05-04

原文:https://www.ibm.com/developerworks/cn/java/j-jsp04293/

JSP include 偽指令的不足之處有一個(gè)是:它會(huì)導(dǎo)致 Web 瀏覽器高速緩存所有頁(yè)面。在處理諸如頁(yè)腳、版權(quán)聲明或一組靜態(tài)鏈接之類(lèi)的靜態(tài)組件時(shí),這是有意義的。這些文件不會(huì)改變,因此沒(méi)有理由讓 JSP 解釋器不斷地重新輪詢(xún)其中的數(shù)據(jù)。凡是可能的地方,都應(yīng)該實(shí)現(xiàn)高速緩存,因?yàn)樗纳屏藨?yīng)用程序的性能。

JSP 測(cè)試和開(kāi)發(fā)

在構(gòu)建 Web 應(yīng)用程序或網(wǎng)站時(shí),可能需要大量更新頁(yè)眉、頁(yè)腳和導(dǎo)航鏈接。僅僅為了看到對(duì)所包含文件所做的更改,而被迫不斷地關(guān)閉瀏覽器或清除其高速緩存,這可能是件痛苦的事情。另一方面,為了結(jié)束開(kāi)發(fā)周期,而不得不徹底檢查一遍并修改數(shù)百個(gè)使用了 include 偽指令的頁(yè)面,這也是一件痛苦的事情。我的建議是,在測(cè)試期間禁用瀏覽器高速緩存。在大多數(shù)情形下,這樣做能夠徹底解決問(wèn)題。也有極少數(shù)情形,這樣做并不奏效,這時(shí)可以在瀏覽器或服務(wù)器上不斷地重新啟動(dòng) Web 容器來(lái)確保不進(jìn)行高速緩存。

但是,有時(shí)侯,進(jìn)行高速緩存會(huì)得不償失。如果提入的內(nèi)容來(lái)自使用動(dòng)態(tài)數(shù)據(jù)(如 Weblog 或數(shù)據(jù)庫(kù)驅(qū)動(dòng)的 JSP 文件)的程序,甚至如果所包含的內(nèi)容是經(jīng)常變化的 HTML(如時(shí)間戳記),那么每當(dāng)裝入 Web 頁(yè)面時(shí),都需要顯示這些文件或程序的最新版本。遺憾的是,JSP include 偽指令并不具備這一功能。在測(cè)試和開(kāi)發(fā)周期(請(qǐng)參閱側(cè)欄“ JSP 測(cè)試和開(kāi)發(fā)”)中,在瀏覽器中禁用高速緩存通常能夠解決這一問(wèn)題。但是,對(duì)于實(shí)際使用的應(yīng)用程序而言,性能是任何設(shè)計(jì)決策過(guò)程中的一項(xiàng)重要因素,禁用高速緩存并不是一種可行的長(zhǎng)遠(yuǎn)之計(jì)。更好的解決方案是使用 jsp:include 標(biāo)記。 


flush 屬性

您可能已注意到 jsp:include 代碼示例中的 flush 屬性。顧名思義, flush 指示在讀入包含內(nèi)容之前是否清空任何現(xiàn)有的緩沖區(qū)。JSP 1.1 中需要 flush 屬性,因此,如果代碼中不用它,會(huì)得到一個(gè)錯(cuò)誤。但是,在 JSP 1.2 中, flush 屬性缺省為 false。由于清空大多數(shù)時(shí)候不是一個(gè)重要的問(wèn)題,因此,我的建議是:對(duì)于 JSP 1.1,將 flush 設(shè)置為 true;而對(duì)于 JSP 1.2 及更高版本,將其設(shè)置為關(guān)閉。

jsp:include 是如何工作的

如果您有點(diǎn)愛(ài)刨根問(wèn)底,那么可能十分想知道 jsp:include 標(biāo)記的行為為什么與 include 偽指令不同。道理其實(shí)十分簡(jiǎn)單: jsp:include 包含的是所包含 URI 的 響應(yīng),而不是 URI 本身。這意味著:對(duì)所指出的 URI 進(jìn)行 解釋,因而包含的是 生成的響應(yīng)。如果頁(yè)面是 HTML,那么將得到一點(diǎn)也沒(méi)有變化的 HTML。但是,如果是 Perl 腳本、Java servlet 或者 CGI 程序,那么得到的將是從該程序解釋而得的結(jié)果。雖然頁(yè)面通常就是 HTML,但實(shí)際程序恰好是達(dá)到目的的手段。而且,由于每次請(qǐng)求頁(yè)面的時(shí)候都會(huì)進(jìn)行解釋?zhuān)虼藦膩?lái)不會(huì)象使用 include 偽指令時(shí)那樣高速緩存結(jié)果。雖然這只是很小的變動(dòng),但它卻導(dǎo)致了您所見(jiàn)到的行為中的全部差異。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多