Jsp和Jstl

一.JSP注釋

1、顯式注釋

在客戶端可以看到的注釋

1、繼承HTML風(fēng)格的注釋? ? &lt;!-- HTML注釋 --&gt; <!-- 這是HTML注釋 -->

2、隱式注釋

在客戶端不可以看到的注釋

1、JSP自己的注釋? ? &lt;%-- JSP注釋-- % &gt;? <%-- 這是JSP注釋 --%>

2、繼承Java風(fēng)格的注釋 // 單行注釋? ? /*多行注釋*/

二.scriptlet


Scriptlet(腳本小程序),所有嵌入在 HTML 代碼中的 Java 程序。

在 JSP 中一共有三種 Scriptlet 代碼:都必須使用 Scriptlet 標記出來

1、java腳本段

語法:&lt;% // java腳本段? %&gt;

特點:可以定義局部變量,編寫java語句;被編譯之后會生成在service方法體中

2、聲明

語法:&lt;%! // 聲明全局變量? %&gt;

特點:可以聲明全局變量,方法等;被編譯之后生成在servlet類體中

3、輸出

語法:&lt;%= %&gt;

特點:可以輸出變量、表達式或字面量;被編譯之后生成在service方法體中;相當(dāng)于out.print()輸出

三.page指令

格式:&lt;%@page 屬性="屬性值" 屬性="屬性值"? %&gt;

常用屬性:

language:支持的語言,當(dāng)前只支持java

contentType:響應(yīng)類型及編碼格式

pageEncoding:編碼

import:導(dǎo)包,只有import這個屬性可以多次設(shè)置,其他屬性只能設(shè)置一次

isErrorPage:當(dāng)前頁面是否是處理報錯的頁面,默認是false

errorPage:當(dāng)頁面報錯時該跳轉(zhuǎn)到什么頁面

注:JSP頁面的編碼以contentType中的charset的值為準,如果未設(shè)置charset值,則以pageEncoding的屬性值為準;如果都沒有,則默認ISO-8859-1

四.include


1.include 靜態(tài)包含

格式:<%@include file="文件的路徑" %>

特點:相當(dāng)于將包含的頁面中的內(nèi)容直接直接非復(fù)制粘貼;最終只會生成一個java文件;不能有同名變量。

優(yōu)缺點:運行效率高一點點。耦合性較高,不夠靈活。

2.include動態(tài)包含

無參:

格式:<jsp:include page="包含的頁面路徑"></jsp:include>

有參

<jsp:include page="包含的頁面路徑">

<jsp:param value="參數(shù)值" name="參數(shù)名"/>

</jsp:include>

特點:相當(dāng)于方法的調(diào)用,會生成多個java文件;可以出現(xiàn)同名變量

注:

1、<jsp:include>雙標簽中不能包含任何內(nèi)容,包括換行和空格,除非有參數(shù)

2、<jsp:param>的value屬性值支持表達式,name屬性值不支持

The name attribute of the jsp:param standard action does not accept any expressions

五.九大內(nèi)置對象

request:用于獲取請求信息,比如請求參數(shù)及客戶端信息。

response:用于響應(yīng)客戶端請求。

out:用于輸出響應(yīng)信息。

session:代表瀏覽器與服務(wù)器的一次會話。HTTP協(xié)議是無狀態(tài)協(xié)議,響應(yīng)結(jié)束后,會話終斷,不會保存會話信息,session

就是為了保存會話信息產(chǎn)生的。

application:代表應(yīng)用程序,主要用于保存整個應(yīng)用層面的信息。

page:代表當(dāng)前頁面。

pageContext:頁面上下文,通過該對象可以獲取其他對象,比如request/session/application等。

config:用于獲取服務(wù)器的配置信息,初始化Servlet。

exception:用于獲取頁面的錯誤信息。

1.JSP四大域?qū)ο?/p>

pageContext.setAttribute("uname", "zhangsan");

request.setAttribute("uname", "lisi");

session.setAttribute("uname", "wangwu");

application.setAttribute("uname", "zhaoliu");

2.兩個輸出對象

out.print("Hello");

response.getWriter().write("Hello!");

3. 配置對象

out.print(config.getServletName());

// 當(dāng)前jsp本身

//page

// 異常信息對象 (只有jsp頁面設(shè)置屬性isErrorPage="true"才能使用)

out.print(exception.getMessage());

六.EL表達式

語法:${域?qū)ο蟮膋ey值}

注意:

1、el表達式一般操作的是域?qū)ο笾械闹?,無法操作局部變量

2、el的取值范圍有4個:pageContext、request、session、application,分別代表當(dāng)前頁、一次請求、一次會話、整個應(yīng)用程序

3、el表達式默認從小范圍到大范圍取值,如果取到值則顯示,未取到則繼續(xù)往大范圍找,找到即止;如果最終未找到,則顯示空字符串""

4、獲取指定域?qū)ο蠓秶闹?,可以通過pageScope、requestScope、sessionScope、applicationScope

5、el表達式獲取JavaBean中的屬性時,屬性需要提供get方法(javax.el.PropertyNotFoundException: Property 'uname' not readable on type com.shsxt.po.User)

隱含對象


七.jstl

1.jstl的使用

1、導(dǎo)入jstl標簽庫所需要的jar包 (jstl.jar、standard.jar)

2、在jsp頁面引入指定的庫

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

3、使用標簽庫

<c:標簽名? 屬性名="屬性值" ></c:標簽名>

2.if 標簽

if 標簽先對某個條件進行測試,如果該條件運算結(jié)果為 true, 則處理它的主體內(nèi)容.

測試結(jié)果保存在一個 Boolean 對象中,并創(chuàng)建一個限域變量來引用 Boolean 對象。

