JavaWeb开发思维导图之——JavaWeb核心EL表达式(12)
一 概述
- 介绍
- 快速入门
- el表达式
二 内容详情
2.1 介绍
1-概念
- Expression Language缩写
- 表达式语言
- 在jsp 2.0规范中加入的内容,也是servlet规范的一部分
2-作用
- 在jsp页面中获取数据
- 让jsp脱离Java代码块和jsp表达式
3-示例
- <% request.setAttribute("username","zs") %>//向请求域添加数据
- java代码块获取: <% out.println(reqest.getAttribute("username")); %>
- jsp表达式获取: <%= request.getAttribute("username") %>
- el表达式: ${username}
4-语法格式:${表达式内容}
2.2 快速入门
1-步骤
- 创建web项目
- 在web目录下创建el01.jsp
- 在文件中向域对象添加数据
- 使用三种方式获取域对象中的数据(java代码块、jsp表达式、el表达式)
- 部署并启动项目
- 通过浏览器测试
3-示例
- <% request.setAttribute("username","zs") %>//向请求域添加数据
- java代码块获取: <% out.println(reqest.getAttribute("username")); %>
- jsp表达式获取: <%= request.getAttribute("username") %>
- el表达式: ${username}
2.3 el表达式
1-获取数据
- 基本类型数据:1-设置数据: <% pageContext.setAttribute("num",10);%> 、2-获取数据: ${num}
- 自定义对象数据:1-设置数据:<% Student stu = new Student("zs",23);pageContext.setAttribute("stu",stu);%> 2-获取数据:${stu.name}
- 数组类型数据:1-设置数据:<% String[] arr = {"hello","world"};pageContext.setAttribute("arr",arr);%>、2-获取数据:${arr[0]}
- List集合类型数据:1-设置数据:<% pageContext.setAttribute("list",list) %>、2-获取数据:${list}
- Map集合类型数据:1-设置数据:<% pageContext.setAttribute("map",map) %>、2-获取数据: ${map}
2-注意事项
- 没有空指针异常
- 没有索引越界异常
- 没有字符串的拼接
3-el表达式
3-1-关系运算符
- 等于(==或eq) 示例: ${5==5}或${5 eq 5}
- 不等于(!=或ne) 示例: {5!=5}或{5 ne 5}
- 小于(<或lt) 示例: ${3<5}或${3 lt 5}
- 大于(>或gt) 示例: ${3>5}或${3 gt 5}
- 小于等于(<=或le) 示例: ${3<=5}或${3 le 5}
- 大于等于(>=或ge) 示例: ${3>=5}或${3 ge 5}
3-2 逻辑运算符
- 并且(&&或and) 示例: ${A&&B}或${A and B}
- 或者(||或or) 示例:${A||B}或${A or B}
- 取反(!或not) 示例: ${!A}或 ${not A}
3-3-其他运算符
- empty:${empty str}
- 三元运算符:示例:${geneder=="man"? "checked":""}
3-4-使用细节
- 概念:1-能够获取四大域对象数据,根据名称从小到大在域中查找、2-获取jsp中8个隐式对象,并调用对象方法
- 4大域设置:<% pageContext.setAttribute("name":'zs'); %>、<% request.setAttribute("name":'zs'); %>、<% session.setAttribute("name":'zs'); %>、<% application.setAttribute("name":'zs'); %>
- 获取4大域对象:${name}
- 隐式对象获取:1-java:<%= request.getContextPath() %>、2-el表达式: ${pageContext.request.contextPath}
4-11个隐式对象
- pageContext: ${pageContext.request.contextPath}
- applicationScope //应用域对象数据
- sessionScope //会话域对象数据
- requestScope //请求域对象数据: ${requestScope.username}
- pageScope //页面域对象数据
- header //请求头数据:${header["connection"]}
- headerValues //请求头数据(多个):{headerValues["connection"]}
- param //请求参数:${param.name}
- paramValue //请求参数数据(多个):${paramValues.hobby[0]}
- initParam //全局配置参数:${initParam["pname"]}
- cookie // cookie对象:${cookie}