成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在JSP2.0中使用EL表達式語言

開發 后端
本文講述在JSP2.0中使用EL表達式語言。在JSP2.0之前,網頁作者只能使用表達式< %= aName %>訪問系統的值。而JSP2.0中可以使用EL數據訪問語言,從而方便地訪問和處理應用程序數據。

EL(表達式語言)是一種數據訪問語言,可以方便地訪問和處理應用程序數據,而無需使用scriptlet或者請求時(request-time)表達式的值。(不需要使用< % 和%>來獲得數據,EL使JSP頁面編寫人員擺脫了java語言,使用戶即使不懂JAVA也可以輕松編寫JSP程序.

在JSP2.0之前,網頁作者只能使用表達式< %= aName %>訪問系統的值,比如:

  1. < someTags:aTag attribute="< %= pageContext.getAttribute("aName") %>">  

或者

  1. < % = aCustomer.getAddress().getCountry() %>  

而表達式語言允許網頁作者使用簡單的語法訪問對象。比如要訪問一個簡單變量,可以像下面這樣寫:

  1. < someTags:aTag attribute="${aName}">  

而訪問JavaBeans屬性,可以使用:${aCustomer.address.country}

Tomcat對EL擴展表達式的支持和配置:

tomcat5.0默認支持EL,同時用戶可以在Web.xml文件中對整個web應用程序進行設置或者在每個頁面中單獨設置page指令來控制TOMCAT是否對EL的支持。

----------------------------

JSP2.0中EL擴展表達式語言的設置

有了JSP2.0,就可以使用EL擴展表達式了。對于一個單個JSP頁面,你可以使用定義page指令來設置jsp頁面是否支持EL。默認是支持EL(如果要頁面不支持EL,請設置為isELIgnored=true;

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

對于整個JSP應用程序,要修改WEB.XML配置(tomcat5.0.16默認是支持EL的);

  1. < jsp-property-group>   
  2. < description> For config the ICW sample application < /description>   
  3. < display-name>JSPConfiguration< /display-name>   
  4. < url-pattern>/jsp/datareset.jsp< /url-pattern>   
  5. < el-ignored>true<  / el-ignored>   
  6. < page-encoding>ISO-8859-1< /page-encoding>   
  7. < scripting-invalid>true< /scripting-invalid>   
  8. < include-prelude>/jsp/prelude.jspf< /include-prelude>   
  9. < include-coda>/jsp/coda.jspf< /include-coda>   
  10. < /jsp-property-group>   

----------------------------

JSP2.0中表達式運算符號:

EL表達式運算符包括算數運算符(+-*/),關系運算符(>< )和邏輯運算符(&& || !),還有empty 判斷值是否為空,同時EL能夠對字符串,數字等各種類型的數據之間的自動轉換,使EL 兼容了JAVASCRIPT等腳本語言的優點,擺脫了JAVA語言嚴格的數據類型限制,使用起來簡單,只需要幾分鐘就可以輕松掌握(對于不懂java的網頁編寫人員實在是一件好事)。

----------------------------

JSP2.0中各種運算符運算實例

以下是EL運算符列表,其中empty可以檢查某個值是否為空

運算符 說明

+ 加

- 減

* 乘

/或div 除

% 或 mod 模(求余)

== 或 = 等于

!= 或 != 不等于

<  或 lt 小于

>或gt 大于

< =或le 小于等于

>=或ge 大于等于

&& 或 and 邏輯與

|| 或 or 邏輯或

! 或 not 邏輯非

empty 檢查是否為空值

a ? b : c 條件運算符

----------------------------

EL表達式使用簡單,在網頁中"${}"表示是EL表達式。${1+1} 顯示為 2

----------------------------

JSP2.0中EL算術表達式 運算結果

  1. ${1} 1   
  2. ${1 + 2} 3   
  3. ${1.2 + 2.3} 3.5   
  4. ${-4 - 2} -6   
  5. ${21 * 2} 42   
  6. ${10%4} 2   
  7. ${10 mod 4} 2   
  8. ${1 <  2} true   
  9. ${1 lt 2} true   
  10. ${1 > (4/2)} false   
  11. ${4.0 >= 3} true   
  12. ${4.0 ge 3} true   
  13. ${100.0 eq 100} true   
  14. ${(10*10) != 100} false   
  15. ${(10*10) ne 100} false   
  16. ${(1==2) ? 3 : 4} 4  

----------------------------

內置的11個隱含對象:

為方便的獲得WEB應用程序的相關數據,EL表達式語言定義了一些隱含對象。隱含對象共有11個對象,(JSP中具有9個隱含對象,EL比JSP中具有更多的隱含對象,這樣EL比JSP更方便的獲取數據) 使用這些對象可以很方便的訪問Web 程序數據。

隱含對象包括Session(獲得當前web程序的Session值),cookie(獲得WEB程序的Cookie值),header,headerValues(獲得用戶的Http數據訪問頭部信息),Param和ParamValues(獲得用戶提交數據參數)等。

使用${隱含對象名稱["元素"]} 就可以獲得這個值了,例如${header("host")} 可以顯示http頭部中host的值,${param("username")},可以獲得顯示用戶表單提交的用戶. 使用${empty(param("username")} 可以判斷用戶提交表單是否為空等。(這樣比jsp1.2中使用request.getParamter("username") 要簡化和方便很多了)

----------------------------

隱含對象及隱含對象訪問實例

EL 表達式定義了11個隱含對象,使用這11個對象可以很方便的讀取到session,cookie,HttpHeader,用戶提交表單(param)等

隱含對象 內容

applicationScope 應用程序范圍內的scoped變量組成的集合

cookie 所有cookie組成的集合

header HTTP請求頭部,字符串

headerValues HTTP請求頭部,字符串集合

initParam 全部應用程序參數名組成的集合

pageContext 當前頁面的javax.servlet.jsp.PageContext對象

pageScope 頁面范圍內所有對象的集合

param 所有請求參數字符串組成的集合

paramValues 所有作為字符串集合的請求參數

requestScope 所有請求范圍的對象的集合

sessionScope 所有會話范圍的對象的集合

下面是獲取HTTP訪問頭部數據和用戶提交數據的示例

EL表達式 運算結果

${header["host"]} 這里得到HTTP連接頭部的host值

${header["accept"]} 這里獲得HTTP頭部的accept值

${header["user-agent"]} 這里獲得HTTP頭部的user-agent值

----------------------------

訪問應用程序數據

除了可以方便的訪問內置的隱含對象外,EL還可以方便的到應用程序數據,訪問應用程序數據使用兩種方式 . (點號運算符)訪問對象的屬性,也可以使用[] 來訪問數組元素(實際上EL中訪問隱含對象數據也是使用這兩種方式的)

表達式${data}表示名為data的scoped變量。可以使用點號(.)或方括號([])運算符從集合中檢索屬性值:(兩種數據訪問方式演示)

點號運算符用于訪問命名的屬性,比如表達式${customer.name}表示scoped變量customer的name屬性;

方括號運算符可用于檢索命名的屬性,比如在${customer[“name”]}中。也可以通過${customers[0]}的形式來訪問集合customers中的***項。

EL表達式語言同時還統一了對點號和方括號運算符的處理,因此${customer.name}與${ customer[“name”]}是等價的。

----------------------------

以下可以讀取用戶提交的信息,假設用戶提交信息為 ?name=myname&alies=now.net.cn(這里有兩種訪問方式,一種是使用[]來進行訪問,另外一種是使用"."來進行訪問,兩種訪問效果是一樣的。)

  1. ${param["name"] } myname   
  2. ${param.name} myname   
  3. ${param["alies"] } now.net.cn   
  4. ${param.alies} now.net.cn  

----------------------------

訪問應用程序數據需要進行以下幾個步驟:

1.編寫public類的static public 方法,只有static public的方法才能被標記表達試訪問。

----------------------------

JSP2.0中定義和使用函數

表達式語言允許你定義可在表達式中調用的函數。函數必須作為public類中的public static方法編寫。同時要將文件映射到TLD標志庫文件中。

為了說明函數的使用,我們舉一個簡單的例子,把兩個數相加。首先要編寫求兩數之和的Java方法代碼,如代碼示例所示,這里定義了一個靜態方法,它接收兩個字符串參數,把它們解析成整數并返回它們的和。

示例文件:Compute.java

  1. package jsp2.examples.el;   
  2. import java.util.*;   
  3. public class Compute {   
  4. public static int add(String x, String y) {   
  5. int a = 0;   
  6. int b = 0;   
  7. try {   
  8. a = Integer.parseInt(x);   
  9. b = Integer.parseInt(y);   
  10. }catch(Exception e) {}   
  11. return a + b;   
  12. }   
  13. }  

用javac把這段代碼編譯成功后,下一步就要把函數的簽名映射到標簽庫。

----------------------------

2.將方法映射到TLD表中

----------------------------

配置標記庫描述文件 函數描述符

  1. < function>   
  2. < description>add x and y< /description>   
  3. < name>add< /name>   
  4. < function-class>jsp2.examples.el.Compute   
  5. < /function-class>   
  6. < function-signature>int   
  7. add(java.lang.String,java.lang.String)   
  8. < /function-signature>   
  9. < /function>  

現在我們就可以編寫一個JSP頁面來使用這個函數。代碼示例5是包含兩個字段的一個表單,用戶輸入兩個數字并按下“求和”按鈕,就會調用上面的函數并把兩個數相加,結果在同一個頁面中顯示出來。

----------------------------

3.在JSP頁面中調用要引用的Taglib標記,然后就可以在jsp頁面中訪問了。

----------------------------

代碼示例5: math.jsp

  1. < %@ taglib prefix="my"   
  2. uri="http://jakarta.apache.org/tomcat/jsp2-example-taglib %>   
  3. < HEAD>   
  4. < TITLE>Functions< /TITLE>   
  5. < /HEAD>   
  6. < BODY>   
  7. < H3>Add Numbers< /H3>   
  8. < P>   
  9. < FORM action="math.jsp" method="GET">   
  10. X = < input type="text" name="x" value="${param["x"]}">   
  11. < BR>   
  12. Y = < input type="text" name="y" value="${param["y"]}">   
  13. < input type="submit" value="Add Numbers">   
  14. < /FORM>   
  15. < P>   
  16. The sum is: ${my:add(param["x"],param["y"])}   
  17. < /BODY>   
  18. < /HTML>  

----------------------------

【編輯推薦】

  1. JSP+JavaBean+Servlet結構工作原理淺析
  2. JSP Servlet開發最初那點事
  3. Java Servlet API文檔實用說明
  4. 無需修改代碼增強Servlet和JSP的安全性
  5. Tomcat下JSP、Servlet和Bean的配置
責任編輯:yangsai 來源: 百度空間
相關推薦

2022-01-16 07:48:33

腳本Bash 工具

2009-08-13 09:47:57

調用JSP EL表達式帶參數方法

2011-04-22 11:07:24

groovyJava

2009-03-16 14:01:24

正則表達式函數SQL

2021-09-13 18:39:50

ServeltELJSP

2023-10-07 08:25:09

Java處理工具正則表達式

2009-06-30 16:33:42

JSP2.0特性JSP教程

2009-07-03 18:31:04

JSP表達式

2009-07-03 18:11:02

JSP2.0簡單標志庫

2012-05-08 13:29:01

VB

2009-07-06 15:20:30

JSP表達式

2018-10-08 08:00:00

前端ReactJavaScript

2023-04-17 19:53:37

編程正則表達式

2024-12-25 15:09:38

Python字符串函數

2009-07-03 17:40:35

JSP2.0

2010-03-25 18:25:36

Python正則表達式

2009-06-15 17:24:59

Groovy正則表達式

2009-04-23 11:24:44

SQL正則表達式查詢

2024-10-09 16:35:20

Python正則表達式

2009-06-16 09:06:37

JavaMailJSP
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品视频在线一区 | 国产成人精品一区二区三区四区 | 国产日日操 | 91免费高清视频 | 日韩成人精品一区二区三区 | 成人欧美一区二区三区视频xxx | 日韩在线精品强乱中文字幕 | 日韩影音| 在线欧美小视频 | 免费黄色在线 | 午夜手机在线视频 | 久久久久久91 | 国产一区二区三区 | 久久9热 | 午夜久久久| 国产一级片免费在线观看 | 一区日韩| 中文字幕国产在线 | 日韩中文字幕 | 精品久久久久久久人人人人传媒 | 日韩成人av在线 | 在线亚洲一区二区 | 久草综合在线视频 | 国产特一级黄色片 | 久久这里只有精品首页 | 天天爽一爽 | 午夜看电影在线观看 | 色综合天天网 | 亚洲国产精品久久久 | 国产专区在线 | www视频在线观看 | 日韩美女在线看免费观看 | 久久久久国产精品www | 成人欧美一区二区三区视频xxx | 成人精品鲁一区一区二区 | 91在线精品视频 | 精品一区二区在线观看 | 先锋影音资源网站 | 欧美成人激情视频 | 亚洲一区二区三 | 欧美精品成人 |