1. 什么是JSP
JSP全名为Java Server Pages,中⽂名叫java服务器⻚⾯,其根本是⼀个简化的Servlet设计,
⽤JSP开发的Web应⽤是跨平台的,既能在Linux下运⾏,也能在其他操作系 统上运⾏
*.html 静态⻚⾯(包含固定的⻚⾯内容)
*.jsp 动态⻚⾯(⻚⾯数据可以动态更新,⽀持嵌套java代码和html代码)
2. JSP为什么会出现
1.servlet展示信息的不⽅便,引⼊了JSP。
2.JSP本质上也是⼀个servlet!!!!!!
3.JSP就是在HTML⻚⾯中嵌⼊了java代码
3.JSP中如何嵌套java代码 (了解)
答案:⼩脚本(<% java代码%>)
jsp中的注释 :
<%— jsp注释,查看⻚⾯源码时看不到 —%>
4. JSP的原理
jsp—>.java—>.class—>运行
当浏览器访问http://localhost:8080/day9_1/index.jsp。服务器发现后缀为.jsp,它会根据路径找到 index.jsp⽂件,会将index.jsp翻译成index_jsp.java⽂件,对这个java⽂件进⾏编译,产⽣⼀个 index_jsp.class⽂件,将class⽂件加载运⾏。将JSP翻译成java⽂件,它是将JSP中的所有的HTML代码通 过流进⾏输出,也就是说最终翻译成class,被虚拟机加载,它本质是servlet,它就会往回响应,响应回 去就是把JSP中的HTML代码以流的⽅式写回浏览器。所以在JSP中展示出了HTML代码
5. JSP的内置对象
九个对象⭐
JSP中⼀共预先定义了9个这样的对象,分别为:
request、response、session、application、out、 pagecontext、config、page、exception
四个可以存取值的内置对象:
request 的作用域为一次请求
session的作用域为当前会话(多次请求)
pagecontext的作用域为当前页面
application的作用域为整个服务器
out:用来输出的
config 对象 : config 对象的主要作⽤是取得服务器的配置信息
page 对象 : page隐含对象本质上包含当前 Servlet 接⼝引⽤的变量,类似于Java编程中的 this 指针。
exception 对象 : exception 对象的作⽤是显示异常信息,只有在包含 isErrorPage=”true” 的⻚⾯中才可以被使⽤,
6. JSP的指令
JSP指令⽤来设置整个JSP⻚⾯相关的属性,如⽹⻚的编码⽅式和脚本语⾔。
三大指令
(1)Page指令
Page指令为容器提供当前⻚⾯的使⽤说明
⼀个JSP⻚⾯可以包含多个page指令
Page指令的语法格式: <%@ page attribute=”value” %>
(2) Include指令
JSP可以通过include指令来包含其他⽂件。被包含的⽂件可以是JSP⽂件、HTML⽂件或⽂本⽂件。包含 的⽂件就好像是该JSP⽂件的⼀部分,会被同时编译执⾏。
Include指令的语法格式如下:
<%@ include file=”⽂件相对 url 地址” %>
include 指令中的⽂件名实际上是⼀个相对的 URL 地址。
(3)Taglib指令
JSP API允许⽤户⾃定义标签,⼀个⾃定义标签库就是⾃定义标签的集合。
Taglib指令引⼊⼀个⾃定义标签集合的定义,包括库路径、⾃定义标签。
<%@ taglib uri=”uri” prefix=”” %>
uri属性确定标签库的位置,prefix属性指定标签库的前缀(可⾃定义)。
7. JSP出现的状态码
8. EL表达式
(1)什么Expression Language 表达式语⾔
在JSP中使⽤EL表达式,可以简化对象和变量的访问是EL表达式
(2)EL表达式语法
语法格式:${需要展示信息的名字}
注意: 当表达式没有指定变量或者对象的范围时,
那么容器会依次从pageContext—>request—>session—>application中查找该变量或对象,我们可以 通过隐含对象获得指定作⽤域的值:
pageScope对象,⽤于获取当前⻚⾯的属性值
requestScope对象,⽤于获取请求范围的属性值
sessionScope对象,⽤于获取会话范围的属性值
applicationScope对象,⽤于获取程序范围的属性值
语法: ${requestScope.key}
(3)EL中基础操作符
9. JSTL ⭐
(1) 什么是JSTL
JSP标准标签库(JSTL)是⼀个JSP标签集合,它封装了JSP应⽤的通⽤核⼼功能。 JSTL⽀持通⽤的、结构化的任务,⽐如迭代,条件判断,XML⽂档操作,国际化标签,SQL标签。 除了 这些,它还提供了⼀个框架来使⽤集成JSTL的⾃定义标签。 根据JSTL标签所提供的功能,可以将其分为5个类别。核⼼标签 格式化标签 sql标签 xml标签 jstl函数 (后⾯详细解释)
(2) JSTL的作⽤和语法格式
作⽤:简化jsp⻚⾯编写代码
语法格式: 1. 下载 jakarta-taglibs-standard-1.1.2.zip 包并解压,将 jakarta-taglibs-standard-1.1.2/lib/ 下的两 个 jar ⽂件:standard.jar 和 jstl.jar ⽂件拷⻉到 /WEB-INF/lib/ 下。
- 在JSP⻚⾯中引⼊
<%@ taglib prefix=”⻚⾯使⽤的名称” uri=”功能范围的路径”%>
(3) 核⼼标签 c
核⼼标签的分类
表达式操作 out、set、remove、catch
流程控制 if、choose、when、otherwise
迭代操作 forEach、forTokens
URL操作 import、param、url、redirect
Set标签
if标签 ⭐
choose标签
foreach标签⭐
<c:forEach> 循环控制,它可以将数组,集合(Collection)中的成员循序浏览⼀遍。
(4)格式化标签
formatDate标签⭐
1、fmt:formatDate 作⽤:将⽇期类型格式化为指定模式的字符串
value:将要被格式化的数据
pattern:格式化的模式,与SimpleDateFormat的参数设置⼀样