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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

jsp学习之包含——include

發布時間:2024/10/12 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsp学习之包含——include 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.e23.cn/?uid-1255655-action-viewspace-itemid-134232

1.include:

Include?指令:?<%@?include?file="filename"?%>

Include?動作:?<jsp:include?page="page.jsp"?flush="true"?/>?

<%@include %>指令將會在JSP編譯時插入一個包含文本或代碼的文件,當你使用<%@ include %>指命時,這個包含的過程就當是靜態的。靜態的包含就是指這個被包含的文件將會被插入到JSP文件中去,這個包含的文件可以是JSP文件,HTML文件,文本文件。如果包含的是JSP文件,這個包含的JSP的文件中代碼將會被執行。??
如果你僅僅只是用include 來包含一個靜態文件。那么這個包含的文件所執行的結果將會插入到JSP文件中放<% @ include %>的地方。一旦包含文件被執行,那么主JSP文件的過程將會被恢復,繼續執行下一行這個被包含文件可以是html文件,jsp文件,文本文件,或者只是一段Java代碼,但是你得注意在這個包含文件中不能使用<html>,</html>,<body>,</body>標記,因為這將會影響在原JSP文件中同樣的標記 ,這樣做有時會導致錯誤.

例子 (include.jsp:)

<html> <head><title>An Include Test</title></head> <body bgcolor="white"> <font color="blue"> The current date and time are <%@ include file="date.jsp" %> </font> </body> </html>???

date.jsp:???
<%@ page import="java.util.*" %> <%= (new java.util.Date() ).toLocaleString() %>

Displays in the page:

The current date and time are

Aug 30, 1999 2:38:40

2.<jsp:include>
包含一個靜態或動態文件:

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

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

<jsp:include page="scripts/login.jsp" />

<jsp:include page="copyright.html" />???
<jsp:include page="/index.html" />??
<jsp:include page="scripts/login.jsp">??
<jsp:param name="username" value="jsmith" />

</jsp:include>

<jsp:include>元素允許你包含動態文件和靜態,這兩種包含文件的結果是不同的。如果文件僅是靜態文件,那么這種包含僅僅是把包含文件的內容加到jsp文件中去,而如果這個文件動態的,那么這個被包含文件也會被Jsp編譯器執行

如果這個包含文件是動態的,那么你還可以用<jsp:param>傳遞參數名和參數值

屬性:
page="{relativeURL | <%= expression %>}"參數為一相對路徑,或者是代表相對路徑的表達式.

總結:

<%@include?? file=...%>屬于Directive,翻譯時處理,對象:靜態???
?<jsp:include?? page=...%>屬于Action,請求時處理,對象:靜態/動態
??
???
? include編譯指令是在JSP程序的轉換時期(即JSP程序被翻譯為JAVA程序的時期)就先將file屬性所指定的程序內容嵌入,讓它和主JSP程序結合為一個整體然后才使用JAVA編譯器編譯轉換所得的JAVA程序文件,并將其載入JSP引擎中,file屬性所指定的文件不會被單獨翻譯和編譯。???
?而<jsp:include>操作指令page屬性所指定的文件在主JSP程序的轉換時期是不會被編譯的,它只在客戶端請求時期如果被執行到才會被動態地編譯載入,而page屬性所指定的JSP程序會被單獨轉換編譯為Servlet?? Class二進制代碼。
下面舉個例子:
//======date.jsp的源文件=====//
<%@?page?language=”java”?contentType="text/html;charset=gb2312"%>
<%
java.util.Date?date=new?java.util.Date();
String?date_cn?="";
String?dateStr?=?"";
switch(date.getDay())
{
case?0:date_cn?="日";?break;
case?1:date_cn?="一";?break;
case?2:date_cn?="二";?break;
case?3:date_cn?="三";?break;
case?4:date_cn?="四";?break;
case?5:date_cn?="五";?break;
case?6:date_cn?="六";?break;
}
dateStr?=?(1900+date.getYear())?+?"年"?+?(date.getMonth()+1)?+?"月"?+?date.getDate()?+?"日(星期"?+?date_cn?+?")";
%>
document.write("<%=dateStr%>");
//======以下是test.jsp的源文件=============//
<%@?page?language=”java”?contentType=”text/html;charset=gb2312”%>
<html>
<head>
<title>include的兩種用法</title>
<jsp:include?page=”date.jsp”?flush=”true”/>
<%--@?include?file=”date.jsp”?%-->
//我們在這里用include的兩種不同形式來引入date.jsp這個文件.
<head>
<body>
<table><tr><td>
有關jsp中include的兩種用法.敬請關注。
</td></tr></table>
</body>
</html>
上面例子用紅色寫法運行的時候會出錯。是因為在翻譯階段,date.jsp文件的代碼被原封不動地加入到了test.jsp頁面從而合成一個文件。合成后的文件中就會相同的:
<%@?page?language=”java”?contentType=”text/html;charset=gb2312”%>
這句代碼。解決的辦法是把date.jsp文件中的這句刪掉。刷新后再請求test.jsp頁面。 那么去掉后我們用藍色的寫法來運行,得到結果會是亂碼。因為在我們作include行為元素引入頁面時,實際只是引用了date.jsp這個文件被轉化并被編譯后產生的servlet類文件.既如此,?date.jsp就是作為一個單獨的文件在執行后才被test.jsp文件運行時調用.由于date.jsp文件中沒有指定字符編碼.所以出現了亂碼.解決辦法是在date.jsp文件中重新把剛才去掉的
<%@?page?language=”java”?contentType=”text/html;charset=gb2312”%>這行語句加入后刷新重新運行.

