1.域对象
1.1概述
主要负责在不同web资源之间进行数据交换,(如:servlet和jsp之间的数据交换)。由于不同的web资源之间需要共享数据,所以就有了域对象。
1.2四个域对象
pageContext -- page域
request -- request域
session -- session域
application -- context域
1.3域对象作用
保存数据和获取数据,用于数据共享。
1.4域对象方法
setAttribute("name",Object) 保存数据
getAttribute("name") 获取数据
removeAttribute("name") 清除数据
1.5域对象作用范围
page域: 只能在当前jsp页面中使用(当前页面)
request域: 只能在同一个请求中使用(转发)
session域: 只能在同一个会话(session对象)中使用(私有的)
context域: 只能在同一个web应用中使用。(全局的)
2.EL表达式与JSTL标准标签库
2.1EL与JSTL的作用
简化JSP页面上Java代码开发步骤,替代Java代码。
注意:
JSP页面的主要任务:将域对象中数据读取并写入。
2.2EL表达式
(1)是一个Java开发工具包
(2)专门用于从域对象读取数据并写入到响应体开发任务
(3)语法格式:路径格式,类似于jQuery中选择器和过滤器语法
(4)EL工具包自动存在Tomcat中的lib目录下(el-api.jar)【开发时,可以直接使用不需要额外导包】
2.3EL的标准格式
(1)EL访问JavaBean的属性
${key.属性}
(2)EL访问数组中的数据
${数组名[下标]}
${数组名[下标].属性}
(3)EL获取list中数据
${集合名[下标]}
(4)EL访问Map
${集合名.key}
2.4EL隐式对象
JSP EL
5application applicationScope
session sessionScope
request requestScope
pageContext pageScope
2.5EL中的运算符
算术运算符:+、-、*、/、%(不支持++、–)
关系运算符:==、!=、>、>=、<、<= 对应 eq ne gt ge lt le
逻辑运算符:!、&&、|| 对应 not、and、or
条件运算符:?:
取值运算符:[]、点号
empty运算符
2.6相对路径与绝对路径
相对路径与绝对路径的区别
(1)相对路径:以当前文件位置为起点,定位其它的资源文件
(2)绝对路径:以网站根目录为起点,定位其它的资源的文件
3.JSTL标签工具库
3.1概述
JSTL( JSP Standard Tag Library)是JSP标准标签库,由apache实现,因为在jsp中出现大量Java代码不利于维护,sun公司就制定了一个类似于html标签一下的jsp标签技术。
3.2组成
核心标签:Java在JSP上基本功能进行封装 if foreach
sql标签:JDBC在JSP上使用功能
xml标签:DOM4J在JSP使用功能
Format标签:JSP文件格式转换
3.3配置
导入依赖jar:jstl.jar standrad.jar
在jsp文件中引入JSTL中core包依赖约束
<%@ taglib uri = "" prefix = "c"%>
3.4常用标签使用
1.out标签
作用:输出常量和变量
2.set标签
作用:存值到scope中,可以将值以变量的形式存放到指定的范围
属性:
scope设定存放值的内容
value指定存放值的内容
var设定存放的变量
3.remove标签
作用:remove掉某一个变量
属性:
var属性是必选的
scope属性是必选的
4.if标签
作用:实现分支条件的控制
属性:
test属性用来存放判断条件,一般使用EL表达式来编写
var属性指定名称用来存放判断结果类型为true还是false
scope属性用来存放指定var属性存放的范围
5.choose、when、otherwise标签
作用:类似Java的switch多分支语句
<c:choose>标签嵌套在<c:when>和<c:otherwise>标签的外面作为父标签来使用。
<c:choose>标签和<c:when>标签也可以组合使用。
6.forEach标签(重点!!!重点!!!重点!!!)
作用:根据循环条件遍历集合中的元素
属性:
var设定变量名用于存储从集合中取出的元素(必须无默认值)
items指定要遍历的集合
begin、and用于指定遍历的起始位置和终止位置(有默认值)
step指定循环的步长(有默认值)
varStatus通过index、count、first、last几个状态值,描述begin和end子集中的元素的状态。
7.forTookens标签
作用:用于浏览字符串,并根据指定的字符串将字符串截取。
属性:
items指定被迭代的字符串
delims指定使用的分隔符
var指定用来存放遍历的元素
<c:set var="zifu" value="中国,美国,英国,法国" scope="page"/>
<c:forTokens items="${pageScope.zifu}" delims="," var="z">
${z}<br>
</c:forTokens>