自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 后端
本文介紹使用JSP include機(jī)制改進(jìn)外觀,以及介紹更好的外觀和服務(wù)器端 include。

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

更好的外觀

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

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

服務(wù)器端 include

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

  1.  
  2.  
  3.  
  4. Simple SSI test  
  5.  
  6.  
  7. This content is statically in the main HTML file.  
  8.  
  9.  
  10.  
  11. ]]> 

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

  1.  
  2. This content is in another file, included.html  
  3. ]]> 

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

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

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

JSP include

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

  1.  
  2. <%@ page language="java" contentType="text/html" %>  
  3.  
  4.  
  5. JSP include element test  
  6.  
  7.  
  8. This content is statically in the main JSP file.  
  9. <%@ include file="included.html" %>  
  10.  
  11.  
  12. ]]> 

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

  1.  
  2. <%@ page language="java" contentType="text/html" %>  
  3.  
  4.  
  5. newInstance.com  
  6.  
  7.  
  8.  
  9.  
  10. <%@ include file="header.jsp" %>  
  11. <%@ include file="navigation.jsp" %>  
  12. <%@ include file="bookshelf.jsp" %>  
  13. <%@ include file="/mt-blogs/index.jsp" %>  
  14. <%@ include file="footer.jsp" %>  
  15.  
  16.  
  17. ]]> 

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

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

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

  1.  
  2. This content is in another file, included.html.  
  3.  
  4. Some new content...  
  5. ]]> 

接下來(lái),保存這些更改,導(dǎo)航至 test-include.jsp 文件,刷新瀏覽器。您將注意到瀏覽器中沒有顯示 included.html 中的新內(nèi)容。被包含文件的內(nèi)容在更改發(fā)生之前就被高速緩存了,所以它不會(huì)顯示出來(lái)。如果您的站點(diǎn)包含動(dòng)態(tài)內(nèi)容或可能被頻繁修改的內(nèi)容,那么這會(huì)是一個(gè)問(wèn)題。幸運(yùn)的是,有一個(gè)變通方法。在下一個(gè)部分中,我將向您演示如何使用 標(biāo)記將動(dòng)態(tài)內(nèi)容加入 Web 頁(yè)面。在此之前,請(qǐng)參考參考資料一節(jié)并試驗(yàn)這里提供的代碼,我將在網(wǎng)上與您再見。

【編輯推薦】

  1. JSP中基于Session的在線用戶統(tǒng)計(jì)分析
  2. Servlet和JSP性能優(yōu)化經(jīng)驗(yàn)談
  3. JSP標(biāo)簽庫(kù)解析
  4. 在JSP Servlet開發(fā)中導(dǎo)入事件驅(qū)動(dòng)技術(shù)
  5. JSP編程應(yīng)注意的六個(gè)常見問(wèn)題
責(zé)任編輯:佚名 來(lái)源: builder
相關(guān)推薦

2009-06-30 11:27:25

JSP include

2009-02-23 14:17:00

include指令動(dòng)作

2010-02-02 15:30:05

C++ include

2012-05-31 14:11:49

SwingSubstance異常

2012-01-17 17:08:05

JavaSwing

2011-11-10 14:46:54

Windows8電源管理

2009-07-02 11:34:42

JSP指令JSP開發(fā)

2009-06-06 18:43:34

JSP Action

2009-09-10 09:48:15

JSP使用FCKedi

2009-03-16 15:07:20

JSP分頁(yè)window.openJSP表單

2009-07-06 15:31:42

JSP Action

2009-08-18 22:15:38

VMware快照改進(jìn)方

2009-02-25 10:55:29

FCKeditor控件JSP

2009-07-02 13:12:33

JSP打印報(bào)表

2009-06-16 09:06:37

JavaMailJSP

2009-07-15 10:37:28

Swing外觀

2021-06-11 18:02:42

AppGallery 開發(fā)

2010-06-21 13:52:20

AODV路由協(xié)議

2011-05-07 16:09:55

上網(wǎng)本華碩EeePC 101

2009-07-10 12:30:12

Swing組件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)