日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

20080823-jsp中include指令与动作的不同

發布時間:2024/4/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20080823-jsp中include指令与动作的不同 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


?一、include 指令

  格式:

<%@include file="文件的絕對路徑或者相對路徑"%>

?
?

file屬性:指定被包含的文件,是必添屬性。該屬性不支持任何表達式,也不允許通過如下方式來傳遞參數。

<%@include file="welcome.jsp?name=mr"%>

?
?

如果路徑以“/”開頭,那么指定的是一個絕對路徑,將在當前應用的根目錄下查找文件,如果是以文件名或文件夾名開頭,那么指定的是一個相對路徑,將在當前應用的根目錄下查找文件。

?

二、include動作

 格式:

<jsp:include page="被包含文件的路徑" flush="true/false"> <jsp:param name="參數名稱" value="參數值"/> </jsp:inclue>

?
?

page屬性:該屬性指定了被包含文件的路徑,其值可以是一個代表了相對路徑的表達式.當路徑以"/"開頭時,則按照當前應用的路徑查找這個文件,如果路徑是以文件名或者目錄名稱開頭,那么將按照當前的路徑來查找被包含的文件,

flush屬性:表示當輸出緩沖區滿時,是否清空緩沖區.

?

三、兩者的不同

 1、從屬性方面進行區分

 include 指令通過file屬性來指定被包含的頁面,include指令將file屬性看作一個實際存在的文件的路徑。所以該屬性不支持任何表達式,也不支持在struts應用中的請求模式(如*.do),若在file屬性值中應用JSP表達式,會拋出異

常,如下面的代碼:

 

<% String path="login.jsp"%> <%@inclue file="<%=path%>"%>

?

?include動作標識通過page屬性來指定被包含的頁面,該屬性支持JSP表達式和Struts 應用在的請求模式

 2、從處理方式方面進行區分

?

  使用include指令,被包含的文件為原封不動的插入到包含頁中使用該指令的位置,然后JSP編譯器再對這個合成的文件進行編譯,所以在一個JSP頁面中使用include指令來包含另外一個JSP頁面,最終編譯后的文件只有一個。

?

  使用include 動作標識包含文件時,當該標識執行時,程序會將請求轉發到(注意是轉發而不是重定向)被包含的頁,并將執行結果輸出到瀏覽器中,然后返回包含頁繼續執行后面的代碼,因為服務器執行的是兩個文件。所以JSP編

譯器會分別對這兩個文件進行編譯。

 3、從包含方式方面進行區分

?

  使用include指令包含文件,最終服務器執行的是將兩個文件合成后由JSP編譯器編譯成一個Class 文件,所以被包含的文件的內容是固定不變的,若改變了被包含的文件,則主文件的代碼就發生了變化,因此服務器會重新編譯主文件

,include指令的這種包含稱為靜態包含

?

  使用include動作標識通常是包含那些經常需要改動的文件,此時服務器執行的是兩個文件,被包含的文件改變不會影響到主文件,因此服務器不會對主文件重新編譯,而只需要重新編譯被包含的文件即可,而對被包含文件的編譯是在執

行時才進行的,也就是說,只有當include動作被執行時,使用該標識包含的目標文件才會被編譯,否則被包含的文件不會被編譯,所以這種包含過程稱為動態包含。

4、從被包含文件的約定方面進行區分

  JSP有一些標識符例如

<%@page contentType="text/html;charset=gb2312"%>

?
?

在一個JSP頁面中只能出現一次,這個時間用jsp動作包含一個文件時,包含頁與被包含頁面只能有一個文件有此標識,而include 標作沒有此限制。

總結

以上是生活随笔為你收集整理的20080823-jsp中include指令与动作的不同的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。