JSP
指令
- 格式: <%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
- 分类:
- page 配置JSP页面
- contentType:等同于response.setContextType()
- import:导包
- errorPage:当页面发生异常后,会自动跳转到指定的错误页面
- isErrorPage:标识当前页是否是错误页面
- include:导入页面资源
<%@include file="top.jsp"%>
- taglib:导入资源
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- prefix:前缀,自定义
- page 配置JSP页面
注释
- HTML注释
<!-- -->
- JSP注释:推荐使用
<%-- --%>
内置对象
变量名 | 真实类型 | 作用 |
---|---|---|
pageContext | PageContext | 当前页面共享数据,还可以获取其他八个内置对象 |
request | HttpServletRequest | 一次请求访问的多个资源(转发) |
session | HttpSession | 一次会话的多个请求间 |
application | ServletContext | 所有用户间共享数据 |
response | HttpServletResponse | 响应对象 |
page | Object | 当前页面(Servlet)的对象 this |
out | JspWriter | 输出对象,数据输出到页面上 |
config | ServletConfig | Servlet的配置对象 |
exception | Throwable | 异常对象 |
EL
${表达式}
- jsp默认支持el表达式,设置page中的
isELIgnored="true"
忽略当前页面中的所有el表达式 \${表达式}
:忽略当前这个el表达式
使用
- 空运算符: empty
- 判断字符串、集合、数组对象是否为null或者长度是否为0
${empty list}
:判断字符串、集合、数组对象是否为null或者长度为0${not empty str}
:表示判断字符串、集合、数组对象是否不为null 并且 长度>0
- 获取值
- 只能从域对象中获取值 ${域名称.键名}
- pageScope --> pageContext
- requestScope --> request
- sessionScope --> session
- applicationScope --> application(ServletContext)
- ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止
- 获取对象、List集合、Map集合的值
- 对象:${域名称.键名.属性名}
- 本质上会去调用对象的getter方法
List集合:${域名称.键名[索引]}
- Map集合:
- ${域名称.键名.key名称}
- ${域名称.键名["key名称"]}
- 对象:${域名称.键名.属性名}
- 只能从域对象中获取值 ${域名称.键名}
${pageContext.request.contextPath}
:动态获取虚拟目录
JSTL
JSP标准标签库
使用步骤
- 导入jstl相关jar包
- 引入标签库:taglib
常用的JSTL标签
if
<c:if test=""></c:if>
choose
<c:choose> <c:when test="">情况1</c:when> <c:when test="">情况2</c:when> <c:otherwise>其他情况</c:otherwise> </c:choose>
foreach
- 完成重复的操作
for(int i = 0; i < 10; i ++)
- 属性:
- begin:开始值
- end:结束值
- var:临时变量
- step:步长
- varStatus:循环状态对象
- index:容器中元素的索引,从0开始
- count:循环次数,从1开始
- 属性:
- 遍历容器
for(User user : list)
- 属性:
- items:容器对象
- var:容器中元素的临时变量
- varStatus:循环状态对象
- index:容器中元素的索引,从0开始
- count:循环次数,从1开始
- 属性:
- 完成重复的操作