程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP頁面的動態包含和靜態包含示例及介紹,jsp示例

JSP頁面的動態包含和靜態包含示例及介紹,jsp示例

編輯:關於JSP

JSP頁面的動態包含和靜態包含示例及介紹,jsp示例


一、靜態包含

本文介紹JSP靜態包含語句,即使用JSP的include指令來完成的包含操作。
JSP中,有兩種包含其它文件的方式,一種是靜態包含,一種是動態包含。本文介紹其中的靜態包含。

所謂靜態包含,跟ASP中的包含是一樣的效果,即將所有包含的文件,先靜態的包含進來,組成一個大的JSP文件,然後再經過編譯器統一編譯,生成HTML代碼。

JSP靜態包含的語句為:
復制代碼 代碼如下:
<%@ include file="file.jsp" %>

這裡的file.jsp就是要包含的文件,這裡可以使用目錄進行包含,可以是相對目錄,可以是絕對路徑。

JSP靜態包含時,需要注意編碼的問題。

在JSP文件中,我們必須指定頁面的contentType為GBK、GB2312、UTF-8等才能在文檔裡面輸入中文。如下:
復制代碼 代碼如下:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK" %>

但這裡務必注意,當這個文件被靜態包含時,它的編碼如果跟包含它的文件的編碼有一點點不一致,都會報錯。所以,如果要靜態包含,一定要把這兩個文件的編碼這一句(即contentType)確保完全一致。

二、動態包含

在ASP中沒有動態包含這一說法,所有的包含都是靜態包含。而JSP中,動態包含和靜態包含有很大的區別。
本文來說一說JSP中的動態包含。

JSP中的動態包含不同於靜態包含,它是在將各個JSP頁面分別編譯執行後,將大家執行的HTML結果,組合到一起向客戶端浏覽器輸出的一種方式。

什麼意思呢?

比如a.jsp,包含了b.jsp和c.jsp。a.jsp是無法共享b.jsp和c.jsp中設置的變量和函數的,也無法共享其邏輯結構。各自是分別編譯並執行的。比如a執行後輸出"a",b.jsp執行後輸出"b",c.jsp執行後輸出"c",那麼最終將輸出"abc"。

JSP動態包含的語法:

JSP動態包含不是使用的一個指令,而是使用的一個標簽,如下:
復制代碼 代碼如下:<jsp:include page="file.jsp" />
或者:
復制代碼 代碼如下:
<jsp:include page="file.jsp">
<jsp:param name="p1" vlaue="v1" />
</jsp:include>

上面兩種語句並沒有本質的區別,只是前者是一個簡單的包含,而後者可以給被包含頁面傳遞參數而已。參數傳遞到被包含頁面時,可以使用request.getParameter("參數名")的方式來獲取。

大家知道在asp中,如果使用include包含語句,那麼被包含的文件上是不能帶參數的。所以,在asp中的包含是跟jsp中的靜態包含一樣的。


JSP靜態包含與動態包含問題

<%@ include file="check.jsp"%>是include directive,也就是將你的check.jsp中所有代碼原封不動的放到Login.jsp中這條語句所在的位置,和你直接將上面這段代碼寫到Login.jsp中是一樣的效果;
<jsp:include page="check.jsp"/>則是將check.jsp執行後的HTML代碼放到Login.jsp中的相應位置,但是check.jsp中的response.redirect("")或者response.addCookie("")等等關於response的操作,都會被忽視,也就是說用戶不會被送到另一個頁面,即不會實現跳轉。
參考資料:zhidao.baidu.com/question/65012445.html?si=3
 

java JSP中 的動態包含與靜態包含的不同只在於 動態包含傳入了數據? 如題

動態包含是要包含的網頁先計算,把計算結果拿進來。多次編譯。
靜態包含是把網頁原封不動的拿進來。只編譯一次。

一般我們使用最多是靜態包含,因為動態包含在每次訪問它時,它都會進行編譯,然後計算。這樣會影響性能。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved