1、什么是内置对象
在jsp开发中会频繁使用的到一些对象。如果每次使用这些对象都要去先创建这些对象就会显得很麻烦。sun公司设计jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可,这些对象叫内置对象。
2、九大内置对象简介
内置对象名
|
类
|
作用域
|
request (请求对象)
|
HttpServletRequest
|
Request
|
response (响应对象)
|
HttpServletResponse
|
Response
|
application(应用程序对象)
|
ServletContext
|
Application
|
session (会话对象)
|
HttpSession
|
Session
|
config (配置对象)
|
ServletConfig
|
Page
|
exception (例外对象)
|
Throwable
|
Page
|
page (页面对象)
|
Object(this)
|
Page
|
out (输出对象)
|
JspWriter
|
Page
|
pageContext(页面上下文对象)
|
PageContext
|
Page
|
3、9大内置对象核心
(1)request------请求对象
request对象封装了客户端的请求信息。request的作用域为一次请求
Request对象的常用方法:
作用 |
方法
|
获取表单提交的信息 |
getParameter(String strTextName) |
获取客户使用的协议 |
request.getProtocol() |
获取客户提交信息的页面 |
request.getServletPath() |
获取客户提交信息的方式 |
request.getMethod() |
获取HTTP头文件中的
accept,accept-encoding和Host的值 |
request.getHeader() |
获取客户的IP地址 |
request.getRemoteAddr() |
获取客户机的名称 |
request.getRemoteHost() |
获取服务器名称 |
request.getServerName() |
获取服务器的端口号 |
request.getServerPort() |
获取客户端提交的所有参数的名字 |
request.getParameterNames()
|
统一request的编码 |
request.setCharacterEncoding(String encoding ) |
(2)response------响应对象
response代表的是对客户端的响应。response的作用域只在jsp页面内有效。
Response的常用方法:
作用
|
方法
|
设置响应的MIME类型 |
response.setContentType("text/html;charset=utf-8") |
返回响应用的是何种字符编码 |
getCharacterEncoding() |
返回可以向客户端输出字符的一个对象 |
getWriter() |
请求重定向,跳转到指定页面 |
response.sendRedirect("reg.jsp")
|
(3)application------应用程序对象
application对象可将信息保存在服务器中,实现了用户之间的数据共享,直到服务器关闭,否则application对象保存的信息会在整个应用中有效。类似于“全局变量”。
Application的常用方法:
作用
|
方法
|
使用指定名称将对象绑定到此会话 |
setAttribute(String name,Object value) |
根据绑定名获取绑定的对象
|
getAttribute(String name) |
返回所有可用属性名的枚举 |
getAttributeNames() |
返回JSP(Servlet)引擎名及版本号 |
String getServerInfo()
|
(4)session------会话对象
session对象是由服务器自动创建的与用户请求相关的对象。
Session的常用方法:
作用
|
方法
|
获取sessionId
|
getId() |
返回session创建时间 |
getCreationTime() |
将对象绑定在指定的名称上
|
setAttribute(String name,Object value) |
返回与此会话中的指定名称绑定的对象 |
getAttribute(String name) |
清除绑定的数据
|
removeAttribute(String name)
|
返回一个包含此session中所有可用属性的数组 |
getValueNames() |
返回两次请求间隔多长时间此session被取消 |
getMaxInactiveInterval()
|
设置session的有效时间 |
setMaxInactiveInterval(int interval)
|
销毁session对象
|
invalidate()
|
(5)Config-----配置对象
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
Config的常用方法:
作用
|
方法
|
返回含有服务器相关信息的ServletContext对象 |
getServletContext() |
返回初始化参数的值 |
getInitParameter(String name()) |
返回Servlet初始化所需所有参数的枚举 |
getInitParameterNames()
|
(6)exception------例外对象
exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。
Exception的常用方法:
作用
| 方法 |
返回描述异常的消息 |
getMessage() |
返回关于异常的简短描述消息 |
toString() |
显示异常及其栈轨迹 |
printStackTrace() |
重写异常的执行栈轨迹 |
FillInStackTrace()
|
(7)page------页面对象
page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。
Page常用的方法:
作用
|
方法
|
返回此Object的类 |
getClass() |
返回此Object的hash码 |
hashCode() |
判断此Object是否与指定的Object对象相等 |
equals(Object obj) |
把此Object拷贝到自定的Object对象中 |
copy(Object obj) |
克隆此Object对象 |
clone() |
把此Object对象转换成String类的对象 |
toString() |
唤醒一个等待的线程 |
notify() |
唤醒所有等待的线程 |
notifyAll() |
使一个线程处于等待直到timeout结束或被唤醒 |
wait(int timeout) |
使一个线程处于等待直到被唤醒 |
wait()
|
(8)out------输出对象
out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
out常用的方法:
作用 | 方法 |
向客户端打印字符串 |
out.println() |
清除缓冲区的内容,如果在flush之后调用会抛出异常 |
out.clear() |
清除缓冲区的内容,如果在flush之后调用不会抛出异常 |
out.clearBuffer() |
将缓冲区内容输出到客户端 |
out.flush() |
返回缓冲区的字节数的大小,如不设缓冲区则为0 |
getBufferSize() |
返回缓冲区还剩余多少可用 |
getRemaining() |
返回缓冲区满时,是自动清空还是抛出异常 |
isAutoFlush() |
关闭输出流 |
out.close()
|
(9)pageContext------页面上下文对象
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等其他内置对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
pageContext的常用方法:
作用
| 方法 |
返回当前客户端响应被使用的JspWriter流(out) |
getOut() |
返回当前页中的HttpSession对象(session) |
getSession() |
返回当前页的Object对象(page) |
getPage() |
返回当前页的ServletRequest对象(request) |
getRequest() |
返回当前页的ServletResponse对象(response) |
getResponse() |
设置属性及属性值 |
setAttribute(String name,Object attribute) |
在指定范围内获取属性的值 |
getAttribute(String name,int scope) |
返回某属性的作用范围 |
getAttributeScope(String name) |
使当前页面重新导向另一个页面 |
forward(String relativeUrlPath) |
在当前位置包含另一个文件 |
include(String relativeUrlPath)
|
.