什么是EL表达式?EL表达式的作用?
El表达式的全称是:Expression Language.是表达式语言。
EL表达式的作用 :EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出。
因为EL表达式在输出数据的时候,要比jsp表达式脚本要简洁的多。
<%
request.setAttribute("key","name");
%>
<%--脚本表达式输出的key值--%>
<%=request.getAttribute("key")%>>
<%--EL表达式输出的值--%>
${key}
EL表达式的格式是:${表达式}
EL表达式在输出null的时候,输出的是空串。jsp表达式脚本输出null的时候输出的是null
EL表达式主要是输出域对象的数据。
EL表达式输出Bean的普通属性,数组属性。List集合属性,map集合属性.
需求:输出Person类中的普通属性,数组属性。list集合属性和map集合属性。
EL表达式的11个隐含对象
pageContext :类型是PageContextImpl 它可以获取jsp的九大内置对象
pageScope :类型是Map<String,Object> 他可以获取pageContext域中的数据
requestScope : 类型是Map<String,Object> 它可以获取Request域中的数据
sessionSope: Map<String,Object> 它可以获取Session中的数据
applicationScope Map<String,Object> 它可以获取ServletContext域中的数据
param Map<String,String> 它可以获取请求参数的值
paramValues Map<String,String[]> 他也可以获取请求参数的值,获取多个值的时候使用。
header Map<String,String> 它可以获取请求头的信息
headValues Map<String,String[]> 它可以获取请求头的信息,它可以获取多个值的情况
cookie Map<String,Cookie> 它可以获取当前请求的Cookie信息
initParam Map<String,String> 它可以获取在web.xml中配置的上下文参数
EL获取四个特定域中的属性
pageScope----------pageContext域
requestScope---------- Request域
sessionScope------------session域
applicationScope---------------application域
在域中存入数据
pageContext.SetAttribute(“key1”,“pageContext”)
${pageScope.key1}
pageContext对象的使用
${pageContext.servletConfig}
- 协议
${pageContext.request.scheme}
- 服务器ip
${pageContext.request.serverName}
- 服务器端口号
${pageContext.request.serverPort}
- 获取工程路径
${pageContext.request.contetxtPath}
- 获取请求方法
${pageContext.request.request.method}
- 获取客户端ip地址
${pageContext.request.remoteHost}
- 获取会话的id编号
${pageContext.session.id}
有一种简洁的方式就是
<%
pageContext.setAttribute("req",request)
%>
其他隐含对象的使用
param
${param}
浏览器的url地址
http://localhost:8080/JavaWEB/pages/b.jsp?username=12222
页面显示的效果为:
输出请求参数username的值:
${param.username}
paramValues
当url中参数多时
使用
${paramValues}
此时打印的是地址值
${paramValues.username[0]}
这个为获取数组中的某一个值
header
输出请求头【User-Agent】的值: ${header['User-Agent']}
输出请求头【Connection】的值:${header.Connection}
输出请求头【User-Agent】的值:${headerValues['User-Agent'][0]}
Cookie
获取Cookie的名称: ${cookie.JSESSIONID.name}
获取Cookie的值: ${cookie.JSESSIONID.value}
initParam
Map<String,String>
它可以获取在web.xml中配置的上下文参数
输出<Context-param>username的值:${initParam.username}