Jsp内置对象之域对象:
pageContext 页面容器 :属性的作用范围仅限当前的jsp页面(范围最小)
request 请求 :属性的作用范围仅限同一个请求(转发有效)
session 服务器储存 :属性的作用范围仅限于一次会话,浏览器打开直到关闭称为一次会话(在此期间会话不会失效)
application 公共储存 :属性的作用范围仅限于当前Web应用(范围最大)
它们的存储范围大小(大到小):application > session > request > page
EL表达式 : 全称Expression Language
为什么需要EL表达式:因为获取JavaBean属性必须要实例化并强制类型转化,使用EL表达式简化
EL的功能:代替JSP页面中的复杂代码
EL语法:以“${”作为开始,以“}”作为结束;运算符:“[]” ${bean['name']} “.” ${bean.name}(实质是调用bean的getName()方法)
例:获取对象集合中的数据,在session中保存了一个list集合user
${sessionScope.user[1]}——这是得到集合中的第二位对象
这里提到的sessionScope是EL隐式(隐含)对象:
JSTL(JavaServerPager Standard Tag Library) 标签:虽然EL表达式可以访问JavaBean的属性,但是并不能实现在JSP中进行逻辑判断,因而要使用JSTL标签。
优点:①提供一组标准标签 ②可用于编写各种动态JSP页面
使用JSTL步骤:先导包后搭建环境,在Jsp页面添加taglib指令,再编写代码:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:forEach items="${baen}" var="...">
</c:forEach>
JSTL标准标签库:
通用标签:set: 设置指定范围内的变量值
remove: 删除指定范围内的变量
out: 计算表达式并将结果输出显示
条件标签:if: 用于判断条件是否成立,与Java中的if语句作用相同
<c:if test="${yy!=null}">
<h1>欢迎使用该系统</h1>
</c:if>
<c:if test="${yy==null}">
<h1>你现在还没有登录,请点击下面的按钮</h1>
<button>请进行登录</button>
</c:if>
迭代标签:forEach: 指定迭代的次数
items="${list}" 表示存入域对象中的集合list,这里使用了EL表达式${ }来拿到它
<c:forEach items="${list}" var="goods">
<tr>
<th>${goods.goodsId}</th>
<th>${goods.goodsName}</th>
<th>${goods.goodsType}</th>
<th>${goods.goodsPrice}</th>
</tr>
</c:forEach>