JSP九大内置对象 : 内置对象( 又叫隐含对象, 有九个内置对象 ) : 不需要预先声明就可以在脚本代码和表达式中随意使用 .
1. request 对象 :
代表的是来自客户端的请求 , 客户端发送的请求封装在 request 对象中 , 通过它才能了解到用户的请求信息 , 然后作出响应 , 它是 HTTPServletRequest 的实例 , 作用域为 request ( 响应生成之前 )
常用方法
Object getAttribute(String name);// 返回指定属性的属性值
void setAttribute(String key, Object value);// 设置属性的属性值
Enumeration getAttributeNames();// 返回所有可以用属性名的枚举
String getParameter(String name);// 返回指定name的参数值
Enumeration getParameterNames();// 返回可用参数名的枚举
String[] getParameterValues(String name);// 返回包含参数name的所有制的数组
ServletInputStream geetInputStream();// 得到请求体中一行的二进制流
BufferedReader getReader();// 返回解码过了的请求体
String getServerName();// 返回接收请求的服务器主机名
int getServerPort();// 返回服务器接收此请求所用的端口号
String getRemoteAddr();// 返回发送请求的客户端的IP地址
String getRemoteHost();// 返回发送请求的客户端主机名
String getRealPath();// 返回一个虚拟路径的真实路径
String getCharacterEncoding();// 返回字符编码方式
int geContentLength();// 返回请求体的长度 ( 字节数 )
String getContentType();// 返回请求体的MIME类型
String getProtocol();// 返回请求用的协议类型以及版本号
String getScheme();// 返回请求用的协议名称( 例如 : http https ftp )
2. response 对象 :
对象代表的是对客户端的响应 , 也就是说可以通过 response 对象来组织发送到客户端的数据 ; 但是由于组织方式比较底层 , 所以不建议初学者使用 , 需要向客户端发送文字时直接使用 ; 它是 HttpServletResponse 的实例 ; 作用域为 page ( 页面执行期 )
常用方法
String getCharacterEncoding();// 返回响应用的是哪种字符编码
ServletOutputStream getOutputStream();// 返回响应的一个二进制输出流
PrintWriter getWriter();// 返回可以向客户端输出字符的一个对象
void setContentLength(int len);// 设置响应头长度
void setContentType(String type);// 设置响应的MIME类型
void sendRedirect(String location);// 重新定向客户端的请求
3. session 对象 :
指的是客户端与服务器的一次会话 , 从客户连接到服务器的一个 WebApplication 开始 , 直到客户端与服务器断开连接为止 ; 它是 HTTPSession 类的实例 , 作用域为 session ( 会话期 )
常用方法
long getCreationTime();// 返回SESSION创建时间
public String getId();// 返回SESSION创建时JSP引擎为它设的惟一ID号
long getLastAccessedTime();// 返回此SESSION里客户端最近一次请求时间
int getMaxInactiveInterval();// 返回两次请求间隔多长时间此SESSION被取消(ms)
String[] getValueNames();// 返回一个包含此SESSION中所有可用属性的数组
void invalidate();// 取消SESSION,使SESSION不可用
boolean isNew();// 返回服务器创建的一个SESSION,客户端是否已经加入
void removeValue(String name);// 删除SESSION中指定的属性
void setMaxInactiveInterval();// 设置两次请求间隔多长时间此SESSION被取消(ms)
4. out 对象 :
out 对象是 JspWriter 类的实例,是向客户端输出内容常用的对象 ; 作用域为 page ( 页面执行期 )
常用方法:
void clear();// 清除缓冲区的内容
void clearBuffer();// 清除缓冲区的当前内容
void flush();// 清空流
int getBufferSize();// 返回缓冲区以字节数的大小,如不设缓冲区则为0
int getRemaining();// 返回缓冲区还剩余多少可用
boolean isAutoFlush();// 返回缓冲区满时,是自动清空还是抛出异常
void close();// 关闭输出流
5. page 对象 :
page 对象就是指向当前 JSP 页面本身 , 有点象类中的 this 指针 , 它是 Object 类的实例 ; page 对象代表了正在运行的由 JSP 文件产生的类对象 , 不建议初学者使用 ; 作用域为 page ( 页面执行期 )
常用方法:
class getClass();// 返回此Object的类
int hashCode();// 返回此Object的hash码
boolean equals(Object obj);// 判断此Object是否与指定的Object对象相等
void copy(Object obj);// 把此Object拷贝到指定的Object对象中
Object clone();// 克隆此Object对象
String toString();// 把此Object对象转换成String类的对象
void notify();// 唤醒一个等待的线程
void notifyAll();// 唤醒所有等待的线程
void wait(int timeout);// 使一个线程处于等待直到timeout结束或被唤醒
void wait();// 使一个线程处于等待直到被唤醒
void enterMonitor();// 对Object加锁
void exitMonitor();// 对Object开锁
6. application 对象 :
实现了用户间数据的共享 , 可存放全局变量 ; 它开始于服务器的启动 , 直到服务器的关闭 , 在此期间 , 此对象将一直存在 ; 这样在用户的前后连接或不同用户之间的连接中 , 可以对此对象的同一属性进行操作 ; 在任何地方对此对象属性的操作 , 都将影响到其他用户对此的访问 ; 服务器的启动和关闭决定了 application 对象的生命 ; 它是 ServletContext 类的实例 ; 作用域为 application
常用方法:
Object getAttribute(String name);// 返回给定名的属性值
Enumeration getAttributeNames();// 返回所有可用属性名的枚举
void setAttribute(String name,Object obj);// 设定属性的属性值
void removeAttribute(String name);// 删除一属性及其属性值
String getServerInfo();// 返回JSP(SERVLET)引擎名及版本号
String getRealPath(String path);// 返回一虚拟路径的真实路径
ServletContext getContext(String uripath);// 返回指定WebApplication的application对象
int getMajorVersion();// 返回服务器支持的Servlet API的最大版本号
int getMinorVersion();// 返回服务器支持的Servlet API的最大版本号
String getMimeType(String file);// 返回指定文件的MIME类型
URL getResource(String path);// 返回指定资源(文件及目录)的URL路径
InputStream getResourceAsStream(String path);// 返回指定资源的输入流
RequestDispatcher getRequestDispatcher(String uripath);// 返回指定资源的RequestDispatcher对象
Servlet getServlet(String name);// 返回指定名的Servlet
Enumeration getServlets();// 返回所有Servlet的枚举
Enumeration getServletNames();// 返回所有Servlet名的枚举
void log(String msg);// 把指定消息写入Servlet的日志文件
void log(Exception exception,String msg);// 把指定异常的栈轨迹及错误消息写入Servlet的日志文件
void log(String msg,Throwable throwable);// 把栈轨迹及给出的Throwable异常的说明信息 写入Servlet的日志文件
7. pageContext 对象 :
提供了对 JSP 页面内所有的对象及名字空间的访问 , 也就是说他可以访问到本页所在的 session , 也可以取本页面所在的 application 的某一属性值 , 他相当于页面中所有功能的集大成者 , 它的本类名也叫 pageContext ; 作用域为 Pageconfig 对象
常用方法:
JspWriter getOut();// 返回当前客户端响应被使用的JspWriter流(out)
HttpSession getSession();// 返回当前页中的HttpSession对象(session)
Object getPage();// 返回当前页的Object对象(page)
ServletRequest getRequest();// 返回当前页的ServletRequest对象(request)
ServletResponse getResponse();// 返回当前页的ServletResponse对象(response)
Exception getException();// 返回当前页的Exception对象(exception)
ServletConfig getServletConfig();// 返回当前页的ServletConfig对象(config)
ServletContext getServletContext();// 返回当前页的ServletContext对象(application)
void setAttribute(String name,Object attribute);// 设置属性及属性值
void setAttribute(String name,Object obj,int scope);// 在指定范围内设置属性及属性值
public Object getAttribute(String name);// 取属性的值
Object getAttribute(String name,int scope);// 在指定范围内取属性的值
public Object findAttribute(String name);// 寻找一属性,返回起属性值或NULL
void removeAttribute(String name);// 删除某属性
void removeAttribute(String name,int scope);// 在指定范围删除某属性
int getAttributeScope(String name);// 返回某属性的作用范围
Enumeration getAttributeNamesInScope(int scope);// 返回指定范围内可用的属性名枚举
void release();// 释放pageContext所占用的资源
void forward(String relativeUrlPath);// 使当前页面重导到另一页面
void include(String relativeUrlPath);// 在当前位置包含另一文件
8. config 对象 :
config 对象是在一个 Servlet 初始化时 , JSP 引擎向它传递信息用的 , 此信息包括 Servlet 初始化时所要用到的参数 ( 通过属性名和属性值构成 ) 以及服务器的有关信息 ( 通过传递一个 ServletContext 对象 ) ; 作用域为 page
常用方法:
ServletContext getServletContext();// 返回含有服务器相关信息的ServletContext对象
String getInitParameter(String name);// 返回初始化参数的值
Enumeration getInitParameterNames();// 返回Servlet初始化所需所有参数的枚举
9. exception 对象 :
这是一个例外对象 , 当一个页面在运行过程中发生了例外 , 就产生这个对象 ; 如果一个JSP页面要应用此对象 , 就必须把 isErrorPage 设为true , 否则无法编译 ; 他实际上是 Throwable 的对象 ; 作用域为 page
常用方法:
String getMessage();// 返回描述异常的消息
String toString();// 返回关于异常的简短描述消息
void printStackTrace();// 显示异常及其栈轨迹
Throwable FillInStackTrace();// 重写异常的执行栈轨迹
总结
对象名 | 描述 | 类型 | 作用域 |
---|---|---|---|
request | 请求对象 | javax.servlet.ServletRequest | Request |
response | 响应对象 | javax.servlet.SrvletResponse | Page |
pageContext | 页面上下文对象 | javax.servlet.jsp.PageContext | Page |
session | 会话对象 | javax.servlet.http.HttpSession | Session |
application | 应用程序对象 | javax.servlet.ServletContext | Application |
out | 输出对象 | javax.servlet.jsp.JspWriter | Page |
config | 配置对象 | javax.servlet.ServletConfig | Page |
page | 页面对象 | javax.lang.Object | Page |
exception | 例外对象 | javax.lang.Throwable | Page |