麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JSP > 正文

jsp中include指令靜態導入和動態導入的區別詳解

2024-09-05 00:22:03
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了jsp中include指令靜態導入和動態導入的區別,通過示例和圖文講解可以更好的看出他們的區別,需要的朋友可以參考下

1、什么是靜態導入?

靜態導入指的是,將一個外部文件嵌入到當前JSP文件中,同時解析這個頁面的JSP語句,它會把目標頁面的其他編譯指令也包含進來。
include的靜態導入指令使用語法:

復制代碼 代碼如下:


<%@include file="relativeURLSpec"%>

靜態導入使用范例include1.jsp:

復制代碼 代碼如下:


<%@ page contentType="text/html; charset=utf-8" language="java" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>靜態include范例</title>
</head>
<body>
<!--使用include編譯指定導入頁面-->
<%@include file="error.jsp"%>
</body>
</html>

其中error.jsp是一個簡單的錯誤處理頁面,代碼如下:

復制代碼 代碼如下:


<%@ page contentType="text/html; charset=utf-8" language="java" isErrorPage="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>錯誤提示頁</title>
</head>
<body>
這是一個錯誤處理頁面</br>
</body>
</html>

在tomcat下運行該靜態include范例后,查看生成的servlet類可看到如下代碼段

(查看方式:windows下,找到tomcat安裝目錄下的work文件夾,進入Catalina文件夾下的localhost文件夾,找到當前項目所在的文件夾,找到org目錄,進入其下的apache目錄下的jsp文件夾,即可看到一個include1_jsp.java文件,這就是該include1.jsp對應生成的servlet類。ps:我是把這個測試頁面放在webDemo下的,所以我的目錄是/apache-tomcat-7.0.47/work/Catalina/localhost/webDemo/org/apache/jsp)

jsp中include指令靜態導入和動態導入的區別詳解

從方框中即可看出靜態導入是:包含頁面在編譯時將完全包含被包含頁面的代碼。需要指出的是,靜態導入還會將被包含頁面的編譯指令也包含進來,如果兩個頁面的編譯指令有沖突,那么頁面就會出錯。


2、什么是動態導入

動態導入是不會導入include頁面的編譯指令的,而是僅僅將被導入頁面的body內容插入本頁面。
動態導入的語法格式:

復制代碼 代碼如下:


<jsp:include page="{relativeURL|<%=expression%>}" flush="true"/>

或者

復制代碼 代碼如下:


<jsp:include page="{relativeURL|<%=expression%>}" flush="true">
<jsp:param value="parameterValue"/>
</jsp:include>

flush屬性用語指定輸出緩存是否轉移到被導入文件中。如果指定為true,則包含在被導入文件中,如果指定為false,則包含在原文件中,對于JSP1.1舊版本,只能設置為false。
對于第二種語法格式,則可在被導入頁面中加入額外的請求參數。

動態導入范例:

我們將上面的include1.jsp代碼靜態導入改為動態導入

復制代碼 代碼如下:


<%@ page contentType="text/html; charset=utf-8" language="java" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>靜態include范例</title>
</head>
<body>
<!--使用include編譯指定導入頁面-->
<jsp:include page="error.jsp" />
</body>
</html>

編譯后查看生成的servlet代碼,可以看到如下段:

jsp中include指令靜態導入和動態導入的區別詳解

紅色方框中代碼顯示出,動態導入只是使用了一個include方法來插入目標頁面的內容,而不是將目標頁面完全融入到本頁面中。
歸納起來,靜態導入和動態導入有如下三點區別:

1、靜態導入是將被導入頁面的代碼完全融入,兩個頁面融合成一個整體Servlet;而動態導入則在Servlet中使用include方法來引入被導入頁面的內容。
2、靜態導入時被導入頁面的編譯指令會起作用;而動態導入時被導入頁面的編譯指令則失去作用,只是插入被導入頁面的body內容。
3、動態導入還可以增加額外的參數。即如下代碼方式:

復制代碼 代碼如下:


<jsp:include page="{relativeURL|<%=expression%>}" flush="true">
<jsp:param value="parameterValue"/>
</jsp:include>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美成人免费一区二区三区 | 成人综合免费视频 | 黄色片小说 | 欧美日韩免费看 | 国产一区二区精彩视频 | 亚洲国产中文字幕 | 国产一精品一av一免费爽爽 | 国产精品久久久久久久久岛 | 91av大片| 销魂美女一区二区 | 久久久久久艹 | 国产精品亚洲欧美一级在线 | 欧美人xx | 国产在线观看91一区二区三区 | 黄色网址免费入口 | 日本免费不卡一区二区 | 欧美日韩在线中文 | 久久综合久久美利坚合众国 | 99精品在线观看 | 欧美黑人伦理 | www国产成人免费观看视频,深夜成人网 | 国产在线观看91精品 | 精品亚洲一| 91综合在线观看 | 综合国产一区 | 日本在线精品视频 | 偿还的影视高清在线观看 | 日产精品一区二区三区在线观看 | 免费看欧美一级特黄a大片 久久免费视频一区二区三区 | 国产精品一区在线免费观看 | 国产激爽大片在线播放 | 国产亚洲精品久久久久久久久久 | 极品国产91在线网站 | 欧美韩国日本在线 | 欧美一级淫片007 | 久久久一区二区三区精品 | 免费国产一级特黄久久 | 91久久91久久精品免观看 | 永久免费毛片 | 国产在线1区 | 久久91久久久久麻豆精品 |