溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用JSP include機(jī)制改進(jìn)外觀

發(fā)布時間:2021-07-14 13:51:28 來源:億速云 閱讀:136 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“如何使用JSP include機(jī)制改進(jìn)外觀”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何使用JSP include機(jī)制改進(jìn)外觀”吧!

所有***實(shí)踐都基于 JavaServer Pages 技術(shù)。要運(yùn)行任何一種實(shí)踐,需要在本地機(jī)器或測試服務(wù)器上設(shè)置符合 JSP 的 Web 容器,如 Apache Tomcat。您還需要使用文本編輯器或 IDE 編寫 JSP 頁面代碼。請參閱參考資料,獲取 Tomcat 和與 JSP 兼容的 Web 容器和 IDE 的清單的鏈接。

更好的外觀

為 Web 頁面創(chuàng)建一致的設(shè)計(jì)和布局是確保獲得專業(yè)化外觀的最容易方法之一。您或許看過足夠多的網(wǎng)站,知道單個站點(diǎn)中的大部分頁面都共用統(tǒng)一的頁面頭、頁面尾以及某種類型的導(dǎo)航欄。在設(shè)計(jì)良好的站點(diǎn)上,這些元素將在每個頁面上呈現(xiàn)相同的布局、內(nèi)容和功能,而主面板(通常稱為內(nèi)容窗格)會隨著每個視圖而變化。

以前,這種布局幾乎完全由框架和框架集實(shí)現(xiàn)。每段靜態(tài)內(nèi)容被放置在一個框架中,而頁面的主體內(nèi)容被放置在中間框架中??蚣艿穆闊┚褪遣煌臑g覽器常常會以不同方式顯示它們,使它們的外觀不一致。使用框架從內(nèi)部頁面鏈接外部站點(diǎn)則比想像的更加困難。原本是想允許用戶在不離開站點(diǎn)的情況下查看外部內(nèi)容,但結(jié)果往往不一致。用戶最終看到的是整個站點(diǎn)被擠進(jìn)小得多的框架中,更糟的是,您的站點(diǎn)最終會嵌套在另一個站點(diǎn)框架中。這種混亂驅(qū)使 Web 設(shè)計(jì)者尋找一種更佳的解決方案。服務(wù)器端 include(server-side include,SSI)就是一種。

服務(wù)器端 include

不久前,SSI 還是用于創(chuàng)建共享內(nèi)容的***的選項(xiàng)之一。簡單的 SSI 偽指令允許您創(chuàng)建包含另一個頁面內(nèi)容(如頭和腳注文件)的頁面,如下面所示。

<![CDATA[    Simple SSI test   This content is statically in the main HTML file.      ]]>

我們不久將使用該文件來做一個練習(xí)。目前,您應(yīng)該將它另存為 test-ssi.shtml。在大多數(shù)設(shè)置中,SSI 文件必須以 .shtml 結(jié)尾,這讓 Web 服務(wù)器知道將它們解析為 SSI 偽指令。下面顯示了名為 included.html 的包含文件的內(nèi)容。

<![CDATA[  This content is in another file, included.html  ]]>

當(dāng)請求 test-ssi.shtml 時,您將看到該文件的內(nèi)容以及 included.html 的內(nèi)容。您可以在任何支持 SSI 的 Web 容器(如 Apache Tomcat,請參閱參考資料)上查看這些文件。

從用戶角度看,SSI 與框架相比有重大改進(jìn),因?yàn)樵趩蝹€文件和從其它被包含文件引進(jìn)內(nèi)容的文件之間沒有顯而易見的差別。不利方面就是 SSI 需要一種特定的服務(wù)器設(shè)置,而 Java 開發(fā)人員常常無法使用這種設(shè)置。另外,SSI 通常要求被包含內(nèi)容是靜態(tài)的,盡管在后面的版本中加入了動態(tài)內(nèi)容包含。

對于在網(wǎng)站或 Web 應(yīng)用程序中包含不同類型的內(nèi)容來說,SSI 是可行的解決方案,但它們不是 Java 開發(fā)人員的***選擇。這不僅因?yàn)?JavaServer Pages 技術(shù)是替代 SSI 的全 Java 技術(shù),還因?yàn)檫@兩種技術(shù)不太容易結(jié)合在一起。JSP 頁以擴(kuò)展名 .jsp 結(jié)尾,這表示要使 SSI 偽指令起作用,必須更改 SSI 配置以解析 JSP 文件(給每個 JSP 頁解析增加開銷),或者更改 JSP 配置以將 .shtml 擴(kuò)展名作為 JSP 頁處理(這是一個壞主意)。對于 Java 開發(fā)人員來說,JSP 技術(shù)是***的內(nèi)容管理解決方案,幸運(yùn)的是,其 include 機(jī)制很容易掌握。

JSP include

JSP include 偽指令與其 SSI 對等偽指令極其相似。下面是 SSI 偽指令的 JSP 對等偽指令。任何支持 JSP 的 Web 容器都將處理該 JSP 頁的顯示(同樣,請參閱參考資料一節(jié),以獲得鏈接)。應(yīng)該將該文件另存為 test-include.jsp。

<![CDATA[      JSP include element test   This content is statically in the main JSP file.      ]]>

include 偽指令使將統(tǒng)一的頭文件和腳注文件合并到您的站點(diǎn)變得非常容易。清單 4 顯示了具有幾個被包含文件的主索引頁。

<![CDATA[      newInstance.com                 ]]>

通過查看代碼,您將了解有關(guān)如何使用 JSP include 的各種方法。您還應(yīng)該試驗(yàn)一下該代碼,讓自己掌握其工作原理。

添加動態(tài)內(nèi)容

除了如頭、腳注和導(dǎo)航文件之類的靜態(tài)內(nèi)容外,清單 4 還包括對 Weblog(/mt-blogs/index.jsp)的調(diào)用,這涉及動態(tài)內(nèi)容的主題。如同 SSI include 偽指令那樣,當(dāng) JSP include 機(jī)制應(yīng)用于動態(tài)內(nèi)容時會出現(xiàn)問題??梢酝ㄟ^使用 JSP include 偽指令來引入動態(tài)內(nèi)容,但將無法獲得對該內(nèi)容的更改。這是因?yàn)?Web 容器將被包含文件作為原始(包含)頁面的一部分讀取。容器將結(jié)果高速緩存為單個文件,而不是多個 JSP 組件。因?yàn)?Web 容器不會針對更改去輪詢被包含文件,所以它不會知道有任何更改發(fā)生,它將自動顯示高速緩存的頁面而不是刷新的頁面。要了解它的工作原理,我們將做一個簡單的練習(xí)。首先,將已保存的 included.html 頁面更新為下面所示的那樣。

<![CDATA[  This content is in another file, included.html.    Some new content...  ]]>

接下來,保存這些更改,導(dǎo)航至 test-include.jsp 文件,刷新瀏覽器。您將注意到瀏覽器中沒有顯示 included.html 中的新內(nèi)容。被包含文件的內(nèi)容在更改發(fā)生之前就被高速緩存了,所以它不會顯示出來。如果您的站點(diǎn)包含動態(tài)內(nèi)容或可能被頻繁修改的內(nèi)容,那么這會是一個問題。幸運(yùn)的是,有一個變通方法。在下一個部分中,我將向您演示如何使用 標(biāo)記將動態(tài)內(nèi)容加入 Web 頁面。

到此,相信大家對“如何使用JSP include機(jī)制改進(jìn)外觀”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI