1. 程式人生 > 其它 >EL 表示式的 11 個隱含物件

EL 表示式的 11 個隱含物件

技術標籤: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 物件的使用

  1. 協議:
  2. 伺服器 ip:
  3. 伺服器埠:
  4. 獲取工程路徑:
  5. 獲取請求方法:
  6. 獲取客戶端 ip 地址:
  7. 獲取會話的 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配置檔案一定要重新部署工程
示例程式碼:

輸出&lt;Context-param&gt;username的值:${initParam.username} <br>
輸出&lt;Context-param&gt;url的值:${initParam.url}<br>

結果:
在這裡插入圖片描述