EL表达式的运算2
三元运算
表达式1?表达式2:表达式3;
如果表达式1为真 返回表达式2的值
如果表达式1为假 返回表达式3的值
点运算与[]运算
点运算可以输出bean对象中某个属性的值
[]中括号运算 可以输出有序集合中某个元素的值
并且[]中括号运算 还可以输出map集合中key里含有特殊字符key的值
${map[“a.a.a”]}
${map[“b+b+b”]}
EL表达式中11个隐含对象
是EL表达式中自己定义的 可以直接使用
变量 类型 作用
pageContext pageContextImpl 它可以获取jsp九大内置对象
pageScope Map<String,Object> 它可以获取pageContext域中的数据
requestScope Map<String,Object> 它可以获取request域中的数据
sessionScope Map<String,Objeect> 它可以获取session域中的数据
applicationScope Map<String,Objeect> 它可以获取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>上下文参数
EL获取四个特定域中的属性
pageScope == PageContext 域
requestScope == Request 域
sessionScope == Session 域
applicationScope == ServletContext域
//可以使用点运算实现选择某域使用而不是使用其默认搜索顺序
pageContext对象的使用
1.协议 <%=request.getScheme() 或 pageContext.request.scheme%>//http
2.服务器ip <%=request.getServerName() pageContext.request.scheme%> //192.168.31.74 127.0.0.1…
3.服务器端口 <%= request.getServerPort() 或 pageContext.request.serverPort%>//8080
4.获取工程路径<%= request.getContextPath 或 pageContext.request.contextPath%>//
5.获取请求方法<%= request.getMethod() 或 pageContext.request.method%>//post
6.获取客户端ip地址 <%= request.getRemoteHost() 或 pageContext.request.remoteHost%>//192.168.31.74
7.获取会话的id编号 <%= session.getId() 或 pageContext.session.id%>
其它隐藏对象的使用
${ param } //是传到服务器参数的键值对
${ param.key }//取值
${ param } //是传到服务器参数的键值(数组的地址)对
${ param.key[i]}//key参数第i+1个元素的值,一个key对应多个值(一个数组)的时候使用 获取全部的值
<%= header.key 或header[“key”] %>//输出请求头key的值
headerValues 与上面类似
获取cookie的名称
${cookie.JSESSIONID.name}
获取cookie 的值${cookie.JSESSIONID.value}
输出Context-param username的值 initParam.username