目录
1.page,pagescope,pagecontext区别
2.通过pageScope,requeScope,SessionScope,appicationScope来获取域中的数据
一、什么是El表达式
- Expression Language表达式语言
- JSP EL既可以用来创建算术表达式也可以用来创建逻辑表达式
- 是一种在JSP页面获取数据的简单方式(只能获取数据,不能设置数据)
- El表达式一般操作域对象,不能操作局部变量
-
语法格式
二、EL获取数据(从四大域中获取属性)
EL只能从四大域中获取属性,一般操作域对象
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
pageContext.setAttribute("name", "linjie");
request.setAttribute("name", "lucy");
session.setAttribute("name", "king");
application.setAttribute("name", "bilibili");
%>
name=${name }
name=${applicationScope.name }
</body>
</html>
name=linjie
name=bilbil
三、EL隐式对象
EL的11个内置对象,除了pageContext以外,其他10个内置对象的类型都是java.util.Map类型
1.page,pagescope,pagecontext区别
<%
pageContext.setAttribute("name", "linjie");
request.setAttribute("name", "lucy");
session.setAttribute("name", "king");
application.setAttribute("name", "bilibili");
%>
text1=<%=pageContext.getRequest()%><br>
text2=<%=pageContext.getRequest().getAttribute("name")%><br>
text4=${pageScope.name}<br>
text5=${pageContext.getAttribute("name")}<br>
text6=${pageContext.request.getAttribute("name")}<br>
隐含对象名称 | 功能描述 |
pageContext | 对应于JSP页面中的pageContext对象 |
pageScope | 代表page域中用于保存属性的Map对象 |
requestScope | 代表request域中用于保存属性的Map对象 |
sessionScope | 代表session域中用于保存属性的Map对象 |
applicationScope | 代表application域中用于保存属性的Map对象 |
param | 表示一个保存了所有请求参数的Map对象,获取请求参数的某个值,其底层实际调用request.getParameter() |
paramValues | 表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个String类型数组,获取请求中的指定参数的所以值,其底层实际调用request.getParameterValues() |
header | 表示一个保存了所有http请求头字段的Map对象,用于获取 请求头字段的某个值 |
headerValues | 表示一个保存了所有http请求头字段的Map对象, 返回String类型数组 |
cookie | 用来取得使用者的cookie值,cookie的类型是Map |
initParam | 表示一个保存了所有Web应用初始化参数的Map对象,获取初始化参数,其底层调用的是ServletContext.getInitParameter() |
2.通过pageScope,requeScope,SessionScope,appicationScope来获取域中的数据
3.cookie和initParam对象演示cookie对象cookie对象Ccookie对象
– 在 JSP 开发中,经常需要获取客户端的 Cookie 信息,为此,在 EL 表达式中,提供了 Cookie 隐式对象,该对象是一个代表所有 Cookie 信息的 Map 集合, Map 集合中元素的关键字为各个 Cookie 的名称,值则为对应的 Cookie 对象,具体示例如下:
获取cookie对象的信息:${cookie.userName}
获取cookie对象的名称:${cookie.userName.name}
获取cookie对象的值:${cookie.userName.value}
– 在开发一个 Web 应用程序时,通常会在 web.xml 文件中配置一些初始化参数,为了方便获取这些参数, EL 表达式提供了一个 initParam 隐式对象,该对象可以获取 Web 应用程序中全局初始化参数,具体示例如下所示:
${initParam.count}
四、EL访问Bean的属性
1、什么是java Bean JavaBean是公共Java类,但是为了编辑工具识别
需要满足至少三个条件
有一个public默认构造器(例如无参构造器)
属性使用public 的get,set方法访问,也就是说设置成private同时get,set方法与属性名的大小也需要对应。例如属性name,get方法就要写成,public String getName(){},N大写。
需要序列化。这个是框架,工具跨平台反映状态必须的
注意点:
1.EL可以通过${key.属性}的方式获取到指定值,其底层实际调用的是该对象的相应属性的get方法
2.EL可以通过索引访问List,但无法访问Set。因为Set中没有索引概念,访问map同理