EL中的内置对象

EL  内置对象


  就像 JSP 的 Java 代码块及表达式块中可以使用九个内置对象一样,EL 表达式中,同样也存在有内置对象,并且存在 11 个内置对象。

  常用的内置对象,除了前面使用过的四个域属性空间相关的内置对象外,还有如下几个。


 

(5 ) pageContext
  该 pageContext 与 JSP 内置对象中的 pageContext 是同一个对象。

  通过该对象,可以获取到 request、response、session、servletContext、servletConfig 等对象。

  注意这些对象在 EL中不是内置对象,这些对象只能通过 pageContext 获取。

  在 EL 中直接${pageContext.request}即可获取 request 对象。当然,其底层实际调用的是pageContext.getRequest()方法。

  同理,也可以通过类似方式获取到其它对象。
  在这些获取的对象中,有一个是实际工程中最常用的:${pageContext.request.contextPath} ,用于获取当前项目的发布到服务器的名称。一般会用在 JSP 页面的路径前.

  

 

  先写一个 

  

 

 

  index.jsp

 1     <form action="${pageContext.request.contextPath }/RegisterServlet" method="POST">
 2         姓名:<input type="text" name="name"/><br>
 3         年龄:<input type="text" name="age"/><br>
 4         爱好:
 5         <input type="checkbox" name="hobby" value="swimming"/> 游泳
 6         <input type="checkbox" name="hobby" value="climbing"/> 登山
 7         <input type="checkbox" name="hobby" value="reading"/> 读书
 8         <br>
 9         <input type="submit" value="注册"/>
10     </form>

 

 

 

 

 

   RegisterServlet.java

 1 package com.bjpowernode.servlet;
 2 
 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.http.HttpServlet;
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 
 9 public class RegisterServlet extends HttpServlet {
10     protected void doPost(HttpServletRequest request, HttpServletResponse response)
11             throws ServletException, IOException {
12         System.out.println("=================");
13     }
14 
15 }

 

 

 

 

 

 

 

 

 

  在 EL 的 11 个内置对象中,除了 pageContext 外,其它 10 个内置对象,其类型均为java.util.Map 类型


 

(6 ) param
  在 EL 中通过 ${param.参数名}可获取到请求中指定参数名的值。 例如,提交的请求为:

  

 

   在 JSP 页面中通过如下方式,可获取到 name 参数的值为 abc

  

 

 

 

 

 

 


 

 

 

(7 ) paramValues
  若提交的请求中同一参数具有多个值,则可通过 ${paramValues.参数名[索引]} 获取到指定索引号的该参数值。例如,提交的请求为:

  

 

  在 JSP 页面中获取方式如下:

  

 

   在浏览器中显示内容如下

  

 

 


 

 (8 ) initParam
    在EL中通过使用 ${initParam.初始化参数名} 可以获取到指定的初始化参数的值。

    例如,在 web.xml 中定义了初始化参数 xxxName。

    

 

 

  在 JSP 的 EL 中可访问该初始化参数:

    

 


示例:

  index.jsp

 

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <form action="${pageContext.request.contextPath }/show.jsp" method="POST">
11         姓名:<input type="text" name="name"/><br>
12         年龄:<input type="text" name="age"/><br>
13         爱好:
14         <input type="checkbox" name="hobby" value="swimming"/> 游泳
15         <input type="checkbox" name="hobby" value="climbing"/> 登山
16         <input type="checkbox" name="hobby" value="reading"/> 读书
17         <br>
18         <input type="submit" value="注册"/>
19     </form>
20 </body>
21 </html>

 

 

web.xml

1     <context-param>
2         <param-name>company</param-name>
3         <param-value>bjpowernode</param-value>
4     </context-param>
5     <context-param>
6         <param-name>address</param-name>
7         <param-value>中国北京</param-value>
8     </context-param>

 

 

 

 

 

show.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <!-- 获取请求中的指定参数值,其底层实际调用的是:
11             request.getParameter()
12      -->
13     name = ${param.name } <br>
14     age = ${param.age } <br>
15     
16     <!-- 获取请求中的指定参数的所有值,其底层实际调用的是:
17             request.getParameterValues()
18      -->
19     hobby[0] = ${paramValues.hobby[0] } <br>
20     hobby[1] = ${paramValues.hobby[1] } <br>
21     hobby[2] = ${paramValues.hobby[2] } <br>
22     
23     <!-- 获取初始化参数,其底层实际调用的是:
24             servletContext.getInitParameter()
25      -->
26     company = ${initParam.company } <br>
27     address = ${initParam.address } <br>
28     
29 </body>
30 </html>

 

  

 

 

 

  

 

 

 

 

 


posted @ 2020-01-09 23:59  小茅棚  阅读(481)  评论(0编辑  收藏  举报