黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

JSP教程
JSP高級(jí)教程

JSP表達(dá)式語(yǔ)言

JSP表達(dá)式語(yǔ)言(EL)使得訪(fǎng)問(wèn)存儲(chǔ)在JavaBean中的數(shù)據(jù)變得非常簡(jiǎn)單。JSP EL既可以用來(lái)創(chuàng)建算術(shù)表達(dá)式也可以用來(lái)創(chuàng)建邏輯表達(dá)式。在JSP EL表達(dá)式內(nèi)可以使用整型數(shù),浮點(diǎn)數(shù),字符串,常量true、false,還有null。

一個(gè)簡(jiǎn)單的語(yǔ)法

典型的,當(dāng)您需要在JSP標(biāo)簽中指定一個(gè)屬性值時(shí),只需要簡(jiǎn)單地使用字符串即可:

<jsp:setProperty name="box" property="perimeter" value="100"/>

JSP EL允許您指定一個(gè)表達(dá)式來(lái)表示屬性值。一個(gè)簡(jiǎn)單的表達(dá)式語(yǔ)法如下:

${expr}

其中,expr指的是表達(dá)式。在JSP EL中通用的操作符是"."和"[]"。這兩個(gè)操作符允許您通過(guò)內(nèi)嵌的JSP對(duì)象訪(fǎng)問(wèn)各種各樣的JavaBean屬性。

舉例來(lái)說(shuō),上面的標(biāo)簽可以使用表達(dá)式語(yǔ)言改寫(xiě)成如下形式:

<jsp:setProperty name="box" property="perimeter"                   value="${2*box.width+2*box.height}"/>

當(dāng)JSP編譯器在屬性中見(jiàn)到"${}"格式后,它會(huì)產(chǎn)生代碼來(lái)計(jì)算這個(gè)表達(dá)式,并且產(chǎn)生一個(gè)替代品來(lái)代替表達(dá)式的值。

您也可以在標(biāo)簽的模板文本中使用表達(dá)式語(yǔ)言。比如標(biāo)簽簡(jiǎn)單地將其主體中的文本插入到JSP輸出中:

<jsp:text>
<h1>Hello JSP!</h1>
</jsp:text>

現(xiàn)在,在<jsp:text>標(biāo)簽主體中使用表達(dá)式,就像這樣:

<jsp:text>
Box Perimeter is: ${2*box.width + 2*box.height}
</jsp:text>

在EL表達(dá)式中可以使用圓括號(hào)來(lái)組織子表達(dá)式。比如${(1 + 2) * 3}等于9,但是${1 + (2 * 3)} 等于7。

想要停用對(duì)EL表達(dá)式的評(píng)估的話(huà),需要使用page指令將isELIgnored屬性值設(shè)為true:

<%@ page isELIgnored ="true|false" %>

這樣,EL表達(dá)式就會(huì)被忽略。若設(shè)為false,則容器將會(huì)計(jì)算EL表達(dá)式。

EL中的基礎(chǔ)操作符

EL表達(dá)式支持大部分Java所提供的算術(shù)和邏輯操作符:

操作

符描述

.

訪(fǎng)問(wèn)一個(gè)Bean屬性或者一個(gè)映射條目

[]

訪(fǎng)問(wèn)一個(gè)數(shù)組或者鏈表的元素

( )

組織一個(gè)子表達(dá)式以改變優(yōu)先級(jí)

+

-

減或負(fù)

*

/ or div

% or mod

取模

== or eq

測(cè)試是否相等

!= or ne

測(cè)試是否不等

< or lt

測(cè)試是否小于

> or gt

測(cè)試是否大于

<= or le

測(cè)試是否小于等于

>= or ge

測(cè)試是否大于等于

&& or and

測(cè)試邏輯與

|| or or

測(cè)試邏輯或

! or not

測(cè)試取反

empty

測(cè)試是否空值

JSP EL中的函數(shù)

JSP EL允許您在表達(dá)式中使用函數(shù)。這些函數(shù)必須被定義在自定義標(biāo)簽庫(kù)中。函數(shù)的使用語(yǔ)法如下:

${ns:func(param1, param2, ...)}

ns指的是命名空間(namespace),func指的是函數(shù)的名稱(chēng),param1指的是第一個(gè)參數(shù),param2指的是第二個(gè)參數(shù),以此類(lèi)推。比如,有函數(shù)fn:length,在JSTL庫(kù)中定義,可以像下面這樣來(lái)獲取一個(gè)字符串的長(zhǎng)度:

${fn:length("Get my length")}

要使用任何標(biāo)簽庫(kù)中的函數(shù),您需要將這些庫(kù)安裝在服務(wù)器中,然后使用標(biāo)簽在JSP文件中包含這些庫(kù)。

JSP EL隱含對(duì)象

JSP EL支持下表列出的隱含對(duì)象:

