JSP教程(二)
<%@ directive attribute=”value”%>
而且,您可以將多個(gè)屬性寫(xiě)在一個(gè)語(yǔ)句中:
<%@ directive attribute1="value1"
attribute2="value2"
attributeN="valueN" %>
有兩種主要的directive:
page,允許您做一些類(lèi)似import classes的事,定義servlet的超類(lèi)(Superclass),
mso-hansi-font-family:"">等;
include,允許您將文件插入servlet類(lèi)中(當(dāng)JSP文件翻譯為servlet時(shí))。
一、JSP page Directive
語(yǔ)法:
<%@ page
[ language="java" ]
[ extends="package .class" ]
[ import="{package .class | .*}, ..." ]
[ session="true|false" ]
[ buffer="none|8kb|sizekb" ]
[ autoFlush="true|false" ]
[ isThreadSafe="true|false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" |
"text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true|false" ]
%>
Page directive mso-hansi-font-family:"">允許您定義一些區(qū)分大小寫(xiě)的屬性:
(1)import = “package.class”或 import = “package.class1,..,package.classN”。
mso-hansi-font-family:"">
您可以定想要import的packages。例如:
<%@ page import="java.util.*" %>
import屬性是這幾個(gè)屬性中唯一一個(gè)可以在一個(gè)JSP中出現(xiàn)多次的。
(2)contenType = “MIME=Type” 或contentType=“MIME-Type;charset=Character-Set”
mso-hansi-font-family:"">
它指定輸出的MIME類(lèi)型。缺省為“text/html”。例如:
<%@ page contentType="text/plain" %>"
在scriptlet中等價(jià)于:
<% response.setContentType("text/plain"); %>
(3)isThreadSafe = “true | false”.如果值為“true”(缺?。┍硎荆簩⑦M(jìn)行普通的servlet處理,多個(gè)請(qǐng)求將被一個(gè)servlet實(shí)例并行處理,在這種情況下,編程人員同步訪問(wèn)多個(gè)實(shí)例變量。值為“false”時(shí)表示:servlet將實(shí)現(xiàn)單線程模式(SingleThreadModel),不管請(qǐng)求是順序提交還是并發(fā)出現(xiàn),都將提供不同的分離的servlet實(shí)例。
?。?)session=”true | false”。 如果值為“true”(缺?。┍硎荆侯A(yù)定義變量session(繼承HttpSession)應(yīng)該綁定到一個(gè)已存在的session,否則就應(yīng)該創(chuàng)建一個(gè)并將之綁定。值為“false”時(shí)表示:將不使用session變量,如果試圖使用,將在JSP向servlet轉(zhuǎn)化時(shí)出現(xiàn)錯(cuò)誤。
?。?)buffer = “sizekb | none”。為JspWriter輸出確定緩沖的大小。缺省由服務(wù)器而定,但至少要有8kb。
(6)autoflush=”true | false”。 如果值為“true mso-hansi-font-family:"">”(缺?。┍硎荆寒?dāng)緩沖滿時(shí)將自動(dòng)清空,值為“false mso-hansi-font-family:"">”時(shí)表示:當(dāng)緩沖滿時(shí)遞出一個(gè)異常,這很少使用。當(dāng)buffer=”none”是若用false mso-hansi-font-family:"">值是不合法的。
(7)extends=”package.class”。這將為servlet產(chǎn)生一個(gè)超類(lèi)。請(qǐng)?zhí)貏e謹(jǐn)慎的使用這一功能,因?yàn)椋?wù)器也許已經(jīng)定義了一個(gè)。
(8)info = “message”。定義一個(gè)可以通過(guò)調(diào)用getServletInfo方法得到的串。
(9)errorPage = “URL”。指定一個(gè)JSP mso-hansi-font-family:"">頁(yè)面來(lái)處理任何一個(gè)可拋出的但當(dāng)前頁(yè)面并未處理的意外錯(cuò)誤。
(10)isErrorPage = “true | false”。指定當(dāng)前頁(yè)面是否可以處理來(lái)自另一個(gè)頁(yè)面的錯(cuò)誤,缺省為“false”。
(11)language = “java” mso-hansi-font-family:"">。指出以下將使用的語(yǔ)言。不過(guò),不必為這一屬性費(fèi)心,因?yàn)?,“java mso-hansi-font-family:"">”既是缺省又是唯一合法的選擇。
二JSP include Directive 這種directive 使您可以在JSP轉(zhuǎn)換為servlet時(shí)將一個(gè)文件包含進(jìn)來(lái)。語(yǔ)法:
<jsp:include page="{relativeURL | <%= expression %>}" flush="true" />mso-hansi-font-family:";mso-font-kerning: 0pt">或
<jsp:include page="{relativeURL | <%= expression %>}" flush="true" >
<jsp:param name="parameterName"
value="{parameterValue | <%=expression %>}" />+
</jsp:include>
URL mso-hansi-font-family:"">通常相對(duì)于指向它的JSP頁(yè)面,但是,普遍使用相對(duì)“URL”,您可以使用一個(gè)斜杠“/”作為URL的開(kāi)始來(lái)告知系統(tǒng)URL mso-hansi-font-family:"">相對(duì)的Web server的主路徑。被包含的文件將以規(guī)則的JSP形式來(lái)解析,因此,您可以在其中使用靜態(tài)HTML,scripting elements,directives,和 actions。
讓我們來(lái)看一個(gè)例子,許多站點(diǎn)在每一個(gè)頁(yè)面上包含一個(gè)小型的導(dǎo)航條。它通常出現(xiàn)在頁(yè)面的頂部或左右側(cè),并包含在每一個(gè)頁(yè)面里。這用include directive 來(lái)實(shí)現(xiàn)是很自然的,若用規(guī)則的HTML mso-hansi-font-family:"">來(lái)把這些語(yǔ)句拷到每一個(gè)頁(yè)面無(wú)疑是個(gè)夢(mèng)魘。請(qǐng)看下列代碼:
<HTML>
<HEAD>
<TITLE> JSP教程</TITLE>
</HEAD>
<BODY>
<%@ include file="/navbar.html" %>
<!— 本頁(yè)面的其他部分... -->
</BODY>
</HTML>
因?yàn)槲募窃陧?yè)面被轉(zhuǎn)換時(shí)插入的,因此,如果導(dǎo)航條改變了,您需要將所有指向它的JSP mso-hansi-font-family:"">頁(yè)面全部重新編譯一次。如果您的導(dǎo)航條并不常改變這樣做無(wú)疑是高效的,但是,如果您的被包含文件更改頻繁,則建議您使用jsp:include action(后面將談到)來(lái)替代,它在頁(yè)面被請(qǐng)求時(shí)才包含文件。
相關(guān)文章
Eclipse插件開(kāi)發(fā)之新手入門(mén)
Eclipse插件開(kāi)發(fā)之新手入門(mén)...2006-10-10struts2+spring+hibernate分頁(yè)代碼[比較多]
J2EE系統(tǒng)中分頁(yè)顯示,修改dao層,service層,action層,兩個(gè)分頁(yè)類(lèi)文件,代碼如下2008-09-09JSP使用Servlet作為控制器實(shí)現(xiàn)MVC模式實(shí)例詳解
這篇文章主要介紹了JSP使用Servlet作為控制器實(shí)現(xiàn)MVC模式的方法,以完整實(shí)例形式較為詳細(xì)的分析了MVC模式的原理及Servlet實(shí)現(xiàn)MVC模式的原理與相關(guān)注意事項(xiàng),需要的朋友可以參考下2015-09-09jsp中利用jquery+ajax在前后臺(tái)之間傳遞json格式參數(shù)
前后臺(tái)之間的參數(shù)傳遞一直是個(gè)問(wèn)題,經(jīng)過(guò)一段時(shí)間的實(shí)驗(yàn)琢磨,終于搞定,先把經(jīng)驗(yàn)?zāi)贸鰜?lái)與大家分享,希望可以讓新手朋友們少走彎路2013-10-10解決cannot be cast to javax.servlet.Filter 報(bào)錯(cuò)的問(wèn)題
本文主要介紹解決cannot be cast to javax.servlet.Filter 報(bào)錯(cuò)的問(wèn)題,這里提供解決辦法,有編程的朋友遇到此錯(cuò)誤可以參考下2016-08-08JSP中的PreparedStatement對(duì)象操作數(shù)據(jù)庫(kù)的使用教程
這篇文章主要介紹了JSP中的PreparedStatement對(duì)象操作數(shù)據(jù)庫(kù)的使用教程,文中舉了一些使用PreparedStatement預(yù)處理語(yǔ)句對(duì)象進(jìn)行MySQL增刪查改的例子,需要的朋友可以參考下2016-04-04使用JSP實(shí)現(xiàn)簡(jiǎn)單的用戶(hù)登錄注冊(cè)頁(yè)面示例代碼解析
這篇文章主要介紹了使用JSP實(shí)現(xiàn)簡(jiǎn)單的用戶(hù)登錄注冊(cè)頁(yè)面示例代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08