JSP

JSP

java服務器頁面
JSP全名為JavaServerPages,中文名叫java服務器頁面,[1]其根本是一個簡化的Servlet設計,它是由SunMicrosystems公司倡導、許多公司參與一起建立的一種動态網頁技術标準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML(标準通用标記語言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标記(tag),從而形成JSP文件,後綴名為(*.jsp)。用JSP開發的Web應用是跨平台的,既能在Linux下運行,也能在其他操作系統上運行。它實現了Html語法中的java擴展(以形式)。JSP與Servlet一樣,是在服務器端執行的。通常返回給客戶端的就是一個HTML文本,因此客戶端隻要有浏覽器就能浏覽。
    網站名稱: 别名: 創始人: 總部地點: 主辦單位: 網站類型: 網站口号: ICP備案号: 中文名:爪哇服務器頁面 英文名:Java Server Pages 縮寫:JSP 本質:動态網頁技術标準

語言标準

句法

一個JSP頁面可以被分為以下幾部份:

靜态數據,如HTML

JSP指令,如include指令

JSP腳本元素和變量

JSP動作

用戶自定義标簽

靜态數據

靜态數據在輸入文件中的内容和輸出給HTTP響應的内容完全一緻。此時,該JSP輸入文件會是一個沒有内嵌JAVA或動作的HTML頁面。而且,客戶端每次請求都會得到相同的響應内容。

JSP指令

JSP指令控制JSP編譯器如何去生成servlet,以下是可用的指令:

包含指令include–包含指令通知JSP編譯器把另外一個文件完全包含入當前文件中。效果就好像被包含文件的内容直接被粘貼到當前文件中一樣。這個功能和C預處理器所提供的很類似。被包含文件的擴展名一般都是"jspf"(即JSPFragment,JSP碎片):

<%@includefile="somefile.jsp"%>

頁面指令page–頁面指令有以下幾個選項:

<%@pageimport="java.util.*"%>//exampleimport導入樣例<%@pagecontentType="text/html"%>//examplecontentType頁面類型樣例<%@pageisErrorPage=false%>//examplefornonerrorpage無錯頁面樣例<%@pageisThreadSafe=true%>//exampleforathreadsafeJSP安全線程JSP樣例

注意:在同一個JSP文件中隻有"import"導入頁面指令可以被多次使用。

标簽庫指令taglib–标簽庫指令描述了要使用的JSP标簽庫。該指令需要指定一個前綴prefix(和C++的命名空間很類似)和标簽庫的描述URI:

<%@taglibprefix="myprefix"uri="taglib/mytag.tld"%>

JSP腳本

标準腳本變量

以下是永遠可用的腳本變量:

out–JSPWriter用來寫入響應流的數據

page–servlet自身

pageContext–一個PageContext實例包括和整個頁面相聯系的數據,一個給定的HTML頁面可以在多個JSP之間傳遞。

request–HTTPrequest對象

response–HTTPresponse對象

session–

腳本元素

有三個基本的腳本元素,作用是使JAVA代碼可以直接插入servlet.

一種是聲明标簽,在JAVASERVLET的類體中放入一個變量的定義。靜态的數據成員也可以如此定義。

一種是腳本标簽,在JAVASERVLET的類的_jspService()方法中放入所包含的語句。

一種是表達式标簽,在JAVASERVLET的類中放入待賦值的表達式,表達式注意不能以分号結尾。

JSP動作

JSP動作是一系列可以調用内建于網絡服務器中的功能的XML标簽。JSP提供了以下動作:

技術方法

為了快速方便地進行動态網站的開發,JSP在以下幾個方面做了改進,使其成為快速建立跨平台的動态網站的首選方案。

1.将内容的生成和顯示進行分離

用JSP技術,Web頁面開發人員可以使用HTML或者XML标識來設計和格式化最終頁面,并使用JSP标識或者小腳本來生成頁面上的動态内容(内容是根據請求變化的,例如請求賬戶信息或者特定的一瓶酒的價格等)。生成内容的邏輯被封裝在标識和JavaBeans組件中,并且捆綁在腳本中,所有的腳本在服務器端運行。由于核心邏輯被封裝在标識和JavaBeans中,所以Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響内容的生成。

在服務器端,JSP引擎解釋JSP标識和腳本,生成所請求的内容(例如,通過訪問JavaBeans組件,使用JDBC技術訪問數據庫或者包含文件),并且将結果以HTML(或者XML)頁面的形式發送回浏覽器。這既有助于作者保護自己的代碼,又能保證任何基于HTML的Web浏覽器的完全可用性。

可重用組件

絕大多數JSP頁面依賴于可重用的、跨平台的組件(JavaBeans或者EnterpriseJavaBeans組件)來執行應用程序所要求的複雜的處理。開發人員能夠共享和交換執行普通操作的組件,或者使得這些組件為更多的使用者和客戶團體所使用。基于組件的方法加速了總體開發過程,并且使得各種組織在他們現有的技能和優化結果的開發努力中得到平衡。

采用标識

Web頁面開發人員不會都是熟悉腳本語言的編程人員。JSP技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML标識中進行動态内容生成所需要的。标準的JSP标識能夠訪問和實例化JavaBeans組件,設置或者檢索組件屬性,下載Applet,以及執行用其他方法更難于編碼和耗時的功能。

适應平台

幾乎所有平台都支持Java,JSP+JavaBeans幾乎可以在所有平台下通行無阻。從一個平台移植到另外一個平台,JSP和JavaBeans甚至不用重新編譯,因為Java字節碼都是标準的與平台無關的。

數據庫連接

Java中連接數據庫的技術是JDBC,Java程序通過JDBC驅動程序與數據庫相連,執行查詢、提取數據等操作。Sun公司還開發了JDBC-ODBCbridge,利用此技術Java程序可以訪問帶有ODBC驅動程序的數據庫,大多數數據庫系統都帶有ODBC驅動程序,所以Java程序能訪問諸如Oracle、Sybase、MSSQLServer和MSAccess等數據庫。

此外,通過開發标識庫,JSP技術可以進一步擴展。第三方開發人員和其他人員可以為常用功能創建自己的标識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同标識一樣的執行特定功能的構件來進行工作。

JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,并且能擴展到支持企業級的分布式應用中。作為采用Java技術家族的一部分,以及Java2(企業版體系結構)的一個組成部分,JSP技術能夠支持高度複雜的基于Web的應用。由于JSP頁面的内置腳本語言是基于Java的,而且所有的JSP頁面都被編譯成為JavaServlets,所以JSP頁面具有Java技術的所有好處,包括健壯的存儲管理和安全性。作為Java平台的一部分,JSP擁有Java編程語言“一次編寫,各處運行”的特點。

語言特點

優點

(1)一次編寫,到處運行。除了系統之外,代碼不用做任何更改。

(2)系統的多平台支持。基本上可以在所有平台上的任意環境中開發,在任意環境中進行系統部署,在任意環境中擴展。相比ASP的局限性JSP的優勢是顯而易見的。

(3)強大的可伸縮性。從隻有一個小的Jar文件就可以運行Servlet/JSP,到由多台服務器進行集群和負載均衡,到多台Application進行事務處理,消息處理,一台服務器到無數台服務器,Java顯示了一個巨大的生命力。

(4)多樣化和功能強大的開發工具支持。這一點與ASP很像,Java已經有了許多非常優秀的開發工具,而且許多可以免費得到,并且其中許多已經可以順利的運行于多種平台之下。

(5)支持服務器端組件。web應用需要強大的服務器端組件來支持,開發人員需要利用其他工具設計實現複雜功能的組件供web頁面調用,以增強系統性能。JSP可以使用成熟的JAVABEANS組件來實現複雜商務功能。

缺點

(1)與ASP也一樣,Java的一些優勢正是它緻命的問題所在。正是由于為了跨平台的功能,為了極度的伸縮能力,所以極大的增加了産品的複雜性。

(2)Java的運行速度是用class常駐内存來完成的,所以它在一些情況下所使用的内存比起用戶數量來說确實是“最低性能價格比”了。

語言組成

内置對象

request

request對象是javax.servlet.httpServletRequest類型的對象。該對象代表了客戶端的請求信息,主要用于接受通過HTTP協議傳送到服務器的數據。(包括頭信息、系統信息、請求方式以及請求參數等)。request對象的作用域為一次請求。

response

response代表的是對客戶端的響應,主要是将JSP容器處理過的對象傳回到客戶端。response對象也具有作用域,它隻在JSP頁面内有效。

session

1.什麼是session:從一個客戶打開浏覽器并連接到服務器開始,到客戶關閉浏覽器離開這個服務器結束,被稱為一個會話。當一個客戶訪問一個服務器時,可能會在這個服務器的幾個頁面之間反複連接,反複刷新一個頁面,服務器應當通過某種辦法知道這是同一個客戶,這就需要session對象。

2.session對象的ID:當一個客戶首次訪問服務器上的一個JSP頁面時,JSP引擎産生一個session對象,同時分配一個String類型的ID号,JSP引擎同時将這個ID号發送到客戶端,存放在Cookie中,這樣session對象和客戶之間就建立了一一對應的關系。當客戶再訪問連接該服務器的其他頁面時,不再分配給客戶新的session對象,直到客戶關閉浏覽器後,服務器端該客戶的session對象才取消,并且和客戶的會話對應關系消失。當客戶重新打開浏覽器再連接到該服務器時,服務器為該客戶再創建一個新的session對象。

3.session對象存在一定時間過期問題,所以存在session中的名值對會在一定時間後失去,可以通過更改session有效時間來避免這種情況。同時編程時盡量避免将大量有效信息存儲在session中,request是一個不錯的替代對象。

application

1.什麼是application:

服務器啟動後就産生了這個application對象,當客戶在所訪問的網站的各個頁面之間浏覽時,這個application對象都是同一個,直到服務器關閉。但是與session不同的是,所有客戶的application對象都是同一個,即所有客戶共享這個内置的application對象。

2.application對象常用方法:

(1)publicvoidsetAttribute(Stringkey,Objectobj):将參數Object指定的對象obj添加到application對象中,并為添加的對象指定一個索引關鍵字。

(2)publicObjectgetAttribute(Stringkey):獲取application對象中含有關鍵字的對象。

out

out對象用于在Web浏覽器内輸出信息,并且管理應用服務器上的輸出緩沖區。在使用out對象輸出數據時,可以對數據緩沖區進行操作,及時清除緩沖區中的殘餘數據,為其他的輸出讓出緩沖空間。待數據輸出完畢後,要及時關閉輸出流。

page

page對象代表JSP本身,隻有在JSP頁面内才是合法的。page隐含對象本質上包含當前Servlet接口引用的變量,類似于Java編程中的this指針。

config

config對象的主要作用是取得服務器的配置信息。通過pageContext對象的getServletConfig()方法可以獲取一個config對象。當一個Servlet初始化時,容器把某些信息通過config對象傳遞給這個Servlet。開發者可以在web.xml文件中為應用程序環境中的Servlet程序和JSP頁面提供初始化參數。

exception

java.lang.Throwable的實例,該實例代表其他頁面中的異常和錯誤。隻有當頁面是錯誤處理頁面,即編譯指令page的isErrorPage屬性為true時,該對象才可以使用。常用的方法有getMessage()和printStackTrace()等。

pageContext

pageContext對象的作用是取得任何範圍的參數,通過它可以獲取JSP頁面的out、request、reponse、session、application等對象。pageContext對象的創建和初始化都是由容器來完成的,在JSP頁面中可以直接使用pageContext對象。

開發入門

JSP開發入門2

安裝好你的機器來使用JSP

你将會需要Java2軟件開發工具(JSDK),它原來的名稱是Java開發工具(JDK)以及JavaServer網站開發工具(JSWDK),Tomcat,或是其它支持JSP的網絡服務器。Sun免費提供JSDK與JSWDK來供Windows,Solaris,以及Linux平台使用。

如果你想要在你的網絡服務器上使用JSP,但服務器本身并不支持JSP與Javaservlets,你可以試試看Allaire的Jrun,它的作用就像是針對Netscape企業版與FastTrack服務器、微軟的網際網絡信息服務器(IIS)與個人網絡服務器(PWS)、Apache、以及其它服務器的網絡服務器附加設備。你也可以使用Apache網絡服務器的Java版本,最新的JSWDK裡有提供。

下載與安裝你需要的組件

發布的1.2.2-001,JSDK可下載的版本是以可安裝的壓縮形式。下載的文件大約是20MB,可提供完整的Java發展環境,讓你能建立利用标準API為核心的Java解決之道。然而,你的網絡服務器需要應用到JSP的唯一一件事是Java編譯器。要讓網絡服務器知道編譯器的位置,将環境變量JAVA.HOME設到JSDK的安裝目錄。如果你是在Windows上安裝并且接受預設目錄,将這行程序代碼setJAVA.HOME=C:1.2.2加到你的autoexec.bat檔案并且重新開機。

在安裝好JSDK之後,下載并且安裝JSWDK或beta版的Tomcat,以Java為主的Apache網絡服務器。安裝在哪裡并不重要,重要的是你可以找到它。一般而言,它會放在上層目錄,這種方式可以讓你取代JSWDK或JSDK的網絡服務器,不需要移動其它的網絡服務器。在你安裝好這個檔案之後,你就可以準備發展JSP了。

在你正确的安裝JSWDK之後,執行startserver指令文件來激活網絡服務器,預設通訊端口為8080。要看你在激活服務器之後是均C有正确的安裝工具,你可以加載範例JSP檔案中的任何一個(http://localhost:8080/examples/jsp/)。如果你能夠成功的執行一個範例檔案,你可以知道你已經正确的設定好軟件了。如果你在激活服務器的控制台窗口看到錯誤訊息,那麼你需要解決這個問題。最常發生的問題是沒有設定(或者不正确設定)環境變量JAVA.HOME。要檢視環境設定,在DOS模式下鍵入set。

開始

解釋JSP語法之前,先建立一個顯示日期與時間的簡單網頁并且将它儲存成sample.jsp:

将這個檔案與你所有的HTML與JSP網頁放在你JSWDK安裝目錄下的網頁目錄裡.你可以在http://localhost:8080/sample.jsp下載此頁.當你第一次參觀這個網頁時,網站服務器會将JSP翻譯成Javaservlet程序代碼,那你就會看到的日期與時間.。

你已經下載,安裝,并且架構好發展環境,你已經準備好要了解JSP語法與建立你自己的JSP為主的解決之道。

JSP開發入門3

JSP語法的基本原理

安裝之後,接下來我們要讨論JSP的語法.如果要偷懶,你可以下載語法卡而如果你不熟悉Java的程序設計,你可能會想要參考Sun的使用手冊;然而,網站建立者不應該做太多的Java發展。除了幾個函數調用之外,出現在你JSP網頁上的Java程序代碼應該将它減到最少;

記住這點之後,讓我們先來看看JSP的編譯器指引與指令組件,之後我們将解釋JavaBeans與内部對象.JSP編譯器指引與指令組件有五種型态.JSP1.0之後,大部分的JSP是包含在以<%作為開始%>作為結束的單一卷标裡.新的JSP1.1規格已經發表了,它同時也與XML兼容.

JSP的編譯器指引與指令組件

編譯器指示<%@編譯器指示%>

聲明<%!聲明%>

表達式<%=表達式%>

程序代碼段/小型指令<%程序代碼片段%>

注釋<%--注釋--%>

編譯器指示

JSP的編譯器指示是針對JSP引擎。它們并不會直接産生任何看得見的輸出;相反的,它們是在告訴引擎如何處理其它的JSP網頁。它們永遠包含在<%@?%>卷标裡。兩個主要的指引是page與include。我們不會讨論taglib編譯器指引但它可以在JSP1.1裡用來建立自訂卷标。

你幾乎可以在你所有的JSP網頁最上面找到page編譯器指示。雖然這不是必須的,但它可以讓你指定到哪裡可以找到支持的Java類别這類的事:

<%@pageimport="java.util.Date"%>,

當發生Java問題的事件時應該将訊息傳送到哪裡:

<%@pageerrorPage="errorPage.jsp"%>,

以及你是?需要為使用者管理通話期的信息,可能存取多個網頁(稍後在JavaBeans裡會有更多通話期的讨論):

<%@pagesession="true"%>。

include編譯器指示讓你将你的内容分成幾個可管理的組件,就像那些有表頭或腳注的網頁。所包含的網頁可以是固定格式的HTML網頁或者是JSP内容的網頁:

<%@includefile="filename.jsp"%>。

宣告

JSP聲明讓你定義網頁層的變量,來儲存信息或定義支持的函式,讓JSP網頁的其餘部分能夠使用。如果你發現自己有太多的程序代碼,你最好将它們放在不同的Java類别裡。你可以在<%!?%>卷标裡找到聲明。記住要在變量聲明的後面加上分号,就跟任何有效的Java叙述的形式一樣:<%!inti=0;%>。

表達式

JSP裡有表達式,評估表達式的結果可以轉換成字符串并且直接使用在輸出網頁上。JSP運算是屬于<%=?%>卷标裡,并不包含分号,加引号字符串的無用部分。

<%=i%>

<%="Hello"%>。

程序代碼段/小型指令文件

JSP程序代碼片段或小型指令文件是包含在<%?%>卷标裡。當網絡服務器接受這段請求時,這段Java程序代碼會執行。小型指令文件可以是原始的HTML或XML,其内部的程序代碼片段可以讓你建立有條件的執行程序代碼,或者隻是一些使用另一塊程序代碼的東西。舉例來說,下列的程序代碼結合了表達式與小型指令文件,在H1,H2,H3,以及H4卷标裡顯示字符串"Hello"。小型指令文件不限于一行的原始程序代碼:

<%for(inti=1;i<=4;i++){%>

<%=i%>>Hello<%=i%>>

<%}%>。

注釋

最後一個主要JSP組件是嵌入式注釋。雖然你可以在你的檔案裡包含HTML注釋,如果使用者檢視網頁的原始碼,他們也會看到這些注釋。如果你不要讓使用者看到你的批注,你可以将它放在<%--?--%>卷标裡:

<%--針對服務器端的注釋--%>。

JSP開發入門4

JSP與JavaBean

雖然你可以在小型指令文件裡放入一大塊的程序代碼,但是大多數的Java程序代碼是屬于可以重複使用的組件,稱為JavaBean。JavaBean就跟ActiveX控件一樣:它們提供已知的功能,并且是為了可随時重複使用的目的而設計的。

JavaBean的價值在于它可以經由一組特性來使用,而這些特性則提供對JavaBean設定的存取。以人來作範例,此人就是JavaBean,而他的姓名,社會福利安全号碼,以及住址可以是特性。對于JSP網站,基本上你是将'JavaBean'動态的連接到你的網站。

假設JavaBean是在建立網站之前建好的,你要做的第一件事是告訴JSP網頁它所需要使用JavaBean.這工作可以用卷标來完成:.

卷标需要你以id屬性來辨識JavaBean.在這裡,你提供一個名稱讓JSP網頁來辨識JavaBean,除了id屬性之外,你也必須告訴網頁要到哪裡去找這個JavaBean,或者是它的Java類别名稱。類别屬性提供如何在各式方法之中找到它,最後一個需要的組件是scope屬性.有了範圍屬性的幫助,你可以告訴JavaBean,要它為單一網頁(預設)[scope="page"];為一個被請求的網頁[scope="request"];為通話期[scope="session"];或為整個應用程序[scope="application"]來維護它自己的信息.對于通話期範圍,你可以很容易的維護JSP網頁裡的項目,例如購物車。

一旦你宣告了JavaBean之後,你就可以存取它的特性來訂定它。要取得一特性的值,使用卷标。有了卷标,你可以指定要使用的JavaBean名稱(從useBean的id字段),以及你要取得值的特性。接着,真正的值就會放在輸出裡:.

要更改JavaBean的特性,你需要使用卷标.對這個卷标,你也需要辨認JavaBean以及要修正的特性,除此之外,你還需要提供新值.如果命名正确,這些可以直接經由規定的格式取得:;

要從一參數取得,你必須直接命名此特性以及參數:;

或是直接以名稱與值來設定:or"value=<%=expression%>/>.

有關JavaBean的最後一點:要讓網絡服務器可以找到JavaBean,你需要将它們的類别檔案放在特别位置。對JSWDK而言,最簡單的地方是在安裝目錄裡的類别目錄,例如jswdk-1.0.1classes.

JSP開發入門5

JSP的内部對象

最後一個與JSP語法有關的組件叫做内部對象.在JSP小型指令文件内,你可以存取這些内部對象來與執行JSP網頁的servlet環境相互作用。許多對内部對象的存取應該要簡化。然而,這些是範例,它們的存取都是可接受的,要完整的利用内部對象設定則需要對最新的JavaServletAPI有所了解。

下表列出你可以使用的内部對象。

内部對象說明

request客戶端請求,此請求會包含來自GET/POST請求的參數

response網頁傳回客戶端的響應

pageContext網頁的屬性是在這裡管理

session與請求有關的會話

applicationservlet正在執行的内容

out用來傳送響應的輸出流

config代碼片段配置對象

pageJSP網頁本身

exception針對錯誤網頁,未捕捉的例外

那麼,這些是做什麼的,而你應該如何使用它們呢?基本上,在你的小型指令文件裡,你可以使用它們來存取執行JSP程序代碼的servlet。為了避免談論到太多ServletAPI的細節,讓我們來檢視一些你可以利用它們來做的事:

不必使用表達式,你可以直接存取内部out對象來打印一些東西到response:

<%out.println("Hello");%>.

不必直接傳送參數到JavaBean,你可以借由請求對象來取得參數的值:

<%Stringname=request.getParameter("name");out.println(name);%>。

當你以JSP寫了許多的應用程序之後,如果你建立了JavaBeans或者發現你自己将太多的Java原始碼放入你的JSP檔案,你需要建立支持的Java類别,這樣可以鼓勵重複使用并且降低JSP網頁轉換時所需要的時間。當你需要建立Java類别時,你必須:

将JDSWK的安裝目錄in目錄加到你的PATH。在你的autoexec.bat檔案的PATH行的最後,加入C:1.2.2in;。

以下面的指令将JAR檔案複制到jrelibext目錄:

copyc:jswdk-1.0.1libservlet.jarc:jdk1.2.2jrelibext.

常見問題

1、如何顯示目錄列表:

我們在本機測試程序時,一般都習慣在浏覽器中就能遍曆到某個目錄下都有哪些文件,這就需要web服務器支持目錄列表:

打開文件conf/web.xml,找到以下代碼:

将其中的false改成true

2、配置error-page:(指定處理錯誤的頁面)

打開文件D:demoWEB-INFweb.xml:

在…中間加入:

(錯誤代碼為404的錯誤導向到NotFound.jsp)

(當系統發生500錯誤即服務器内部錯誤時,跳轉到錯誤處理頁面error.jsp)

(當系統發生java.lang.NullException(即空指針異常)時,跳轉到錯誤處理頁面error.jsp)

提醒:

以上頁面都需要做大一點(>=2kB),否則不起作用。

原因:tomcat把這樣的頁面字節限制在不少于多少字節。

3、jsp頁面出現亂碼如何解決?

在頁頭加上:

4、jsp中兩種包含頁面的方式?

第一種:動作标簽;例如:

第二種:指令标簽;例如:

JSP标準标簽庫

根據JSTL标簽所提供的功能,可以将其分為5個類别。

核心标簽

格式化标簽

SQL标簽

XML标簽

JSTL函數

JSTL庫安裝

ApacheTomcat安裝JSTL庫步驟如下:

從Apache的标準标簽庫中下載的二進包(jakarta-taglibs-standard-current.zip)。下載地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

下載jakarta-taglibs-standard-1.1.1.zip包并解壓,将jakarta-taglibs-standard-1.1.1/lib/下的兩個jar文件:standard.jar和jstl.jar文件拷貝到/WEB-INF/lib/下。

使用任何庫,你必須在每個JSP文件中的頭部包含标簽。

核心标簽

核心标簽是最常用的JSTL标簽。引用核心标簽庫的語法如下:

<%@taglibprefix="c"uri="http://java.sun.com/jsp/jstl/core"%>

标簽

描述

用于在JSP中顯示數據,就像<%=...>

用于保存數據

用于删除數據

用來處理産生錯誤的異常狀況,并且将錯誤信息儲存起來

與我們在一般程序中用的if一樣

本身隻當做和的父标簽

的子标簽,用來判斷條件是否成立

的子标簽,接在标簽後,當标簽判斷為false時被執行

檢索一個絕對或相對URL,然後将其内容暴露給頁面

基礎叠代标簽,接受多種集合類型

根據指定的分隔符來分隔内容并叠代輸出

用來給包含或重定向的頁面傳遞參數

重定向至一個新的URL.

使用可選的查詢參數來創造一個URL

格式化标簽

JSTL格式化标簽用來格式化并輸出文本、日期、時間、數字。引用格式化标簽庫的語法如下:

<%@taglibprefix="fmt"uri="http://java.sun.com/jsp/jstl/fmt"%>

标簽

描述

使用指定的格式或精度格式化數字

解析一個代表着數字,貨币或百分比的字符串

使用指定的風格或模式格式化日期和時間

解析一個代表着日期或時間的字符串

綁定資源

指定地區

綁定資源

指定時區

指定時區

顯示資源配置文件信息

設置request的字符編碼

SQL标簽

JSTLSQL标簽庫提供了與關系型數據庫(Oracle,MySQL,SQLServer等等)進行交互的标簽。引用SQL标簽庫的語法如下:

<%@taglibprefix="sql"uri="http://java.sun.com/jsp/jstl/sql"%>

标簽

描述

指定數據源

運行SQL查詢語句

運行SQL更新語句

将SQL語句中的參數設為指定值

将SQL語句中的日期參數設為指定的java.util.Date對象值

在共享數據庫連接中提供嵌套的數據庫行為元素,将所有語句以一個事務的形式來運行

XML标簽

JSTLXML标簽庫提供了創建和操作XML文檔的标簽。引用XML标簽庫的語法如下:

<%@taglibprefix="x"uri="http://java.sun.com/jsp/jstl/xml"%>

在使用xml标簽前,你必須将XML和XPath的相關包拷貝至你的lib下:

XercesImpl.jar:

标簽

描述

與<%=...>,類似,不過隻用于XPath表達式

解析XML數據

設置XPath表達式

判斷XPath表達式,若為真,則執行本體中的内容,否則跳過本體

叠代XML文檔中的節點

和的父标簽

的子标簽,用來進行條件判斷

的子标簽,當判斷為false時被執行

将XSL轉換應用在XML文檔中

與共同使用,用于設置XSL樣式表

JSTL函數

JSTL包含一系列标準函數,大部分是通用的字符串處理函數。引用JSTL函數庫的語法如下:

<%@taglibprefix="fn"uri="http://java.sun.com/jsp/jstl/functions"%>

函數

描述

fn:contains()

測試輸入的字符串是否包含指定的子串

fn:containsIgnoreCase()

測試輸入的字符串是否包含指定的子串,大小寫不敏感

fn:endsWith()

測試輸入的字符串是否以指定的後綴結尾

fn:escapeXml()

跳過可以作為XML标記的字符

fn:indexOf()

返回指定字符串在輸入字符串中出現的位置

fn:join()

将數組中的元素合成一個字符串然後輸出

fn:length()

返回字符串長度

fn:replace()

将輸入字符串中指定的位置替換為指定的字符串然後返回

fn:split()

将字符串用指定的分隔符分隔然後組成一個子字符串數組并返回

fn:startsWith()

測試輸入字符串是否以指定的前綴開始

fn:substring()

返回字符串的子集

fn:substringAfter()

返回字符串在指定子串之後的子集

fn:substringBefore()

返回字符串在指定子串之前的子集

fn:toLowerCase()

将字符串中的字符轉為小寫

fn:toUpperCase()

将字符串中的字符轉為大寫

fn:trim()

移除首位的空白符

相關詞條

相關搜索

其它詞條