亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

direktori cari
JSP 基礎(chǔ)教程 JSP 開(kāi)發(fā)環(huán)境搭建 JSP 結(jié)構(gòu) JSP 生命周期 JSP 語(yǔ)法 JSP 指令 JSP 動(dòng)作元素 JSP 隱式對(duì)象 JSP 客戶端請(qǐng)求 JSP 服務(wù)器響應(yīng) JSP HTTP 狀態(tài)碼 JSP 表單處理 JSP 過(guò)濾器 JSP Cookies 處理 JSP Session JSP 文件上傳 JSP 日期處理 JSP 頁(yè)面重定向 JSP 點(diǎn)擊量統(tǒng)計(jì) JSP 自動(dòng)刷新 JSP 發(fā)送郵件 JSP 高級(jí)教程 JSP 標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSTL) <c:out> 標(biāo)簽 <c:set> 標(biāo)簽 <c:remove> 標(biāo)簽 <c:catch> 標(biāo)簽 <c:if> 標(biāo)簽 <c:choose> <c:import> 標(biāo)簽 <c:forEach> <c:param> 標(biāo)簽 <c:redirect> 標(biāo)簽 <fmt:formatNumber>標(biāo)簽 <fmt:parseNumber> 標(biāo)簽 <fmt:formatDate> 標(biāo)簽 <fmt:parseDate> 標(biāo)簽 <fmt:bundle> 標(biāo)簽 <fmt:setLocale> 標(biāo)簽 <fmt:setBundle> 標(biāo)簽 <fmt:timeZone> 標(biāo)簽 <fmt:setTimeZone> 標(biāo)簽 <fmt:message> 標(biāo)簽 <fmt:requestEncoding> 標(biāo)簽 <sql:setDataSource> 標(biāo)簽 <sql:query> 標(biāo)簽 <sql:update> 標(biāo)簽 <sql:param> 標(biāo)簽 <sql:dateParam> 標(biāo)簽 <sql:transaction> 標(biāo)簽 <x:out> 標(biāo)簽 <x:parse> 標(biāo)簽 <x:set> 標(biāo)簽 <x:if> 標(biāo)簽 <x:forEach> 標(biāo)簽 <x:choose> <x:transform> 標(biāo)簽 <x:param> 標(biāo)簽 fn:contains()函數(shù) fn:containsIgnoreCase()函數(shù) fn:endsWith()函數(shù) fn:escapeXml()函數(shù) fn:indexOf()函數(shù) fn:join()函數(shù) fn:length()函數(shù) fn:replace()函數(shù) fn:split()函數(shù) fn:startsWith()函數(shù) fn:substring()函數(shù) fn:substringAfter()函數(shù) fn:substringBefore()函數(shù) fn:toLowerCase()函數(shù) fn:toUpperCase()函數(shù) fn:trim()函數(shù) JSP 連接數(shù)據(jù)庫(kù) JSP XML 數(shù)據(jù)處理 JSP JavaBean JSP 自定義標(biāo)簽 JSP 表達(dá)式語(yǔ)言 JSP 異常處理 JSP 調(diào)試 JSP 國(guó)際化
watak

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


JSP表達(dá)式語(yǔ)言(EL)使得訪問(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ì)象訪問(wèn)各種各樣的JavaBean屬性。

舉例來(lái)說(shuō),上面的<jsp:setProperty>標(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ǔ)言。比如<jsp:text>標(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)估的話,需要使用page指令將isELIgnored屬性值設(shè)為true:

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

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


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

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

操作符 描述
. 訪問(wèn)一個(gè)Bean屬性或者一個(gè)映射條目
[] 訪問(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ù)的名稱,param1指的是第一個(gè)參數(shù),param2指的是第二個(gè)參數(shù),以此類推。比如,有函數(shù)fn:length,在JSTL庫(kù)中定義,可以像下面這樣來(lái)獲取一個(gè)字符串的長(zhǎng)度:

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

要使用任何標(biāo)簽庫(kù)中的函數(shù),您需要將這些庫(kù)安裝在服務(wù)器中,然后使用<taglib>標(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ì)象,您可以訪問(wèn)request對(duì)象。比如,訪問(wèn)request對(duì)象傳入的查詢字符串,就像這樣:

${pageContext.request.queryString}

Scope對(duì)象

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

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


param和paramValues對(duì)象

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

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

接下來(lái)的例子表明了如何訪問(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)訪問(wèn)信息頭,通過(guò)使用 request.getHeader方法和request.getHeaders方法。

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

接下來(lái)的例子表明了如何訪問(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é)果如下:

jsp-expression-language

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

關(guān)于我們 聯(lián)系我們 留言板

手冊(cè)網(wǎng)

Artikel sebelumnya: Artikel seterusnya: