EL表达式
EL的概述:
Expression Language:表达式语言,为了使JSP写起来更简单,简化了JSP的代码,介绍了<%%>
在页面取值用eL表达式
EL表达式语法:
语法$ {EL表达式}
EL的功能
获取数据:(JSP的四个域)
${pageScope.name}
${requestScope.name}
${sessionScopename}
${applicationScope.name}
${name} 类似findAttribute,先从小范围开始找
有索引下标的使用【】
$(arrs[0]),$(arrs[1])
.用于有属性的数据(map,对象) $(map.aaa) $(map.bbb)
如果属性名中包含有特殊的字符吗,必须使用[] $(map[bbb.ccc])
执行运算:
pageContext.setAttribute(n1,10)
pageContext.setAttribute(n2,20)
算数运算:
${n1+n2}
逻辑运算:
${n1 < n2}- ${n1 lt n2}
${n1 >n2}- ${n1 gt n2}
${n1 <= n2}- ${n1 le n2}
${n1 >= n2}- ${n1 ge n2}
${n1 = n2}- ${n1 eq n2}
关系运算:
${n1 < n2 &&n3<n4}-${n1<n2 and n3<n4}
${n1 < n2 ||n3<n4}-${n1<n2 or n3<n4}
${!n1 < n2 }-${not n1<n2 }
三元运算:
${n1 < n2 ? "正确":"错误"}
empty运算
${user == null}- ${empty user}
${user == !null}- ${not empty user}
操作WEB开发的常用对象:
pageScope, requestScope, sessionScope, allicationScope --获取JSP域里的数据
param,[aramValues -- 接收参数
header,headerValues -- 获取请求头信息
initParam -- 获取全局初始化参数
cookie -- web开发中的cookie
pageContext -- web开发中的pageContext
JSTL:
JSTL概述:
是一个不断完善的开放源代码的JSP标签库,有apache的akarta小组来维护
JSTL和EL结合替换页面中<%%>
JSTL版本1.0:不支持EL表达式
JSTL1.1和1.2:支持EL表达式
JSTL的标签库:
core(核心库),fmt(国际化标签),xml(xml标签),sql(sql标签),fn(JSTL提供EL函数库)
使用JSTL相关的jar包:
在页面中引入标签库.<% taglib ur = "" prefix = "" %>
JSTL的核心标签的用法:
<c:if test = "条件">
<c:set var = "变量名" value = "值" scope = "域">
<c:out value = "变量名" default = "默认值" escapeXml = "false">是否需要转移,</c:out>
遍历方式:
var :便利出来的每一个
items :待遍历的对象
step:步进 相当于(i+2)
varStatus:记录遍历状态 两个属性 index(下标索引),count(遍历第几个)
<c:forEach var = "值" item = "${数组名或者集合}"
${i}
</c:forEach>
<c:forEach var = "变量名" items = "${map}">
${变量名.key}-${变量名.value}
</c:forEach>
<c:forEach var = "变量名" begin = "从几开始" end = "到几结束" step = "加几" varStatus = "status" 记录遍历状态>
JSTL提供的EL的函数库
{fn:方法名}
大部分都是操作字符串
MVC
Servlet :
缺陷:显示HTML元素的时候麻烦
JSP:
优点:显示数据方便
缺点:在封装数据和处理数据上麻烦
JSP+JavaBean: JSP的开发模式一
有点:显示数据和处理数据很方便
缺点:维护麻烦
用JSP去显示数据,用JavaBean封装和处理数据
JSP+Servlet+JavaBean: JSP的开发模式二,也被称为MVC的设计模式
优点:JSP用于显示数据,JavaBean用于封装和处理数据,Servlet控制
MVC:
M:Model:模型层 JavaBean
V:View:视图层 JSP
C:Controller:控制层 Servlet