一、基础
1、概念
Java Server Pages: java服务器端页面
JSP 可以理解为一个特殊的页面,其中既可以指定定义 html 标签,又可以定义 java 代码
2、原理
JSP 本质上就是一个 Servlet
3、JSP的脚本:JSP 定义 Java 代码的方式
<% 代码 %>:定义的 java 代码在 service 方法中,service 方法中可以定义什么,该脚本中就可以定义什么。
<%! 代码 %>:定义的 java 代码在 jsp 转换后的 java 类的成员位置。
<%= 代码 %>:定义的 java 代码会输出到页面上,输出语句中可以定义什么,该脚本中就可以定义什么。
4、JSP的内置对象
在 jsp 页面中不需要获取和创建,可以直接使用的对象
jsp 一共有9个内置对象,先列出3个:
- request
- response
- out:字符输出流对象,可以将数据输出到页面上,和 response.getWriter() 类似
response.getWriter()
和 out.write()
的区别:
在 tomcat 服务器真正给客户端做出响应之前,会先找 response 缓冲区数据,再找 out 缓冲区数据。
response.getWriter() 数据输出永远在 out.write() 之前
二、指令
1、作用
用于配置JSP页面,导入资源文件
2、格式
<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
3、分类
(1)page:配置JSP页面的
- contentType:等同于
response.setContentType()
设置响应体的mime类型以及字符集
设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncoding属性设置当前页面的字符集)
- import:导包
- errorPage:当前页面发生异常后,会自动跳转到指定的错误页
- isErrorPage:标识当前也是是否是错误页面
true:是,可以使用内置对象 exception
false:否。默认值。不可以使用内置对象 exception
(2)include:页面包含的,导入页面的资源文件
<%@include file="top.jsp"%>
(3)taglib:导入资源
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
prefix:前缀,自定义的
三、注释
- html 注释
<!-- -->
:只能注释html代码片段
- jsp注释:推荐使用
<%-- --%>
:可以注释所有
四、内置对象
1、在jsp页面中不需要创建,直接使用的对象
2、九大内置对象(前4个为四大域对象)
变量名 | 真实类型 | 作用 |
---|---|---|
pageContext | PageContext | 当前页面共享数据,还可以获取其他八个内置对象 |
request | HttpServletRequest | 当前页面共享数据,还可以获取其他八个内置对象 |
session | HttpSession | 一次会话的多个请求间 |
application | ServletContext | 所有用户间共享数据 |
response | HttpServletResponse | 响应对象 |
page | Object | 当前页面(Servlet)的对象 this |
out | JspWriter | 输出对象,数据输出到页面上 |
config | ServletConfig | Servlet的配置对象 |
exception | Throwable | 异常对象 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!