上一篇:JavaWeb学习总结11–JSP(1)
下一篇:JavaWeb学习总结13–MVC&EL&JSTL
JSP的内置对象
jsp一共有9个内置对象,这些内置对象在jsp页面中不需要获取和创建,可以直接使用的对象
* 在jsp页面中不需要创建,直接使用的对象
* 一共有9个:
变量名 真实类型 作用
* pageContext PageContext 当前页面共享数据,还可以获取其他八个内置对象
* request HttpServletRequest 一次请求访问的多个资源(转发)
* session HttpSession 一次会话的多个请求间
* application ServletContext 所有用户间共享数据
* response HttpServletResponse 响应对象
* page Object 当前页面(Servlet)的对象 this
* out JspWriter 输出对象,数据输出到页面上
* config ServletConfig Servlet的配置对象
* exception Throwable 异常对象
这行内置对象大致可以四类:输入输出对象(request、response、out)、作用域通信对象(session、application、pageContext)、Servlet对象(page、config)和异常对象(exception)
输入输出对象
request对象
request对象封装了客户端的请求信息,包括HTTP头信息、系统信息、请求方式和请求参数等。通过调用相关方法可以获取封装信息。其中常用方法包括:
方法 | 说明 |
---|---|
String getParameter(String name) | 获取JSP页面中传递过来的参数 |
Enumeration getParameterNames() | 返回一个枚举类型,包含当前页面所有参数名称的集合 |
String[] getParameterValues(String name) | 返回包含参数name的所有值的数组 |
void setAttribtue(String name,Object object) | 将方法保存到request范围内的变量中 |
Object getAttribute(String name) | 获取request范围内名字为name的变量,若没有则为空 |
void removeAttribute(String name) | 删除名字为name的request请求 |
void setCharacterEncoding(String enc) | 指定请求编码的格式,一般用于解决中文乱码 |
response对象
当客户端向Web服务器发送请求后,服务器会接收请求,并作出响应响应。response 代表的就是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。其中常用方法包括:
方法 | 说明 |
---|---|
void setContentType(String type) | 设置MIME(响应的内容)类型 |
void sendRedirect() | 重定向客户的请求到指定的页面 |
void setHeader(String s1,String s2) | 设置HTTP首部信息,如:s1=“REfresh”,s2="1"时页面每一秒刷新一次 |
out 对象
out 对象可以在客户端浏览器输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。其中的常用方法有:
方法 | 说明 |
---|---|
void print(DateType) | 在JSP页面输入数据,但不结束当前行 |
void println(DateType | 在JSP页面输入数据,并结束当前行 |
void clear() | 清空缓冲区中数据,但不把数据写入客户端 |
void close() | 关闭输出流 |
作用域通信对象
session对象
从客户打开服务器开始,到关闭浏览器离开结束,这个过程被称为一次会话(session),session对象在JSP页面打开时自动创建,当我们在不同页面之间进行跳转时,我们就需要session对象来辨别用户了。session对象内部使用Map类(Key/value)来保存数据,通过session对象,我们可以对客户的会话进行控制,其常用方法如下:
方法 | 说明 |
---|---|
String getId() | 返回用户的session的id |
void setAttribute(String name,Object obj) | 设置名称为name的属性值,并存入到session中 |
Object getAttribute(String name) | 返回session中属性名为name的属性值 |
void removeAttribute(String name) | 除去session中属性名为name的属性 |
Boolean isNew() | 判断是否为一个新用户 |
application对象
application 对象保存所有应用程序中的公共数据到服务器中,只要服务器不关闭,application就一直存在,所有用户都可以共享application对象。其中的常用方法有:
方法 | 说明 |
---|---|
void setAttribute(String name,Object obj) | 设置名称为name的属性值,并存入到application中 |
Object getAttribute(String name) | 返回application中属性名为name的属性值 |
void removeAttribute(String name) | 除去application中属性名为name的属性 |
pageContext 对象
pageContext 表示当前页面的所有属性和对象,它的创建和初始化都是由容器来完成的,我们可以在JSP页面中可以直接使用 pageContext对象。通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。其常用方法如下:
方法 | 说明 |
---|---|
void forward(String url) | 将当前页面重定向到另一个页面或servlet对象 |
Object getAttribute(String name) | 获取页面范围或特定对象范围内的属性name |
void setAttribute(String name,Object obj) | 设置默认页面范围或特定对象范围的属性name |
void removeAttribute(String name,Object obj) | 设置默认页面范围或特定对象范围的属性name |
ServletRequest getRequest() | 返回当前页面中的request对象 |
ServletResponse getResponse() | 返回当前页面中的response对象 |
ServletSession getSession() | 返回当前页面中的session对象 |
ServletException getException() | 返回当前页面中的exception对象 |
ServletOut getOut() | 返回当前页面中的out对象 |
ServletApplication getApplication() | 返回当前页面中的application对象 |
Servlet对象
page对象
page 对象是为了执行当前页面应答请求而设置的servlet类的实体,代表JSP本身,只有在JSP页面内才是合法的。 page常用的方法有:
方法 | 说明 |
---|---|
class getClass() | 获取page对象的类 |
int hashCode() | 获取page对象的hash码 |
config 对象
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。它的常用方法有:
方法 | 说明 |
---|---|
String getInitParameter(String name) | 返回名称为name的初始化参数值 |
Enumeration getInitParameterNames() | 返回所有初始化参数名称的枚举 |
ServletContext getServletContext() | 返回名称为name的初始化参数值 |
String getServletNames() | 返回当前Servlet的名称 |
异常对象
exception 对象
exception 对象用来处理JSP文件发生的错误和异常,只有在错误页面(包含 isErrorPage=”true” 的页面)中才可以被使用。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。它的常用方法包括:
方法 | 说明 |
---|---|
String getMessage() | 返回异常信息 |
void printStackTrace() | 以标准错误的形式输出错误信息 |
String toString() | 以字符串的形式返回异常信息 |