C語言中文網 目錄
JSP教程
1 JSP是什么
2 JSP的特點與工作流程
3 JSP與ASP、PHP的比較
4 JSP頁面的組成及其元素
5 JSP開發環境搭建
6 第一個JSP程序
7 JSP注釋
8 JSP聲明
9 JSP中嵌入Java代碼
10 JSP表達式
11 JSP開發模式
12 JSP常見錯誤
13 JSP指令
14 JSP page指令
15 JSP include指令
16 JSP指令應用實例
17 JSP動作
18 JSP include動作
19 JSP param動作
20 JSP forward動作
21 JSP plugin動作
22 JSP useBean動作
23 JSP setProperty動作
24 JSP getProperty動作
25 JSP application 對象
26 JSP out對象
27 JSP request對象
28 JSP response對象
29 JSP session對象
30 JSP pageContext對象
31 JSP page對象
32 JSP config對象
33 JSP獲取并顯示字符串長度
34 什么是JavaBean
35 JavaBean工具
36 JavaBean規范
37 JavaBean屬性
38 JavaBean Scope屬性
39 JavaBean事件
40 JavaBean實現用戶登錄界面
41 Servlet是什么
42 Servlet生命周期
43 Servlet的類和方法
44 Servlet客戶端跳轉
45 EL是什么
46 EL表達式的基本語法及運算符的優先級
47 JSP EL 點(.)運算符和下標([])運算符
48 JSP EL算數運算符
49 JSP EL關系運算符
50 JSP EL邏輯運算符
51 JSP EL條件運算符
52 JSP EL empty空運算符
53 EL表達式中的常量與變量
54 EL表達式的保留字
55 EL表達式的內置對象及其作用域
56 使用EL表達式訪問JavaBean
57 使用EL表達式訪問集合
58 EL表達式內置對象param和paramValues
59 EL表達式內置對象cookie
60 EL表達式內置對象initParam
61 JDBC 的定義及產品組件
62 建立JDBC連接
63 利用JDBC發送SQL語句
64 JDBC API ResultSet接口
65 JDBC RowSet接口
66 JDBC BaseRowSet類和CachedRowSet類
67 填充CachedRowSet對象記錄集
68 File類
69 使用字節流讀/寫文件
70 RandomAccessFile 類
71 JSP文件上傳
72 XML是什么
73 XML的基本語法
74 JDK 中的 XML API
75 DOM解析XML
76 SAX解析XML
77 DOM4j解析XML
首頁 > JSP教程 閱讀:216

EL表達式的內置對象及其作用域

EL 表達式的主要功能是進行內容顯示。為了顯示方便,在表達式語言中,提供了許多內置對象,通過不同的內置對象的設置,表達式語言可以輸出不同的內容,這些內置對象如表 1 所示。

表1 EL表達式的內置對象
內置對象 類型 說明
pageContext javax.servlet.ServletContext 表示 JSP 的 pageContext
pageScope java.util.Map 取得 page 范圍的屬性名稱所對應的值
requestScope java.util.Map 取得 request 范圍的屬性名稱所對應的值
sessionScope java.util.Map 取得 session 范圍的屬性名稱所對應的值
applicationScope java.util.Map 取得 application 范圍的屬性名稱所對應的值
param java.util.Map 如同 ServletRequest.getParameter(String name),返回 Slring[] 類型的值
param Values java.util.Map 如同 ServletRequest.getParameter Values(String name), 返回 string[] 類型的值
header java.util.Map 如同 ServletRequest.getHeader(String name),返回 string[] 類型的值
header Values java.util.Map 如同 ServletRequest.getHeaders(String name), 返回 string[] 類型的值
cookie java.util.Map 如同 HttpServletRequest.getCookies()
initParam java.util.Map 如同 ServletContext.getInitParameter(String name),返回 string[] 類型的值

使用 EL 表達式語言可以輸出4種屬性范圍的內容,屬性的范圍在 EL 中的名稱如表 2 所示。

表2 EL表達式的屬性范圍
屬性范圍 EL中的名稱
page pageScope
request requestScope
session sessionScope
application applicationScope

如果在不同的屬性范圍中設置了同一個屬性名稱,則按照 page、request、session、application 的范圍進行查找。我們也可以指定要取出哪一個范圍的變量,如表 3 所示。

表3 通過EL取出相應屬性范圍內的變量
范例 說明
${pagesScope.usemame} 取出 page 范圍的 username 變量
${requestScope.usemame} 取出 request 范圍的 username 變量
${sessionScope.usemame} 取出 session 范圍的 username 變量
${applicationScope.usemame} 取出 application 范圍的 username 變量

其中,pageScope、requestScope、sessionScope 和 applicationScope 都是 EL 內置對象,由它們的名稱可知所代表的意思。例如,${sessionScope.usemame} 是取出 session 范圍的 usemame 變量,顯然這種寫法比先前 JSP 的寫法 String usemame=(String)session.getAttribute("usemame") 要簡潔許多。

下面通過例子來演示 EL 如何讀取 4 種屬性范圍的內容。

【例1】EL 讀取 4 種屬性范圍的內容(attribute_demo.jsp):
<%@ page contentType="text/html"  pageEncoding="utf-8" %>
<html>
<head>
<title>EL 讀取四種屬性范圍的內容 </title>
<body>
<%
pageContext.setAttribute("info","page屬性范圍");
request.setAttribute("info","request屬性范圍");
session.setAttribute("info","session屬性范圍");
application.setAttribute("info","application屬性范圍");
%>
<h1>四種屬性范圍</h1>
<hr/>
<h3>page 屬性內容:${pageScope.info}</h3>
<h3>request 屬性內容:${requestScope.info}</h3>
<h3>session 屬性內容:${sessionScope.info}</h3>
<h3>application 屬性內容:${applicationScope.info}</h3>
</body>
</html>

程序運行結果如圖 1 所示。

EL讀取四種屬性范圍的內容
圖1 EL讀取四種屬性范圍的內容

我們也可以通過表達式的 pageContext 內置對象獲取 JSP 內置對象 request、session、application 的實例,可以通過 pageContext 內置對象調用 JSP 內置對象中提供的方法。

【例2】調用 JSP 內置對象的方法(methodjsp):
<%@ page contentType="text/html" pageEncoding="utf-8" %>
<html>
<head>
<title>調用 JSP 內置對象的方法 </title>
</head>
<body>
    <h1>EL 調用 JSP 內置對象的方法 </h1>
    <hr/>
    <h3>IP 地址:${pageContext.request.remoteAddr}</h3>
    <h3>SESSION ID:${pageContext.session.id}</h3>
    <h3>是否是新 session:${pageContext.session['new']}</h3>
</body>
</html>

程序運行結果如圖 2 所示。

EL調用JSP內置對象的方法
圖2 EL調用JSP內置對象的方法

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo