溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSP技術(shù)有什么用

發(fā)布時間:2021-11-22 11:00:38 來源:億速云 閱讀:167 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關JSP技術(shù)有什么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

JSP技術(shù)是以Java語言作為腳本語言的,JSP網(wǎng)頁為整個服務器端的Java庫單元提供了一個接口來服務于HTTP的應用程序。JSP使Java代碼和特定的預定義動作可以嵌入到靜態(tài)頁面中。JSP句法增加了被稱為JSP動作的XML標簽,它們用來調(diào)用內(nèi)建功能。另外,可以創(chuàng)建JSP標簽庫,然后像使用標準HTML或XML標簽一樣使用它們。標簽庫提供了一種和平臺無關的擴展服務器性能的方法。

JSP被JSP編譯器編譯成Java Servlets。一個JSP編譯器可以把JSP編譯成JAVA代碼寫的servlet然后再由JAVA編譯器來編譯成機器碼,

也可以直接編譯成二進制碼。

示例:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" %> <html> <head> <title>最早的jsp寫法</title> </head> <body> <%   // 控制臺打印一臺話  System.out.println("最早的jsp寫法,java做為角本語言加入jsp網(wǎng)頁當中,做相關的交互工作.");  %>  <%  // java語言的循環(huán)  for(int i=0;i<10;i++)  {   %>  test<br>  <%  }  %> </body> </html>

JSP 介紹之標準標記庫與EL表達式語言

JSP 標準標記庫(JSP Standard Tag Library,JSTL)是一個實現(xiàn) Web 應用程序中常見的通用功能的定制標記庫集,這些功能包括

迭代和條件判斷、數(shù)據(jù)管理格式化、XML 操作以及數(shù)據(jù)庫訪問。

EL 提供了一些標識符、存取器和運算符,用來檢索和操作駐留在 JSP 容器中的數(shù)據(jù)。

JSTL語法及參數(shù)

JSTL包含以下的標簽:

常用的標簽:如<c:out>、<c:remove>、<c:catch>、<c:set>等

條件標簽:如<c:if><c:when>、<c:choose>、<c:otherwise>等

URL標簽:如<c:import>、<c:redirect>和<c:url>等

XML標簽:如<xml:out>等

國際化輸出標簽:如<fmt:timeZone>等

SQL標簽:如<sql:query>、<sql:update>、<sql:transaction>等

一般用途的標簽:

1.<c:out>

沒有Body時的語法

<c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/>

有Body時的語法

<c:out value=”value” [escapeXml=”{true|false}”]>

這里是Body部分

</c:out>

名字 類型 描述

value Object 將要輸出的表達式

escapeXml boolean 確定以下字符:<,>,&,’,”在字符串中是否被除數(shù),默認為true

default Object 如果vaule計算后的結(jié)果是null,那么輸出這個默認值

2.<c:set>

這個標簽用于在某個范圍(page、request、session、application等)中使用某個名字設定特定的值,或者設定某個已經(jīng)存在的

javabean對象的屬性。他類似于<%request.setAttrbute(“name”,”value”);%>

語法1:使用value屬性設定一個特定范圍中的屬性。

<c:set value=”value” var=”varName” [scope=”{page|request|session|application}”]/>

語法2:使用value屬性設定一個特定范圍中的屬性,并帶有一個Body。

<c:set var=”varName” [scope=”{page|request|session|application}”]>

Body部分

</c:set>

語法3:設置某個特定對象的一個屬性。

<c:set value=”value” target=”target” property=”propertyName”/>

語法4:設置某個特定對象的一個屬性,并帶有一個Body。

<c:set target=”target” property=”propertyName”>

Body部分

</c:set>

名字 類型 描述

value Object 將要計算的表到式。

var String 用于表示value 值的屬性,如果要在其他標簽中使用,就是通過這 個var指定的值來進行的。它相當于在標簽定義了一

個變量,并且這個變量只能在標簽中的一個。

scope String var的有效范圍,可以是page|request|session|application中的一個

target String 將要設置屬性的對象,它必須是javabean或則java.util.Map對象

property Object 待設定的Target對象中的屬性名字,比如在javabean中有個name屬性,提供了setUserId方法,那么這里填userId

。

3.<c:remove>

<c:remove var=”varName” [scope=”{page|request|session|application}”]/>

4.<c:catch>

這個標簽相當于捕獲在它里邊的標簽拋出的異常對象

<c:catch [var=”varName”]> //var是異常的名字

內(nèi)容

</c:catch>

條件標簽

1. <c:if>

語法1:無Body情況

<c:if test=”testCondition” var=”varName” [scope=”page|request|session|application”]/>

