JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。和serlvet对象相同。
JSP 内置对象只能在脚本和表达式中使用,在声明中不能使用。
JSP所支持的九大隐式对象:
对象 | 描述 |
---|---|
request | HttpServletRequest 接口的实例,保存的数据在一次请求中有效,请求转发会携带 (服务器跳转页面后有效,客户端跳转页面后无效) |
response | HttpServletResponse接口的实例 |
out | JspWriter类的实例,用于把结果输出至网页上 |
session | HttpSession类的实例,保存的数据在一次会话中有效,打开浏览器到关闭浏览器 |
application | ServletContext类的实例,与应用上下文有关,数据在服务器有效,打开服务到关闭服务器,所有用户可共享 |
config | ServletConfig类的实例,一个 Servlet 配置对象 |
pageContext | PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问,保存的数据只在一个页面中有效 |
page | 类似于Java类中的this关键字,属性只在当前 JSP 页面有效,跳转页面后失效。 |
exception | Exception类的对象,代表发生错误的JSP页面中对应的异常对象 |
四大域对象的作用域:page(当前页)→request(一次请求)→session(一次会话)→application(整个应用)
HttpServletRequest对象使用和Servlet一样
HttpServletResponse 的实例对象
JspWriter 的实例对象,包含了很多 IO 流中的方法和特性,最常用的就是输出内容到 HTML 中。
方法 | 说明 |
---|---|
void print() | 将内容直接打印在 HTML 标签中 |
void println() | 换行打印 |
void newLine() | 输出换行字符 |
void clear() | 清除页面缓冲区 |
boolean isAutoFlush() | 检查页面是否自动清除缓冲区 |
HttpSession 的实例对象,主要用来访问用户数据,记录客户的连接信息。
是 javax.servlet.ServletContext 的实例对象。在服务器部署应用和项目时,Web 容器仅创建一次 ServletContext 实例, application 设置的任何属性和值可以用于整个应用(所有 JSP 页面)。
实际开发中不推荐使用,否则容易造成内存不足等情况。
是 javax.servlet.ServletConfig 的实例对象,一般用于获取页面和 Servlet 的初始化参数。
是 javax.servlet.jsp.PageContext 的实例对象。表示整个 JSP 页面,可以获取或删除四大域对象的任意属性:page、request、session、application。
方 法 | 说 明 |
---|---|
Object findAttribute (String AttributeName) | 按 page、request、session、application 的顺序查找指定的属性,并返回对应的属性值。如果没有相应的属性,则返回 NULL |
Object getAttribute (String AttributeName, int Scope) | 在指定范围内获取属性值。 |
void removeAttribute(String AttributeName, int Scope) | 在指定范围内删除某属性 |
void setAttribute(String AttributeName, Object AttributeValue, int Scope) | 在指定范围内设置属性和属性值 |
Exception getException() | 返回当前页的 Exception 对象 |
ServletRequest getRequest() | 返回当前页的 request 对象 |
ServletResponse getResponse() | 返回当前页的 response 对象 |
ServletConfig getServletConfig() | 返回当前页的 ServletConfig 对象 |
HttpSession getSession() | 返回当前页的 session 对象 |
Object getPage() | 返回当前页的 page 对象 |
ServletContext getServletContext() | 返回当前页的 application 对象 |
JspWriter getOut() | 返回当前页的 out 对象 |
实质是 java.lang.Object 对象,相当于 Java 中的 this 关键字,指当前的 JSP 页面本身,不常用。
方 法 | 说 明 |
---|---|
class getClass() | 返回当前页面所在类 |
int hashCode() | 返回当前页面的 hash 值 |
String toString() | 将当前页面所在类转换成字符串 |
boolean equals(Object obj) | 比较对象和指定的对象是否相等 |
void copy (Object obj) | 把对象复制到指定的对象中 |
Object clone() | 复制对象 |
实际上是java.lang.Throwable的对象,代表JSP脚本中产生的错误和异常,在JSP中是无须处理异常,可以设置一个专门的异常处理页面,所有可能出现的异常都可以交给错误处理页面进行处理。
JSP处理异常是通过指令设置一个专门处理异常的页面error.jsp处理异常,然后其他的页面在指令值指定出现异常时跳转到此页面。
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="error.jsp" %>
只有指令中设置 isErrorPage=“true” 才可以使用此内置对象,它使用在 JSP表达式 中
异常类型是:<%=exception.getClass()%>
异常信息是:<%=exception.getMessage()%>