一、EL表达式
什么是EL表达式
- EL(Express Lanuage)表达式可以嵌入在jsp页面内部
- 减少jsp脚本的编写
- EL出现的目的是要替代jsp页面中脚本的编写。
EL表达式的作用
- EL最主要的作用是获得四大域中的数据
// 1. pageContext
${pageScope.key};
// 2. request
${requestScope.key}
// 3. session
${sessionScope.key}
// 4. application
${applicationScope.key}
EL表达式的简写
- EL从四个域中获得某个值${key}
- 依次从pageContext域,request域,session域,application域中 获取属性,在某个域中获取后将不在向后寻找
EL内置11对象
pageScope : 获取JSP中pageScope域中的数据
requestScope : 获取JSP中requestScope域中的数据
sessionScope : 获取JSP中sessionScope域中的数据
applicationScope : 获取JSP中applicationScope域中的数据
pageContext : pageContext获得其他八大对象获取当前项目的名称 : ${pageContext.request.contextPath}
以下6个对象很少用到:
param : request.getParameter()
paramValues : rquest.getParameterValues()
header : request.getHeader(name)
headerValues : request.getHeaderValues()
initParam : this.getServletContext().getInitParameter(name)
cookie : request.getCookies()---cookie.getName()---cookie.getValue()
EL执行表达式
内部可以进行运算,只要有结果
${1+1}
${empty user} <!-- 判断user是否为空 -->
${user==null?true:false}
二、JSTL标准标签库
什么是JSTL
- JSTL(JSP Standard Tag Library),JSP标准标签库
- 可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能
- JSTL出现的目的同EL表达式一样也是要代替jsp页面中的脚本代码
JSTL标准标签库有5个子库
核心库:
Core http://java.sun.com/jsp/jstl/core 前缀:c
国际化库:
I18N http://java.sun.com/jsp/jstl/fmt 前缀:fmtSQL http://java.sun.com/jsp/jstl/sql 前缀:sql
XML http://java.sun.com/jsp/jstl/xml 前缀:x
Functions http://java.sun.com/jsp/jstl/functions 前缀:fn
把JSTL标签库jar包引入工程当中
将 jstl-1.2.jar 导入lib文件夹下
引入标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
if 标签
<c:if test="${1==1 }">满足条件时,中间的内容才会显示出来</c:if>
通过是结合EL表达式一起使用,EL从域中取数据,使用JSTL进行判断或者遍历。
if标签使用
- 需求:用户登录成功时, 进入首页中,显示用户名
- 步骤
- 1.登录成功时,把用户写到session域当中
- 2.在首页当中进行判断,从session域当中取数据
- 3.通过EL结合JSTL进行判断
foreach标签
第一种:普通循环
第二种:增加for循环
- 遍历字符串集合
- 遍历对象集合
- 遍历map