掃描二維碼關注

首頁 APP開(kāi)發小(xiǎo)程序開(kāi)發 微信公衆号 網站建設 營銷推廣 經典案列 産品服務 關于我們

“學習(xí)不僅是掌握知識”

向書(shū)本學習(xí),還要向實踐學習(xí)、向生活學習(xí)。消化已有(yǒu)知識,
而且要力求有(yǒu)所發現、有(yǒu)所發明(míng)、有(yǒu)所創造

JSP及語法概要

2019/3/3 16:48:37

JSP及語法概要

JavaServer Pages(JSP)使得我們能(néng)夠分(fēn)離(lí)頁面的(de)靜态HTML和(hé)動态部分(fēn)。HTML可(kě)以用(yòng)任何通常使用(yòng)的(de)Web制(zhì)作工(gōng)具編寫,編寫方式也(yě)和(hé)原來的(de)一樣;動态部分(fēn)的(de)代碼放(fàng)入特殊标記之内,大(dà)部分(fēn)以“<%”開(kāi)始,以“%>”結束。例如(rú),下面是一個(gè)JSP頁面的(de)片斷,如(rú)果我們用(yòng)http://host/OrderConfirmation.jsp?title=Core+Web+Programming這個(gè)URL打開(kāi)該頁面,則結果顯示“Thanks for ordering Core Web Programming”。
Thanks for ordering
<I><%= request.getParameter("title") %></I>

JSP頁面文(wén)件(jiàn)通常以.jsp爲擴展名,而且可(kě)以安裝到(dào)任何能(néng)夠存放(fàng)普通Web頁面的(de)地(dì)方。雖然從代碼編寫來看,JSP頁面更象普通Web頁面而不象Servlet,但(dàn)實際上(shàng),JSP最終會(huì)被轉換成正規的(de)Servlet,靜态HTML直接輸出到(dào)和(hé)Servlet service方法關聯的(de)輸出流。

JSP到(dào)Servlet的(de)轉換過程一般在出現第一次頁面請求時進行(xíng)。因此,如(rú)果你(nǐ)希望第一個(gè)用(yòng)戶不會(huì)由于JSP頁面轉換成Servlet而等待太長的(de)時間,希望确保Servlet已經正确地(dì)編譯并裝載,你(nǐ)可(kě)以在安裝JSP頁面之後自己請求一下這個(gè)頁面。

另外也(yě)請注意,許多Web服務器(qì)允許定義别名,所以一個(gè)看起來指向HTML文(wén)件(jiàn)的(de)URL實際上(shàng)可(kě)能(néng)指向Servlet或JSP頁面。

除了普通HTML代碼之外,嵌入JSP頁面的(de)其他(tā)成分(fēn)主要有(yǒu)如(rú)下三種:腳本元素(Scripting Element),指令(Directive),動作(Action)。腳本元素用(yòng)來嵌入Java代碼,這些Java代碼将成爲轉換得到(dào)的(de)Servlet的(de)一部分(fēn);JSP指令用(yòng)來從整體上(shàng)控制(zhì)Servlet的(de)結構;動作用(yòng)來引入現有(yǒu)的(de)組件(jiàn)或者控制(zhì)JSP引擎的(de)行(xíng)爲。爲了簡化腳本元素,JSP定義了一組可(kě)以直接使用(yòng)的(de)變量(預定義變量),比如(rú)前面代碼片斷中的(de)request就是其中一例。

注意本文(wén)以JSP 1.0規範爲基礎。和(hé)0.92版相(xiàng)比,新版本的(de)JSP作了許多重大(dà)的(de)改動。雖然這些改動隻會(huì)使JSP變得更好,但(dàn)應注意1.0的(de)JSP頁面幾乎和(hé)早期的(de)JSP引擎完全不兼容。

JSP語法概要表 JSP元素 語法 說明(míng) 備注

JSP表達式 <%= expression %> 計(jì)算表達式并輸出結果。 等價的(de)XML表達是:
<jsp:expression>
expression
</jsp:expression>

可(kě)以使用(yòng)的(de)預定義變量包括:request,response,out,session,application,config,pageContext。這些預定義變量也(yě)可(kě)以在JSP Scriptlet中使用(yòng)。

JSP Scriptlet <% code %> 插入到(dào)service方法的(de)代碼。 等價的(de)XML表達是:
<jsp:scriptlet>
code
</jsp:scriptlet>

JSP聲明(míng) <%! code %> 代碼被插入到(dào)Servlet類(在service方法之外)。 等價的(de)XML表達是:
<jsp:declaration>
code
</jsp:declaration>

page指令 <%@ page att="val" %> 作用(yòng)于Servlet引擎的(de)全局性指令。 等價的(de)XML表達是
<jsp:directive.page att="val"\>。

合法的(de)屬性如(rú)下表,其中粗體表示默認值:

import="package.class"
contentType="MIME-Type"
isThreadSafe="true|false"
session="true|false"
buffer="size kb|none"
autoflush="true|false"
extends="package.class"
info="message"
errorPage="url"
isErrorPage="true|false"
language="java"  

include指令 <%@ include file="url" %> 當JSP轉換成Servlet時,應當包含本地(dì)系統上(shàng)的(de)指定文(wén)件(jiàn)。 等價的(de)XML表達是:

<jsp:directive.include  file="url"\>. 其中URL必須是相(xiàng)對URL。

利用(yòng)jsp:include動作可(kě)以在請求的(de)時候(而不是JSP轉換成Servlet時)引入文(wén)件(jiàn)。

JSP注釋 <%-- comment --%> 注釋;JSP轉換成Servlet時被忽略。 如(rú)果要把注釋嵌入結果HTML文(wén)檔,使用(yòng)普通的(de)HTML注釋标記<-- comment -->。
jsp:include動作 <jsp:include
page="relative URL"
flush="true"/> 當Servlet被請求時,引入指定的(de)文(wén)件(jiàn)。 如(rú)果你(nǐ)希望在頁面轉換的(de)時候包含某個(gè)文(wén)件(jiàn),使用(yòng)JSP include指令。
注意:在某些服務器(qì)上(shàng),被包含文(wén)件(jiàn)必須是HTML文(wén)件(jiàn)或JSP文(wén)件(jiàn),具體由服務器(qì)決定(通常根據文(wén)件(jiàn)擴展名判斷)。
 
jsp:useBean動作 <jsp:useBean att=val*/> 或者
<jsp:useBean att=val*>
...
</jsp:useBean> 尋找或實例化一個(gè)Java Bean


深圳市南山區南山街(jiē)道南海(hǎi)大(dà)道西(xī)桂廟路(lù)北陽光(guāng)華藝大(dà)廈1棟4F、4G-04

咨詢電話(huà):136 8237 6272
大(dà)客戶咨詢:139 0290 5075
業(yè)務QQ:195006118
技術(shù)QQ:179981967

更多可(kě)以了解的(de)信息

客戶案列
新聞資訊
資質榮譽
團隊風采
項目進度查詢

售前QQ咨詢
QQ溝通 項目QQ溝通

精銳軟件(jiàn)

Copyright© 2018-2023 深圳市無窮大軟件技術有限公司 All Rights Reserved. 京ICP證000000号 公安備案号:粵公網安備44030502009460号