1.EL 表达式概述
EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。
2.EL从域中取出数据(EL最重要的作用)
EL最主要的作用是获得四大域中的数据,格式${EL 表达式}
jsp脚本:<%=request.getAttribute(name)%>
EL表达式替代上面的脚本: ${requestScope.name}
EL最主要的作用是获得四大域中的数据,格式 ${EL表达式}
EL获得pageContext域中的值 ${pageContextScope.key}
EL获得request域中的值:${requestScope.key}
EL获得session域中的值:${sessionScope.key}
EL获得application域中的值${applicationScope.key}
EL从四个域中获得某个值${key};
----同样是依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找。
EL的内置对象11个
pageScope,requestScope,sessionScope,applicationScope ----获取jsp中域中的数据
param,paramValues --接收参数
相当于request.getParameter() request.getParameterValues()
header,headerValues -- 获取请求头信息
相当于request.getHeader(name)
initParam --获取全局初始化参数
相当于this.getServletContext().getInitParameter(name)
cookie --web开发中cookie
request.getCookies() ----cookie.getName() --cookie.getValue()
pageContext -WEB开发中的pageContext
pageContext获得其他八大对象。
<!-- el可以执行表达式运算-->
${1+1}
${1==1?true:false}
<!--empty 判定某个对象是否是null 是null返回true-->
${empty user}
${empty ""}
JSTL概述
JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能,jstl出现的目的同el一样也是要替代jsp页面中的脚本代码。jstl标准标签库有5个子库,但随着发展,目前常使用的是他的核心库。
使用jsp的taglib指令导入核心标签库。
<%@ tag lib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
3.JSTL核心库的常用标签
<!--jstl标签经常会和el配合使用-->
1)<c:if test="">标签,其中test是返回boolean的条件。
例子:
<!--test代表的返回boolean的表达式-->
<c:if test=${"1==1"}>
xxxxx
</c:if>
<c:if test=${"1!=1"}>
yyyyy
</c:if>
这种设计没有else,只能通过改条件。2)<c:forEach> 标签
使用方式有两种组合形式。
<!--forEach模拟
for(int I=0;i<=5;i++){
syso(i);
}
-->
<c:forEach begin="0" end="5" var="I">
${i}
</c:forEach>
<!--模拟增强 for productList -- List<Product>
for(Product product:productList){
syso(product.getPname());
}
-->
<!--items:一个集合或数组 var:代表集合中的某一个元素-->
<c:forEach items="" var=""></c:forEach>