JSP九大内置对象
jsp内置对象
jsp内置对象就是在jsp页面中可以使用的java类对象。
对象名 | 类型 | 作用域 |
---|---|---|
application | javax.servlet.ServletContext | Application |
session | javax.servlet.http.HttpSession | Session |
request | javax.servlet.http.HttpServletRequest | Request |
response | javax.servlet.http.HttpServletResponse | Page |
pageContext | javax.servlet.jsp.PageContext | Page |
config | javax.servlet.ServletConfig | Page |
out | javax.servlet.jsp.JspWriter | Page |
page | java.lang.Object | Page |
exception | java.lang.Throwable | Page |
四个作用域
page | 当前页面有效 |
request | 当前请求有效 |
session | 当前会话有效 |
application | 在整个应用程序中有效 |
pageConext设置任意范围的属性
使用函数:pageConext.setAttribute("name","value",int SCOPE);
- 设置page范围
pageConext.setAttribute("name","xiazdong",PageConext.PAGE_SCOPE);
- 设置request范围
pageConext.setAttribute("name","xiazdong",PageConext.REQUEST_SCOPE);
- 设置session范围
pageConext.setAttribute("name","xiazdong",PageConext.SESSION_SCOPE);
- 设置application范围
pageConext.setAttribute("name","xiazdong",PageConext.APPLICATION_SCOPE);
JSP内置对象的生命周期
一个JSP页面对应一个Servlet类,每个Servlet类有三个方法:
- init方法:初始化JSP/Servlet的方法。
- service方法:对用户请求产生响应的方法。
- destroy方法:销毁JSP/Servlet的方法。
- request对象和response对象是service方法的形参,
九大对象祥解
-
request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
request对象具有请求域,即完成客户端的请求之前,该对象一直有效。- 序号方法说明
object getAttribute(String name)//返回指定属性的属性值
Enumeration getAttributeNames() //返回所有可用属性名的枚举
String getCharacterEncoding() //返回字符编码方式
int getContentLength() //返回请求体的长度(以字节数)
String getContentType() //得到请求体的MIME类型
ServletInputStream getInputStream() //得到请求体中一行的二进制流
String getParameter(String name) //返回name指定参数的参数值
Enumeration getParameterNames() //返回可用参数名的枚举
String[] getParameterValues(String name) //返回包含参数name的所有值的数组
String getProtocol() //返回请求用的协议类型及版本号
String getScheme() //返回请求用的计划名,如:http.https及ftp等
String getServerName() //返回接受请求的服务器主机名
int getServerPort() //返回服务器接受此请求所用的端口号
BufferedReader getReader() //返回解码过了的请求体
String getRemoteAddr() //返回发送此请求的客户端IP地址
String getRemoteHost() //返回发送此请求的客户端主机名
void setAttribute(String key,Object obj) //设置属性的属性值
StringgetRealPath(String path) //返回一虚拟路径的真实路径
String request.getContextPath() //返回上下文路径
-
response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效。- 序号方法说明
String getCharacterEncoding() //返回响应用的是何种字符编码
ServletOutputStream getOutputStream() //返回响应的一个二进制输出流
PrintWriter getWriter() //返回可以向客户端输出字符的一个对象
void setContentLength(int len) //设置响应头长度
void setContentType(String type) //设置响应的MIME类型
sendRedirect(java.lang.String location) //重新定向客户端的请求
-
session对象
session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例。
Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。
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)
-
out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
- 序号方法说明
void clear() //清除缓冲区的内容
void clearBuffer() //清除缓冲区的当前内容
int getBufferSize() //返回缓冲区以字节数的大小,如不设缓冲区则为0
void flush() //清空流
int getRemaining() //返回缓冲区还剩余多少可用
boolean isAutoFlush() //返回缓冲区满时,是自动清空还是抛出异常
void close() //关闭输出流
-
page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
- 序号方法说明
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开锁
-
application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
- 序号方法说明
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的枚举
void log(String msg) //把指定消息写入Servlet的日志文件
Enumeration getServletNames() //返回所有Servlet名的枚举
void log(Exception exception,String msg) //把指定异常的栈轨迹及错误消息写入Servlet的日志文件
void log(String msg,Throwable throwable) //把栈轨迹及给出的Throwable异常的说明信息 写入Servlet的日志文件
-
exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
- 序号方法说明
String getMessage() //返回描述异常的消息
String toString() //返回关于异常的简短描述消息
void printStackTrace() //显示异常及其栈轨迹
Throwable FillInStackTrace() //重写异常的执行栈轨迹
-
pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
- 序号方法说明
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) //在当前位置包含另一文件
-
config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
- 序号方法说明
1 ServletContext getServletContext() //返回含有服务器相关信息的ServletContext对象
String getInitParameter(String name) //返回初始化参数的值
Enumeration getInitParameterNames() //返回Servlet初始化所需所有参数的枚举