include標籤與include指令的比較

來源:互聯網
上載者:User

很早以前學習Jsp時就對include指令與inclue標籤之間的異同搞的不是很清楚,因為畢竟用起來感覺差不多的,今天特地查了下資料,總的來說它們之間的差別是非常微妙的,可以用如下一句話概括:<%@ include %>指令會首先找到要包含的目標檔案,然後把它插入到我們的JSP頁面中,就像我們將目標檔案中的內容複寫粘貼過來了一樣;而<jsp:include>則恰恰相反,它是在JSP頁面執行的時候才去尋找目標檔案,在具體的行為上有如下差別:

1.假設頁面A通過include指令包含了頁面B,那麼B頁面所發生的變化直到A頁面發生變化時才會被注意到。這和JSP引擎的機制是有關的。使用include指令時,頁面A在每次編譯的時候才將頁面B中的內容包含進來,然後再一起編譯。如果B發生了變化,A沒有發生變化,那麼JSP引擎不會重編譯A頁面,因此B中發生的變化不會被注意到。僅當A發生了變化的時候,JSP引擎才會重新編譯A頁面,這個時候A再把B包含進來,JSP引擎才會注意到B頁面中發生的變化。

2.使用inclue指令時,它所包含的文教案僅限於文本以及JSP片段,這時因為include指令就相當於把所包含檔案中的內容直接copy了過來。如果你包含別的東西,會導致JSP頁面編譯出錯,或者所包含的內容無效。

3.一般來說,大多數情況下include指定比include標籤效率更高,但是兩者之間效率上的差別並不重要。

4.如果使用<jsp:include>標籤讓頁面A包含頁面B,那麼A和B是兩個獨立的頁面,它們可以為不同的變數使用同一個變數名或者為同一個標籤庫使用不同的首碼,這不會衝突。而如果使用<%@ include %>則不能這麼做了,因為使用include指令的話,A和B在編譯之前實際上已經合并在一起了。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.