1.EL——${EL表达式}
1.1:EL是一种自包含的编程语言,有运算符、语法、保留关键字。
2.EL特点
2.1:与JSP相比对嵌套属性的支持。
2.2:比JSP使用Bean简短而灵活。
2.3:在表达式内EL不可以定义变量(标记库定义、)而JSP可以申明。
2.4:EL有隐式变量,JSP有隐式对象。
3.EL语法
3.1:隐式变量
3.1.1:JSP(pageContext)——访问JSP的隐式对象
3.1.2:作用域(pageScope/requestScope/sessionScope/applicationScope)——与对应作用域对象属性的名称和值相关联的Map类。
*作用域的遍历——先找变量在找对象,从小到大;显示指定隐式XX就只在该作用域里找。
3.1.3:请求参数(param/paramValues)——包含请求参数的Map类。
3.1.4:请求头(header/headerValues)——包含请求头的Map类
3.1.5:Cookie(cookie)——按名称存储请求附带的cookie的Map类。
3.2:EL运算符
3.2.1:访问属性(a.b)和集合(a[b])——当b为字符串是两者等价。
3.2.2:EL算术、关系、逻辑运算符。
3.3:函数——实现完全的业务逻辑和表现逻辑分离
3.3.1:EL函数插入JSP步骤:
3.3.1.1:方法类(java)——方法体;static类型;方法参数和返回值在EL中有效。
3.3.1.2:标记库描述文件(tld)——函数名与方法连接。
*taglib、tlib-version
*function(name(方法名)/function-class(方法体)/function-signature)
*function-signature——参数、返回值的全数据类型;数据类型是全路径。
3.3.1.3:部署描述文件(xml)——告诉容器在哪里找TLD文件;
*taglib
*taglib-uri——自定义的TLD位置,本地
*taglib-location——系统的TLD位置
3.3.1.4:JSP页面(JSP)——通过标记库和函数名调用方法。
*<%@ taglib prefix="tld访问名" uri="xml的url"%>
*¥{tld访问名:方法}
4.JSP(标准)标记库JSTL——sun公司制定的一套标记库规范;由jstl.jar包(API)和standard.jar包(实现类)为JSP提供jstl能力
4.0:特点
4.0.1:标记的属性值是字符串。
4.1:why——javaBean只是可复用的组件,独立于运行环境而包装了一些数据和业务逻辑功能,无法获得运行环境信息,无法与JSP页面进行更深层次的交互。
4.2:核心—— ??—— http://java.sun.com/jsp/jstl/core ——c
4.2.1:通用
*<c:catch var="e"> 抛异常的代码 </c:catch>——异常
*<c:out value="${变量名}" default="默认值"> </c:out>——显示
4.2.2:变量
*<c:set var="变量" value="值"> </c:set>——Map和Bean对象要用到target、property、value3个属性。
* <c:remove var="变量" scope="作用域对象"> </c:remove>
4.2.3:流程
*<c:if test="${x=='9'}">${x} <c:>——测试值是标准,用单引号括起来;EL中else也用if标记实现。
*<c:choose></c:choose>——有多个<c:when>标记和一个<c:otherwise>属性
*<c:forEach> </c:forEach>——有下标的用var/begin/end/step属性来实现;集合循环用var/items实现。
*<c:forTokens var="分隔后的值" items="需分隔字符串" delims="分隔符"> </c:forTokens>——字符串分隔
4.2.4:URL
*<c:url value="路径" var="变量"> </c:url>——重写URL。有/则自动添加上下文;可以用<c:param name="键" value="值"/>添加参数。
*<c:import url=""> </c:import>——动态;跨服务器(无参、安全);可以用<c:param name="键" value="值"/>添加参数。
*<c:redirect url=""> </c:redirect>——重定向。可以用<c:param name="键" value="值"/>添加参数。
4.3:xml——??——http://java.sun.com/jsp/jstl/xml——x
4.4:数据库——??——http://java.sun.com/jsp/jstl/sql——sql
4.5:国际化——??——http://java.sun.com/jsp/jstl/fmt——fmt
4.6:函数——处理函数和字符串——http://java.sun.com/jsp/jstl/functions——fn