EL表达式+JSTL标签库+JSP综合案例(作用域增删改查)
一、EL表达式
Expression Language 表达式语言,替代JSP页面中数据访问的复杂编码。可以非常便捷的取出域对象中保存的数据,前提是一定要先setAttribute,EL就相当于在简化getAttribute。
语法:${变量名} 变量名就是setAttribute对应的key值。
1、EL对于四种域对象的查找顺序:
pageContext–>request–>session–>application
按照上述顺序进行查找,找到立即返回,如果在application中也无法找到,则返回null值。
2、指定作用域进行查找:
pageContext:${pageScope.name}
request:${requestScope.name}
session:${sessionScope.name}
application:${applicationScope.name}
3、级联
1 | <% |
4、EL执行表达式
1 | &&(and) |
二、JSTL标签库
JSP Standard Tag Library–>Jsp标准标签库,JSP为开发者提供的一系列的标签,使用这些标签可以完成一些逻辑处理,比如循环遍历集合,让代码更简洁,不再出现JSP脚本穿插的情况。
实际开发中EL和JSTL结合起来使用,JSTL侧重于逻辑处理,EL负责数据展示。
JSTL使用:
1、导入jar包。(两个jstl.jar和standard.jar)lib目录必须放在web/WEB-INF
2、在JSP页面开始的地方导入JSTL标签库
1 | <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
3、使用
1 | <%@ page import="com.huan.entity.User" %> |
JSTL核心标签库常用标签:
1、set:向域对象中添加数据,相当于setAttribute(key,value)
1 | <c:set var="name" value="TomCat" scope="request"></c:set> |
2、out:输出域对象中的数据,类似于EL,取value值时必须使用EL表达式
1 | <c:set var="name" value="TomCat" scope="request"></c:set> |
3、remove:删除域对象的数据
1 | <c:set var="name" value="TomCat" scope="request"></c:set> |
4、catch:用来捕获异常,并且在页面展示(类似于try-catch,用标签将可能会抛出异常的代码包裹起来)
1 | <c:catch var="error"> |
5、条件标签
- if
- choose
1 | <c:set var="num1" value="1"></c:set> |
6、迭代标签 forEach
begin设置开始元素,从0开始
end设置结束位置
step设置步长
varStatus设置状态,可以取出类似下标(index从0开始、count从1开始)
1 | <c:forEach items="${list}" var="str" begin="2" end="6" step="3" varStatus="stu"> |
格式化标签库常用标签
JSP引入:
1 | <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
1 | <% |
三、JSP综合案例(作用域增删改查)
User.java
1 | package com.huan.entity; |
index.jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
add.jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
update.jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
UserServlet.java
1 | package com.huan.servlet; |