JSP: JSP内置对象
1 基本概念
在JSP程序中有9个内置对象,由容器为用户进行实例化,程序员可以不用定义,就直接使用这些变量
在JSP转换成Servlet后,会自动追加这些变量的定义,使用内置对象可以简化JSP的开发
2 对象名称
对象变量 | 对象类型 | 作用 |
out | JSPWriter | 输出流 |
request | HttpServletRequest | 请求信息 |
response | HttpServletResponse | 响应信息 |
session | HttpSession | 会话 |
application | ServletContext | 全局的上下文对象 |
pageContext | PageContext | JSP页面上下文 |
page | Object | JSP页面本身 |
config | ServletConfig | Servlet配置对象 |
exception | Throwable | 捕获网页异常 |
3 out内置对象
out内置对象,是一个缓冲的输出流,用来给客户端输出信息
常用方法如下:
方法声明 | 功能介绍 |
void println(String x) | 向客户端输出各种类型数据 |
void newLine() | 输出一个换行符 |
void close() | 关闭输出流 |
int getBufferSize() | 返回缓冲区的大小 |
int getRemaining() | 返回缓冲区中未使用的字节数 |
void flush() | 输出缓冲区里的数据 |
void clearBuffer() | 清除缓冲区里的数据,同时把数据输出到客户端 |
void clear() | 清除缓冲区里的数据,但不把数据输出到客户端 |
4 request内置对象
request对象,封装的是调用JSP页面的请求信息,它是HttpServletRequest接口的一个实例
该对象的属性值,只在一个请求中保存
常用方法如下:
方法声明 | 功能介绍 |
String getMethod() | 返回客户端向服务器端传送数据的方式 |
String getParameter(String name) | 返回客户端向服务器端传送的参数值 |
String[] getParameterValues( String name) | 获得指定参数的所有值 |
String getRequestURI() | 获得请求地址 |
String getRemoteAddr() | 返回发送请求的客户端,或最后一个代理的IP地址 |
int getRemotePort() | 返回发送请求的客户端,或最后一个代理的端口号 |
String getServerName() | 获取服务器的名字 |
int getServerPort() | 获取服务器端的端口 |
void setAttribute(String name,Object o) | 在此请求中存储属性。属性在请求之间重置 |
Object getAttribute(String name) | 将指定属性的值作为对象返回,若不存在则返回空值 |
5 response内置对象
response对象,用于给客户端相应输出处理结果,它是HttpServletResponse接口的一个实例
经常用于设置HTTP标题,添加cookie、设置响应内容的类型和状态、发送HTTP重定向和编码 URL
常用方法如下:
方法声明 | 功能介绍 |
void addCookie(Cookie cookie) | 添加一个Cookie对象,用于在客户端保存特定的信息 |
void addHeader(String name, String value) | 添加HTTP头信息,该Header信息将发送到客户端 |
boolean containsHeader(String name) | 判断指定名字的HTTP文件头是否存在 |
void sendRedirect(String location) | 重定向JSP文件 |
void setContentType(String type) | 设置类型与编码方式 |
6 session内置对象
session对象,表示浏览器和服务器之间的一次会话,一次会话可以包含多次请求,在多次请求之间,可以借助session对象存储信息,它是HttpSession类型的一个实例
该对象的属性值,在一次会话范围中保存,保存在服务器端,只要不关闭浏览器,默认半个小时内,都可以访问
常用方法如下:
方法声明 | 功能介绍 |
void setAttribute(String name, Object value) | 使用指定的名称,将对象绑定到此会话 |
Object getAttribute(String name) | 返回在此会话中,用指定名称绑定的对象,如果没有对象在该名称下绑定,则返回空值 |
7 application内置对象
application对象,是一个web程序的全局变量,它是ServletContext类型的一个实例
在整个服务器上保存数据,所有用户共享
常用方法如下:
方法声明 | 功能介绍 |
void setAttribute(String name, Object object) | 将对象绑定到此servlet上下文中的给定属性名 |
Object getAttribute(String name) | 返回给定名称的servlet容器属性,若没有该名称的属性,返回null |
8 pageContext内置对象
pageContext对象,是PageContext类型的对象,可以使用这个对象,来管理其他的隐含对象。
只在一个页面中保存数据
方法声明 | 功能介绍 |
void setAttribute(String name, Object value, int scope) | 使用适当的作用域,设置指定的名称和值 |
Object getAttribute(String name, int scope) | 返回指定作用域中名称关联的对象,若找不到则返回null |
ServletRequest getRequest() | 获取请求对象 |
ServletResponse getResponse() | 获取响应对象 |
HttpSession getSession() | 获取会话对象 |
ServletConfig getServletConfig() | 获取配置对象 |
JspWriter getOut() | 获取输出对象 |
Object getPage() | 获取页面对象 |
Exception getException() | 获取异常对象 |
9 exception内置对象
exception 对象是Throwable的实例,表示的是JSP的异常信息
如果要使用它,必须将对应页面page指令的isErrorPage属性,设置成true
单个页面的处理方式
<%@page errorPage="error.jsp" %>
在web.xml中配置统一的异常处理页面
<error-page> <exception-type>java.lang.Throwable</exception-type> <location>/error.jsp</location> </error-page>