EL的11大隐式对象
1、pageContext:代表pageContext对象
2、pageScope:代表page域3、requestScope:代表request域
4、sessionScope
5、applicationScoope
6、param:Map对象,保存了所有的请求参数
7、paramValues:Map对象(value对应一个数组).用户提交多个值的情况下
8、header:Map对象。获取一个请求头的值
9、headerValues:Map对象(value对应一个数组).用户提交多同名头的情况下
10、cookie:Map对象。(value对应一个cookie对象)
11、initParam:Map对象。(key=参数名value=参数值,此参数是在web.xml中配置的)
写 4.jsp 测试如上的11大隐身对象,源代码如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.itheima.domain.Person"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
</head>
<body>
<br/>-----------------------PageContext------------------------------</br>
<%
pageContext.setAttribute("p", "pageContext");
%>
${pageContext.class } <br/>
${ pageScope.p} <br/>
<%
out.println(pageContext.getClass());
%>
<br/>-----------------------RequestScope------------------------------</br>
${requestScope.p }
<br/>-----------------------sessionScope------------------------------</br>
<%
pageContext.setAttribute("user",new Object());
session.setAttribute("user",new Object());
%>
${sessionScope.user ==null?"请登录":"欢迎您" }
<br/>-----------------------param代表请求参数的map------------------------------</br>
<!-- http://localhost:8080/day1218/4.jsp?username=admin -->
${param.username }
<br/>-----------------------paramValues代表请求参数的map,多值------------------------------</br>
<!-- http://localhost:8080/day1218/4.jsp?hobby=ft&hobby=pp -->
${paramValues.hobby[0] }
<br/>--------------header代表请求头的map--------------------<br/>
<!-- 用点 这里会出错,因为-在java是分隔符。改为如下,其中单引号和双引号都可以 -->
${header['Accept-Language'] }
<!-- []和.在EL表达式中都是可以使用的,如下例子 -->
<%
Person p3 =new Person();
request.setAttribute("p3", p3);
%>
${p3.name } <br/>
${p3["name"] } <br/>
<br/>--------------cookie--------------------<br/>
<%
Cookie c = new Cookie("itcast","cn");
response.addCookie(c);
%>
${cookie.itcast.value }
<br/>--------initParam获取全局配置参数 (web.xml)--------------------<br/>
${initParam.encode }
</body>
</html>
其中需要引用到的person类,源代码如下:
package com.itheima.domain;
public class Person {
private String name="mzm";
private int age;
private boolean married;
private Address address;
private byte gender;
public byte getGender() {
return gender;
}
public void setGender(byte gender) {
this.gender = gender;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public Person(){}
public Person(String name, int age, boolean married) {
super();
this.name = name;
this.age = age;
this.married = married;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isMarried() {
return married;
}
public void setMarried(boolean married) {
this.married = married;
}
}