一、JSP
1. 概述
代码语言:javascript
复制* 当浏览器请求对应的JSP 时 ,JSP 经过转义形成对应的java文件,java文件
经过编译 链接 形成 .class 文件。.class 文件会用来创建 servlet 对象
这个对象就可以提供动态html响应。
2. JSP语法
代码语言:javascript
复制① 声明区
* <%! 在类中方法外,属于成员位置 %>
② 表达式
* <%= 这里输出到页面,在 service 方法中 %>
③ 代码块--- 代码片段
* <% 在 service 方法中 %>
④ JSP 中的注释
* <!-- 标记语言注释 --> 它是要发给浏览器的
* <%-- JSP 注释 --%> 不发给浏览器
* java语言注释 // /**/ /** */ 不发给浏览器
3. JSP指令
代码语言:javascript
复制① 语法
* <%@指令名 属性="值" 属性2="值" %>
② JSP 中的三大指令 作用 以及属性 属性作用
* page 指令
- 作用:用来导包 和做一些页面属性的设置
- 属性:
import 用来导包
errorPage 当jsp出现错误时 跳转到显示比较友好的一个页面上
isErrorPage 是不是一个错误 页面 如果是则可以使用exception对象来获取异常信息
pageEncoding 页面用什么编码保存页面信息
contentType 页面以什么格式和编码进行显示数据
* taglib指令
- 作用:用来导入标签库的指令
- 属性:
prefix 前缀 用来指定标签库的代号 短名
uri 统一资源标识 用来指定标签库的位置
* include 指令
- 作用: 用来包含特定页面的指令 静态包含
- 属性:
file 用来指定包含的页面
4. JSP动作
代码语言:javascript
复制① 语法
* <jsp:动作名 属性="值" > </jsp:动作名>
如果中间没有内容 还可以简写成 <jsp:动作名 属性="值" / >
* 示例
<jsp:include 属性="值" >
<jsp:param name="" value="" /> //传递参数
</jsp:include>
5. JSP九大内置对象
代码语言:javascript
复制* out JspWriter 向jsp对应位置输出内容
* request HttpServletRequest 封装Http请求信息的对象
* response HttpServletResponse 封装Http响应信息的对象
* session HttpSession 封装会话信息的对象
* pageContext PageContext 封装页面上下文信息的对象
* page Object JSP 页面本身
* application ServletContext 封装servlet上下文信息的对象
* config ServletConfig 封装servlet 配置信息的对象
* exception Exception 封装异常信息的对象
二、EL表达式
1. 概述
代码语言:javascript
复制* Expression Language 表达式语言,用于替换和简化jsp页面中java代码的编写
2. 用法
代码语言:javascript
复制* ${表达式}
* 忽略 EL 表达式
${表达式}
<%@page isELIgnored="true" %>
3. 语法
代码语言:javascript
复制① ${域名称.键名}:从指定域中获取指定键的值
* 域名称:
1. pageScope --> pageContext
2. requestScope --> request
3. sessionScope --> session
4. applicationScope --> application(ServletContext)
* 示例
${requestScope.name}
② ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。
③ 获取对象、List集合、Map集合的值
- 对象:
* ${域名称.键名.属性名}
本质上会去调用对象的getter方法
- List集合:
* ${域名称.键名[索引]}
- Map集合:
* ${域名称.键名.key名称}
* ${域名称.键名["key名称"]}
④ 隐式对象:
* el表达式中有11个隐式对象
* pageContext:
* 获取jsp其他八个内置对象
* 示例:
${pageContext.request.contextPath}:动态获取虚拟目录
三、JSTL
1. 概述
代码语言:javascript
复制* JavaServer Pages Tag Library JSP标准标签库,是由Apache组织提供的开源的免费的jsp标签
2. 用法
代码语言:javascript
复制* 导包
* 引入标签库
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
3. 语法
代码语言:javascript
复制① if:相当于java代码的if语句
- 属性:
* test 必须属性,接受boolean表达式
* 如果表达式为true,则显示if标签体内容,如果为false,则不显示标签体内容
* 一般情况下,test属性值会结合el表达式一起使用
- 注意:
代码语言:javascript
复制 * c:if标签没有else情况,想要else情况,则可以在定义一个c:if标签
② choose:相当于java代码的switch语句
- 使用choose标签声明 相当于switch声明
- 使用when标签做判断 相当于case
- 使用otherwise标签做其他情况的声明 相当于default
③ foreach:相当于java代码的for语句
- 遍历集合
<c:forEach items="${requestScope.pageBean.list}" var="emp" varStatus="s">
${emp.xxx}
</c:forEach>
- for循环
<c:forEach begin="1" var="i" step="2" end="${requestScope.pageBean.pageCount}" varStatus="s">
${i} //从 beging 开始 步长为2 前进
${s.index} //从 0 开始
</c:forEach>