1.EL表达式&域对象
EL即“Expression Language(表达式语言)”的简写,它可以替代JSP页面中的复杂的Java代码。当EL得到某个数据时可以自动转换数据,因此对于类型的限制更加宽松,使用也更加简单。
EL语法:
- ${EL expression}:直接使用变量名获取值
- ${bean.name}或${bean['name']}:属性名里特殊符号时使用
1.1:EL运算符
EL运算符有“[ ]”,“.”
获取对象属性:${user.name}或${user[name]}
获取对象集合中的数据:${sessionScope.user[1]},通过下标获取
1.2:四大作用域的优先级
若EL表达式在获取作用域里面的值时没有指定作用域,则是按照以下作用域从高到低的优先级来依次查找获取的,找到即不会再继续往下找
-
在当前页面(页面没有发生跳转):page>request>session>application
-
页面发生跳转:request>session>application
若四大作用域在同一页面里的键名一样,默认获取的是page的值,若想获取其他作用域里面的值可指定获取哪个作用域里面的值,例:${requestScope.键名}
1.3:四大作用域范围
- EL表达式是从四大作用域里获取数据;
- page(只在当前页面有效)<request<session<application
- EL表达式要获取的键没有则为空白空的页面
- EL表达式里面不可调用方法
- 不可在JSP中进行逻辑判断
1.4:变量属性范围名称(域对象)
属性范围 | EL中的名称 |
page
| pageScope 例如:${pageScope.username},表示在page范围内查找username变量,找不到返回空 |
request | requstScope |
session | sessionScope |
application | applicationScope |
1.5:通过EL表达式获取请求参数
获取单个:${param.参数名}
获取多个:${paramValues.参数名}
1.6:EL隐式对象
对象名称 | 描述 |
pageScope | 返回页面范围的变量名,这些名称已映射至相应的值 |
requestScope | 返回请求范围的变量名,这些名称已映射至相应的值 |
sessionScope | 返回会话范围的变量名,这些名称已映射至相应的值 |
applicationScope | 返回应用范围内的变量,并将变量名映射至相应的值 |
param | 返回客户端的请求参数的字符串值 |
paramValues | 返回映射至客户端的请求参数的一组值 |
pageContext | 提供对用户请求和页面信息的访问 |
2.JSTL
JSTL(JavaServerPages Standard Tag Library)JSP标准标签库,可提供一组标准标签和用于编写各种动态JSP页面,因此JSTL通常会域EL 表达式合作实现JSP页面的编码。
1.1:引入C标签
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
1.2:JSTL标准标签库内的标签
set:用于给变量设置值和作用范围;例:<c:set var= "example" value="${100+1}" scope="session" />
out:计算表达式并将结果输出显示,即在页面上显示信息或变量值;例:<c:out value="${example}"/>
remove:删除指定范围内的变量;例:<c:remove var= "example" scope="session"/>
if:if标签用于判断条件是否成立,与Java中的If语句作用相同,else需从新再判断一次

1.3:获取项目名
${pageContext.request.contextPath }