隱含對(duì)象

描述

pageScope

page 作用域

requestScope

request 作用域

sessionScope

session 作用域

applicationScope

application 作用域

param

Request 對(duì)象的參數(shù),字符串

paramValues

Request對(duì)象的參數(shù),字符串集合

header

HTTP 信息頭,字符串

headerValues 

HTTP 信息頭,字符串集合

initParam 

上下文初始化參數(shù)

cookie

Cookie值

pageContext

當(dāng)前頁(yè)面的pageContext

您可以在表達(dá)式中使用這些對(duì)象,就像使用變量一樣。接下來(lái)會(huì)給出幾個(gè)例子來(lái)更好的理解這個(gè)概念。

pageContext對(duì)象

pageContext對(duì)象是JSP中pageContext對(duì)象的引用。通過(guò)pageContext對(duì)象,您可以訪(fǎng)問(wèn)request對(duì)象。比如,訪(fǎng)問(wèn)request對(duì)象傳入的查詢(xún)字符串,就像這樣:

${pageContext.request.queryString}

Scope對(duì)象

pageScope,requestScope,sessionScope,applicationScope變量用來(lái)訪(fǎng)問(wèn)存儲(chǔ)在各個(gè)作用域?qū)哟蔚淖兞俊?/p>

舉例來(lái)說(shuō),如果您需要顯式訪(fǎng)問(wèn)在applicationScope層的box變量,可以這樣來(lái)訪(fǎng)問(wèn):applicationScope.box。

param和paramValues對(duì)象

param和paramValues對(duì)象用來(lái)訪(fǎng)問(wèn)參數(shù)值,通過(guò)使用request.getParameter方法和request.getParameterValues方法。

舉例來(lái)說(shuō),訪(fǎng)問(wèn)一個(gè)名為order的參數(shù),可以這樣使用表達(dá)式:${param.order},或者${param["order"]}。

接下來(lái)的例子表明了如何訪(fǎng)問(wèn)request中的username參數(shù):

<%@ page import="java.io.*,java.util.*" %>
<%     String title = "Accessing Request Param"; %>
<html>
<head>
<title><% out.print(title); %></title>
</head>
<body>
<center>
<h1><% out.print(title); %></h1>
</center>
<div align="center">
<p>${param["username"]}</p>
</div>
</body>
</html>

param對(duì)象返回單一的字符串,而paramValues對(duì)象則返回一個(gè)字符串?dāng)?shù)組。

header和headerValues對(duì)象

header和headerValues對(duì)象用來(lái)訪(fǎng)問(wèn)信息頭,通過(guò)使用 request.getHeader方法和request.getHeaders方法。

舉例來(lái)說(shuō),要訪(fǎng)問(wèn)一個(gè)名為user-agent的信息頭,可以這樣使用表達(dá)式:${header.user-agent},或者${header["user-agent"]}。

接下來(lái)的例子表明了如何訪(fǎng)問(wèn)user-agent信息頭:

<%@ page import="java.io.*,java.util.*" %>
<%     String title = "User Agent Example"; %>
<html>
<head>
<title><% out.print(title); %></title>
</head>
<body>
<center>
<h1><% out.print(title); %></h1>
</center>
<div align="center">
<p>${header["user-agent"]}</p>
</div>
</body>
</html>

運(yùn)行結(jié)果如下:

header對(duì)象返回單一值,而headerValues則返回一個(gè)字符串?dāng)?shù)組。

全部教程
主站蜘蛛池模板: 99草在线| 日韩一区二区三区在线播放 | 国产成人影院 | 亚洲欧洲色天使日韩精品 | 视频成人永久免费看 | 欧美成人禁片在线www | 曰曰摸天天摸人人看久久久 | 午夜在线视频观看版 | 亚洲成人18| 波多野结衣中文字幕在线播放 | 天天色视频 | 深夜在线网址 | 在线国产一区 | 日韩看片| 制服 丝袜 亚洲 中文 综合 | 特级黄色网 | 麻豆成人在线视频 | 最近免费的中文字幕一 | 在线观看免费亚洲 | 在线免费观看www视频 | 国产啊v在线观看 | 国产一区二区三区在线视频 | 最近免费中文字幕mv | 午夜夜伦鲁鲁片 | 欧美一级淫片aaaaaaa视频 | 欧美1区 | 亚洲一区二区三区免费观看 | 免费午夜视频在线观看 | 成年黄网站色大免费全看 | 国产精品98视频全部国产 | 35pao免费视频 | 一级aaaaaa片毛片在线播放 | 成人国产三级在线播放 | 国99久9在线 | 免费 | 色婷婷色综合激情国产日韩 | 亚洲国产经典 | 青草草在线观看免费视频 | 污视频网站免费看 | 91亚洲导航深夜福利 | 日韩视频在线观看 | 日本黄色片一级 |