語法2:有Body的情況

<c:if test=”testCondition” var=”varName” [scope=”page|request|session|application”]>

Body內(nèi)容

</c:if>

名字 類型 描述

test Boolean 表達式的條件,相當于if()中的條件判斷語句。

var String 表示這個語句的名字。

scope String var這個變量的作用范圍。

2.<c:choose>

語法:<c:choose>

Body內(nèi)容(<c:when>和<c:otherwise>子標簽)

</c:choose>

注意:它的Body只能由以下元素組成:

1) 空格

2) 0或多個<c:when>子標簽,<c:when>必須在<c:otherwise>標簽之前出現(xiàn).

3) 0個或多個<c:otherwise>子標簽。

3.<c:when>

代表的是<c:choose>的一個條件分支,只能在<c:choose>中使用

語法:<c:when test=”testCondition”> //test是boolean類型,用于判斷條件真假

Body語句

</c:when>

4.<c:otherwise>

代表的是<c:choose>中的***選擇。必須在***出現(xiàn)

<c:otherwise>

內(nèi)容

</c:otherwise>

迭代標簽

1.<c:forEach>

語法1:在Collection中迭代

<c:forEach[var=”varName”] items=”collection” [varStatus=”varStatusName”]

[begin=”begin”] [end=”end”] [step=”step”]

Body內(nèi)容

</c:foeEach>

語法2:迭代固定的次數(shù).

<c:forEach [var=”varName”] [varStatus=”varStatusName”]

[begin=”begin”] [end=”end”] [step=”step”]

Body內(nèi)容

</c:foeEach>

名字 類型 描述

var String 迭代的參數(shù),它是標簽參數(shù),在其他標簽中通過它來引用這個標簽中的內(nèi)容。

Items Collection、ArrayList、 要迭代的items集合.

Iterator、Map、String、

Eunmeration等

VarStatus String 表示迭代的狀態(tài),可以訪問迭代自身的信息

Begin int 表示開始迭代的位置。

End int 表示結(jié)束迭代的位置。

Step int 表示迭代移動的步長,默認為1。

URL相關的標簽

1.<c:import>

語法1:資源的內(nèi)容使用String對象向外暴露

<c:import url=”url” [context=”context”]

[var=”varName”] [scope=”{page|request|session|application}”] [charEncoding=”charEncoding”]>

內(nèi)容

</c:import>

語法2:資源的內(nèi)容使用Reader對象向外暴露。

<c:import url=”url” [context=”context”]

varReader=”varReaderName” [charEncoding=”charEncoding”]>

內(nèi)容

</c:import>

名字 類型 描述

url String 待導入資源的URL,可以是相對路徑和絕對路徑,并且可以導入其他主機資源

context String 當使用相對路徑訪問外部context資源時,context指定了這個資源的名字。

var String 參數(shù)的名字。

scope String var參數(shù)的作用范圍。

cahrEncoding String 輸入資源的字符編碼。

varReader String 這個參數(shù)的類型是Reader,用于讀取資源。

2.<c:redirct>

語法1:沒有Body的情況.

<c:redirect url=”value” [context=”context”]/>

語法2:有Body情況下,在Body中指定查詢的參數(shù)

<c:redirect url=”value” [context=”context”]>

<c:param name=”name” value=”value”/>

</c:redirect>

3.<c:url>

語法1:沒有Body

<c:url value=”value” [context=”context”] [var=”varName”] [scope=”{page|request|session+application}”]/>

語法2:有Body

<c:url value=”value” [context=”context”] [var=”varName”] [scope=”{page|request|session+application}”]>

<c:param name=”name” value=”value”/>

</c:url>

名字 類型 描述

value String URL值

context String 當使用相對路徑訪問外部context資源時,context指定了這個資源的名字

var String 標識這個URL標量。

Scope String 變量作用范圍。

SQL相關的標簽

1.<sql:setDataSource>

2.<sql:query>

3.<sql:update>

4.<transaction>

5.<param>

示例:

<%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <html> <head> <title>jstl的jsp寫法</title> </head> <body> <!-- 設置變量testset --> <c:set var="testset" value="ok" />  <!-- 判斷變量testset是否與ok值相等,如果相等就顯示“判斷成功” --> <c:if test="${testset == 'ok'}"> 判斷成功<br> </c:if>  <!-- 循環(huán)標簽以0開始10結(jié)束,每循環(huán)的增量是1,并把當前的值賦值給變量bl --> <c:forEach begin="0" end="10" step="1" var="bl">  ${bl} test<br>                                  </c:forEach>  </body> </html>

感謝各位的閱讀!關于“JSP技術(shù)有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

jsp
AI