3.Page 指令:
例子:

<%@ page import="java.util.*, java.lang.*" %>??
<%@ page buffer="5kb" autoFlush="false" %>
<%@ page errorPage="error.jsp" %>

<%@ page %>指令作用于整個JSP頁面,同樣包括靜態的包含文件。但是<% @ page %>指令不能作用于動態的包含文件,比如 <jsp:include>

無論你把<% @ page %>指令放在JSP的文件的哪個地方,它的作用范圍都是整個JSP頁面。不過,為了JSP程序的可讀性,以及好的編程習慣,最好還是把它放在JSP文件的頂部.?

屬性:??
language="java"
聲明腳本語言的種類,暫時只能用"java"
extends="package.class"
標明JSP編譯時需要加入的Java Class的全名,但是得慎重的使用它,它會限制JSP的編譯能力.
import="{package.class | package.* }, ..."
需要導入的Java包的列表,這些包就作用于程序段,表達式,以及聲明

session="true | false"
設定客戶是否需要HTTP Session.(學過ASP的人,應該對它不陌生)如果它為true,那么Session是有用的。
如果它有false,那么你就不能使用session對象,以及定義了scope=session的<jsp:useBean>元素。這樣的使用會導致錯誤.

缺省值是true.
buffer="none | 8kb | sizekb"

buffer的大小被out對象用于處理執行后的JSP對客戶瀏覽器的輸出。缺省值是8kb
autoFlush="true | false"?
設置如果buffer溢出,是否需要強制輸出,如果其值被定義為true(缺省值),輸出正常,如果它被設置為false,如果這個buffer溢出,就會導致一個意外錯誤的發生.如果你把buffer設置為none,那么你就不能把autoFlush設置為false. isThreadSafe="true | false"?
設置Jsp文件是否能多線程使用。缺省值是true,也就是說,JSP能夠同時處理多個用戶的請求,如果設置為false,一個jsp只能一次處理一個請求

info="text"

一個文本在執行JSP將會被逐字加入JSP中,你能夠使用Servlet.getServletInfo方法取回。errorPage="relativeURL"???
設置處理異常事件的JSP文件。

isErrorPage="true | false"??
設置此頁是否為出錯頁,如果被設置為true,你就能使用exception對象.

contentType="mimeType [ ;charset=characterSet ]" | "text/html;charset=ISO-8859-1"
設置MIME類型 。缺省MIME 類型是: text/html, 缺省字符集為 ISO-8859-1.

<c:import url="header.jsp"/>

    • <c:import>行為和<jsp:include>相同;
    • 另外它還可以從外部資源引入數據,比如不同的web應用程序;??
    • 執行時機:在請求處理階段。?

轉載于:https://www.cnblogs.com/qiufeihai/p/3625048.html

總結

以上是生活随笔為你收集整理的jsp学习之包含——include的全部內容,希望文章能夠幫你解決所遇到的問題。

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