IT兄弟連 JavaWeb教程 JSP靜態包含和動態包含的區別
- 2019 年 10 月 5 日
- 筆記
版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/ITXDL123/article/details/90089786
JSP靜態包含(<%@ include>和JSP動態包含<jsp:include>同樣都可以用來包含文件,但是他們之間是存在很大差別的。下面將對include指令與include動作的區別進行詳細介紹:
● include指令通過file屬性指定被包含的文件,並且file屬性不支援任何表達式;include動作標識通過page屬性指定被包含的文件,而且page屬性支援JSP表達式。
● 使用include指令時,被包含的文件內容會原封不動地插入到包含頁中,然後JSP編譯器在將合成後的文件最終編譯成一個Java文件;使用include動作標識包含文件時,當該標識被執行時,程式會將請求轉發(注意是轉發,而不是請求重定向)到被包含的頁面,並將執行結果輸出到瀏覽器中,然後返回包含頁,繼續執行後面的程式碼。因為伺服器執行的是多個文件,所以JSP編譯器會分別對這些文件進行編譯。
● 在應用include指令包含文件時,由於被包含的文件最終會生成一個文件,所以在被包含文件、包含文件中不能有重名的變數或方法;而include動作標識包含文件時,由於每個文件時單獨編譯的,所以在被包含文件和包含文件中重名的變數和方法是不衝突的。