可以利用 var 屬性設(shè)置限域變量名,利用 scope 屬性來指定其作用范圍。

if 的語法有兩種形式:

沒有主體內(nèi)容

<c:if test="返回boolean類型的條件" var="設(shè)置限域變量名的,用來接收返回值的" scope="限域?qū)ο蟮姆秶?></c:if>

有主體內(nèi)容

<c:if test="返回boolean類型的條件" var="設(shè)置限域變量名的,用來接收返回值的" scope="限域?qū)ο蟮姆秶?>

要執(zhí)行的代碼

</c:if>

常用屬性:

test:返回boolean類型的條件,一般操作的都是域?qū)ο笾械闹?/p>

var:用來定義接收返回值的變量,但是該變量是存在域?qū)ο笾械?/p>

scope:var設(shè)置的變量名所存放的域范圍page\request\session\application

注:在jstl中沒有else標簽,如果出現(xiàn)需要else的情況,可以使用兩個if,設(shè)置相反的;兩個條件來實現(xiàn)

3. choose、when 和 otherwise 標簽

1、choose標簽中至少包含一個when標簽,可以沒有otherwise標簽 (Illegal "choose" without child "when" tag)

2、choose標簽中只能有when標簽和otherwise標簽(Illegal child tag in "c:choose" tag: "c:if" tag)

3、when標簽和otherwise標簽可以包含其他標簽

4、choose標簽和otherwise標簽沒有屬性,when標簽必須有test屬性

5、otherwise標簽必須放在最后一個when標簽之后 (Illegal "c:when" after "c:otherwise" tag in "c:choose" tag.)

6、當(dāng)所有的when標簽的條件不成立時,才會執(zhí)行otherwise標簽

4.forEach標簽

1、遍歷主體內(nèi)容多次

<c:forEach begin="開始的數(shù)" end="結(jié)束的數(shù)" var="接收當(dāng)前被循環(huán)的成員" step="循環(huán)的間隔數(shù)"></c:forEach>

2、遍歷集合、map等

<c:forEach items="被循環(huán)的對象" var="接收當(dāng)前被循環(huán)的成員" varStatus="當(dāng)前成員的相關(guān)信息"></c:forEach>

常用屬性:

items:需要被遍歷的對象(可以是集合、map等,都是存放在域?qū)ο笾械臄?shù)據(jù))

var:限域變量名,用來每次被遍歷到的成員

5.formatNumber 標簽

formatNumber 標簽 該標簽用指定的格式或精度來格式化數(shù)字.

<fmt:formatNumber>標簽有如下屬性:

使用該標簽時,有兩種語法:

無主體內(nèi)容

<fmt:formatNumber value="要被格式化的數(shù)值" type="被格式化的類型"/> <br>

常用屬性:

value:要被格式化的數(shù)值

type:被格式化的類型

number數(shù)值型

percent百分比類型

currency貨幣類型

var:限域變量名,用來接收格式化好的返回值;如果設(shè)置var屬性,則值不會再輸出,需要使用el表達式輸出var設(shè)置的值

6.formatDate 標簽

使用指定的風(fēng)格或模式格式化日期和時間,<fmt:formatDate>標簽有如下屬性:

<fmt:formatDate value="${mydate }"/><br>

<fmt:formatDate value="${mydate }" type="date"/><br>

<fmt:formatDate value="${mydate }" type="time"/><br>

<fmt:formatDate value="${mydate }" type="both"/><br>

? <fmt:formatDate value="${mydate }" type="both" dateStyle="long" timeStyle="full"/><br>

? <fmt:formatDate value="${mydate }" pattern="yyyy/MM/dd HH:mm:ss"/><br>

? <fmt:formatDate value="${mydate }" pattern="HH:mm:ss yyyy/MM/dd" var="date1"/>${date1 }<br>

7.parseDate 標簽

此標簽為指定區(qū)域解析日期和時間的字符串表示法。即解析一個代表著日期或時間的字 符串。兩種形式:

<fmt:parseDate value="${date3 }"></fmt:parseDate><br>

<fmt:parseDate value="${date1 }" type="both"></fmt:parseDate><br>

<fmt:parseDate value="${date2 }" pattern="dd-MM-yyyy"></fmt:parseDate><br>

<fmt:parseDate value="${date3 }" pattern="yyyy-MM-dd"></fmt:parseDate><br>

8.parseNumber 標簽

利用 parseNumber 標簽可以將數(shù)字、貨幣或百分比的字符串表示法解析成指定語言環(huán) 境的數(shù)字。即解析一個代表著數(shù)字,貨幣或百分比的字符串。兩種語法形式:

<fmt:parseNumber value="¥100.00" type="currency"></fmt:parseNumber> <br>

<fmt:parseNumber value="100%" type="percent"></fmt:parseNumber> <br>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • JSP總結(jié)(經(jīng)典) day1 JSP 定義: 1)Java Server Page, Java EE 組件,本...
    91數(shù)據(jù)閱讀 3,645評論 0 13
  • JSP 基本結(jié)構(gòu)JSP 頁面組成:模板文本(HTML,XML,純文本),JSP 元素;JSP 元素:腳本元素,指令...
    jslancer閱讀 1,096評論 0 11
  • 1.學(xué)習(xí)內(nèi)容 JSP技術(shù)入門和常用指令 JSP的內(nèi)置對象&標簽介紹 EL表達式&EL的內(nèi)置對象 2.JSP技術(shù)入門...
    WendyVIV閱讀 2,330評論 1 18
  • 一、jsp介紹 jsp作用jsp全稱java server pages(java服務(wù)器頁面),本質(zhì)是一個servl...
    圣賢與無賴閱讀 1,395評論 0 14
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,258評論 0 38

友情鏈接更多精彩內(nèi)容