当前位置: 首页 > 教程 > JSP >

JSP内置对象

精华
小牛编辑
202浏览
2023-03-14
为了简化页面的开发过程,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。 该作用域中的属性只在当前请求范围内有效。
  • 服务器跳转页面后有效,例如<jsp:forward>;
  • 客户端跳转页面后无效,例如超链接。
session 如果把属性保存到 session 中,则它的作用域是 session。 该作用域中的属性只在当前会话范围内有效,网页关闭后失效。
application 如果把属性保存到 application 中,则它的作用域是 application。 该作用域中的属性在整个应用范围内有效,服务器重启后失效。