EL 表示式的 11 個隱含物件
阿新 • • 發佈:2020-12-29
技術標籤:D_JavaWeb階段# D7_JSP&EL表示式&JSTL標籤庫java
11 個隱含物件
EL 表示式中有 11 個隱含物件,是 EL 表示式中自己定義的,可以直接使用。
-
變數 型別 作用 pageContext PageContextImpl 它可以獲取 jsp 中的九大內建物件 pageScope Map<String,Object> 它可以獲取 pageContext 域中的資料 requestScope Map<String,Object> 它可以獲取 Request 域中的資料 sessionScope Map<String,Object> 它可以獲取 Session 域中的資料 applicationScope Map<String,Object> 它可以獲取 ServletContext 域中的資料 param Map<String,String> 它可以獲取請求引數的值 paramValues Map<String,String[]> 它也可以獲取請求引數的值,獲取多個值的時候使用。 header Map<String,String> 它可以獲取請求頭的資訊 headerValues Map<String,String[]> 它可以獲取請求頭的資訊,它可以獲取多個值的情況 cookie Map<String,Cookie> 它可以獲取當前請求的 Cookie 資訊 initParam Map<String,String> 它可以獲取在 web.xml 中配置的<context-param>上下文引數
i. EL 獲取四個特定域中的屬性
pageScope ====== pageContext 域
requestScope ====== Request 域
sessionScope ====== Session 域
applicationScope ====== ServletContext 域
示例:
<body>
<%
pageContext.setAttribute("key","pageContext");
request.setAttribute("key","request");
session.setAttribute("key","session");
application.setAttribute("key","application");
%>
${pageScope.key}< br/><%--pageContext--%>
${requestScope.key}<br/><%--request--%>
</body>
ii. pageContext 物件的使用
- 協議:
- 伺服器 ip:
- 伺服器埠:
- 獲取工程路徑:
- 獲取請求方法:
- 獲取客戶端 ip 地址:
- 獲取會話的 id 編號
示例:
<body>
<%--
request.getScheme() 它可以獲取請求的協議
request.getServerName() 獲取請求的伺服器ip或域名
request.getServerPort() 獲取請求的伺服器埠號
getContextPath() 獲取當前工程路徑
request.getMethod() 獲取請求的方式(GET或POST
request.getRemoteHost() 獲取客戶端的ip 地址
session.getId() 獲取會話的唯一標識
--%>
<%
pageContext.setAttribute("req",request);
%>
<%=request.getScheme()%>< br/>
1. 協議:${req.scheme}<br/>
2. 伺服器 ip:${pageContext.request.serverName}<br/>
3. 伺服器埠:${pageContext.request.serverPort}<br/>
4. 獲取工程路徑:${pageContext.request.contextPath}<br/>
5. 獲取請求方法:${pageContext.request.method}<br/>
6. 獲取客戶端 ip 地址:${pageContext.request.remoteHost}<br/>
7. 獲取會話的 id 編號:${pageContext.session.id};
</body>
iii. EL 表示式其他隱含物件的使用
- param Map<String,String> 它可以獲取請求引數的值
- paramValues Map<String,String[]> 它也可以獲取請求引數的值,獲取多個值的時候使用。
示例程式碼:
輸出請求引數password的值:${ param.password } <br>
輸出請求引數username的值:${ paramValues.username[0] } <br>
輸出請求引數hobby的值:${ paramValues.hobby[0] } <br>
輸出請求引數hobby的值:${ paramValues.hobby[1] } <br>
請求地址:http://localhost:8080/10_EL/otherparam.jsp?username=zhangsan&username=lisi&password=123&hobby=dance&hobby=sing
結果:
- header Map<String,String> 它可以獲取請求頭的資訊
- headerValues Map<String,String[]> 它可以獲取請求頭的資訊,它可以獲取多個值的情況
示例程式碼:
<%-- 含特殊符號的要用中括號括起來--%>
輸出請求頭【User-Agent】的值:${header['User-Agent']}<br/>
輸出請求頭【Connection】的值:${header.Connection}<br/>
輸出請求頭【User-Agent】的值:${headerValues['User-Agent'][0]}<br/>
結果:
- cookie Map<String,Cookie> 它可以獲取當前請求的 Cookie 資訊
示例程式碼:
獲取Cookie的名稱:${cookie.JSESSIONID.name}<br>
獲取Cookie的值:${cookie.JSESSIONID.value} <br>
結果:
- initParam Map<String,String> 它可以獲取在 web.xml 中配置的上下文引數
web.xml 中的配置:
<context-param>
<param-name>username</param-name>
<param-value>root</param-value>
</context-param>
<context-param>
<param-name>url</param-name>
<!-- ///表示localhost:3306-->
<param-value>jdbc:mysql:///bjpowernode</param-value>
</context-param>
注意:改變了web.xml配置檔案一定要重新部署工程
示例程式碼:
輸出<Context-param>username的值:${initParam.username} <br>
輸出<Context-param>url的值:${initParam.url}<br>
結果: