常見的java面試題
阿新 • • 發佈:2019-01-28
jsp靜態匯入和動態匯入的區別
(1)靜態匯入(include指令)通過file屬性指定被包含的檔案,並且file屬性不支援任何表示式;動態匯入(include動作)通過page屬性指定被包含的檔案,且page屬性支援JSP表示式;
(2)使用靜態匯入(include指令)時,被包含的檔案內容會原封不動的插入到包含頁中,然後JSP編譯器再將合成後的檔案最終編譯成一個Java檔案;使用動態匯入(include動作)包含檔案時,當該標識被執行時,程式會將請求轉發(不是請求重定向)到被包含的頁面,並將執行結果輸出到瀏覽器中,然後返回包含頁繼續執行後面的程式碼。因為伺服器執行的是多個檔案,所以JSP編譯器會分別對這些檔案進行編譯;
(3)使用include指令包含檔案時,由於被包含的檔案最終會生成一個檔案,所以在被包含、包含檔案中不能有重名的變數或方法;而include動作包含檔案時,由於每個檔案是單獨編譯的,所以在被包含檔案和包含檔案中重名的變數和方法是不相沖突的。
(4)靜態匯入是將被匯入頁面的程式碼完全融入,兩個頁面融合成一個整體Servlet,因此被匯入頁面甚至不需要是一個完整的頁面;而動態匯入則在Servlet中使用include方法來引入被匯入頁面的內容;
(5)靜態匯入時被匯入頁面的編譯指令會起作用;而動態匯入時被匯入頁面的編譯指令則失去作用,只是插入被匯入頁面的body內容。
REST請求和一般的請求的區別
JSON和XML比較