为了简化页面的开发过程,JSP 提供了一些内置对象。
JSP 内置对象又称为隐式对象,它们由容器实现和管理。在 JSP 页面中,这些内置对象不需要预先声明,也不需要进行实例化,我们可以直接在脚本和表达式中使用。
注意:JSP 内置对象只能在脚本和表达式中使用,在声明中不能使用。
九大内置对象
JSP 中定义了 9 个内置对象,它们分别是:request、response、session、application、out、pagecontext、config、page 和 exception,这些对象在客户端和服务器端交互的过程中分别完成不同的功能。
对 象
类型
说 明
request
javax.servlet.http.HttpServletRequest
获取用户请求信息
response
javax.servlet.http.HttpServletResponse
响应客户端请求,并将处理信息返回到客户端
out
javax.servlet.jsp.JspWriter
输出内容到 HTML 中
session
javax.servlet.http.HttpSession
用来保存用户信息
application
javax.servlet.ServletContext
所有用户共享信息
config
javax.servlet.ServletConfig
这是一个 Servlet 配置对象,用于 Servlet 和页面的初始化参数
pageContext
javax.servlet.jsp.PageContext
JSP 的页面容器,用于访问 page、request、application 和 session 的属性
page
javax.servlet.jsp.HttpJspPage
类似于 Java 类的 this 关键字,表示当前 JSP 页面
exception
java.lang.Throwable
该对象用于处理 JSP 文件执行时发生的错误和异常;只有在 JSP 页面的 page 指令中指定 isErrorPage 的取值 true 时,才可以在本页面使用 exception 对象。
JSP 的内置对象主要有以下特点:
由 JSP 规范提供,不用编写者实例化;
通过 Web 容器实现和管理;
所有 JSP 页面均可使用;
只有在脚本元素的表达式或代码段中才能使用。
四大域对象
在 JSP 九大内置对象中,包含四个域对象,它们分别是:pageContext(page 域对象)、request(request 域对象)、session(session 域对象)、以及 application(application 域对象)。
JSP 中的 4 个域对象都能通过以下 3 个方法,对属性进行保存、获取和移除操作。
返回值类型
方法
作用
void
setAttribute(String name, Object o)
将属性保存到域对象中
Object
getAttribute(String name)
获取域对象中的属性值
void
removeAttribute(String name)
将属性从域对象中移除
JSP 中的 4 个域对象的作用域各不相同,如下表。
作用域
描述
作用范围
page
如果把属性保存到 pageContext 中,则它的作用域是 page。
该作用域中的属性只在当前 JSP 页面有效,跳转页面后失效。
request
如果把属性保存到 request 中,则它的作用域是 request。
该作用域中的属性只在当前请求范围内有效。
服务器跳转页面后有效,例如
客户端跳转页面后无效,例如超链接。
session
如果把属性保存到 session 中,则它的作用域是 session。
该作用域中的属性只在当前会话范围内有效,网页关闭后失效。
application
如果把属性保存到 application 中,则它的作用域是 application。
该作用域中的属性在整个应用范围内有效,服务器重启后失效。