MVC,EL,JSTL
MVC
Model 模型 javaBean 用来做持久化的,对数据库的数据查询封装
View 视图 jsp,用来显示数据的页面
Controller 控制器 Servlet,用来处理视图的请求和业务逻辑,并且
去调用模型层对数据库的封装,并且将结果返回给视图层
EL 表达式语言
el和jsp的表达式相似,用于运算输出。但是相比jsp表达式el更强
1.可以直接访问域中的数据,不用通过request或者session等get方法
2.如果使用null的不会产生异常
3.不用类型转换,存在域中的数据直接使用
4.提供更多的运算,结合jstl的函数库
el底层通过java反射机制实现
语法${ } 花括号中可以直接做运算或者取得存储在四个域中的数据
page、request、session、application
直接在el中写存储在域中的key就可以得到这个数据,根据数据的类型
不同语法还需要结合. []的使用
1.基本数据 数值,字符串等 ${key}
2.对象类型,要访问对象中的某个属性 ${key.属性名}
属性名要求和类中的大小写一致,并且提供get方法
3.如果是数组或者集合类型 ${key[下标]}
4.如果是map类型可以使用.或者[] ${key.Map中的key}
${key['Map里的key']}
如果多个域中存在相同的key,优先使用级别最大的域中的:
page>request>session>application
如果非要使用其他域中的数据,就通过 scope.key
${pageScope.key} ${requestScope.key} ${sessionScope}
${applicationScope.key}
el还提供丰富的表达式、运算、比较、逻辑等
. 访问一个Bean属性或者一个映射条目
[] 访问一个数组或者链表的元素
( ) 组织一个子表达式以改变优先级
+ 加
- 减或负
* 乘
/ or div 除
% or mod 取模
== or eq 测试是否相等
!= or ne 测试是否不等
< or lt 测试是否小于
> or gt 测试是否大于
<= or le 测试是否小于等于
>= or ge 测试是否大于等于
&& or and 测试逻辑与
|| or or 测试逻辑或
! or not 测试取反
empty 测试是否空值
JSTL jsp标准标签库
使用jstl需要通过 taglib
<c:set var="变量名" value="值" scope="域"></c:set>
<c:out value="值"></c:out>
<c:if test="表达式"></c:if>
没有else,但是
<c:choose>
<c:when test=""></c:when>
<c:otherwise></c:otherwise>
</c:choose>
用来解决这个问题,用来做多重ifelse,每一个when表示一个if
最后otherwise表示else
<c:forEach var="声明变量接收迭代的每次数据" items="要遍历的集合"
varStatus="当前循环状态的对象"
begin="起始位置"
end="结尾位置"></c:forEach>