JSP 内置对象

JSP 内置对象(又称隐含对象)共有9个,不需要预先声明就可以在脚本代码和表达式中使用。

JSP 9个内置对象为: request、out、response、pageContext、page、session、config、exception、application。

request 对象

request 对象的类型为 javax.servlet.http.HttpServletRequest,封装了来自客户端的请求。常用方法有:

方法 描述
String getParameter(String name) 获取表单提交信息
Enumeration<String> getParameterNames() 返回可用参数的枚举
String[] getParameterValues(String name) 返回包含参数 name 的所有值的数组。
Enumeration<String> getAttributeNames() 返回所有属性名的枚举
Object getAttribute(String name) 返回指定属性的属性值
String getCharacterEncoding() 返回字节编码方式
void setCharacterEncoding(String env) 设置字节编码方式
String getProtocol() 获取用户的使用协议
String getServletPath() 获取用户提交信息的页面
String getMethod() 获取客户提交信息的方式
String getHeader(String name) 获取 HTTP 头文件中的参数 name 的值
String getRemoteAddr() 获取客户的 IP 地址
String getRemoteHost() 获取客户机的名称
int getServerPort() 获取服务器端口号
String getServerName() 获取服务器的名称

out 对象

out 对象类型为javax.servlet.jsp.JspWriter,用来向客户端输出内容。如:

1
out.println("imtt.com");

常用方法有:

方法 描述
void clear() 清除缓冲区的内容
void clearBuffer() 清除缓冲区的当前内容
void flush() 清空流
int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区返回 0
int getRemaining() 返回缓冲区还剩余多少可用
boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常
void close() 关闭输出流
void println() 打印空行

response 对象

response 对象的类型为 javax.servlet.http.HttpServletResponse,封装了对客户端的响应。常用方法有:

方法 描述
String getCharacterEncoding() 返回响应用字符编码
void setCharacterEncoding(String charset) 对响应设置字符编码
ServletOutputStream getOutputStream() 返回响应的一个二进制输出流
PrintWriter getWriter() 返回向客户端输出字符的一个对象
void setContentLength(int len) 设置响应头长度
void setContentType(String type) 设置响应的 MIME 类型
void sendRedirect(String location) 重定向

pageContext 对象

pageContext 对象的类型为 javax.servlet.jsp.PageContext,提供了对 JSP 页面内所有的对象及名字空间的访问。常用方法有:

方法 描述
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)
public void setAttribute(String name, Object value) 在指定范围内设置属性及属性值
public Object getAttribute(String name) 取属性的值
Object getAttribute(String name, int scope) 在指定范围内取属性的值
public Object findAttribute(String name) 寻找一属性,返回属性值或 NULL
public void removeAttribute(String name) 删除某属性
public void removeAttribute(String name,int scope) 在指定范围删除某属性
public int getAttributeScope(String name) 返回某属性的作用范围
public Enumeration<String> getAttributeNamesInScope(int scope) 返回指定范围内可用的属性名枚举
public void release() 释放 pageContext 所占用的资源
public void forward(String relativeUrlPath) 使当前页面重导到另一页面
public void include(String relativeUrlPath) 在当前位置包含另一文件

page 对象

pageContext 对象的类型为 javax.servlet.jsp.HttpJspPage,指向当前 JSP 页面本身,代表了正在运行的类对象(由 JSP 文件产生)。

session 对象

session 对象的类型为 javax.servlet.http.HttpSession,指客户端与服务器的一次会话。常用方法有:

方法 描述
long getCreationTime() 返回 session 创建时间
String getId() 返回 session id
long getLastAccessedTime() 返回 session 里客户端最近一次请求时间
int getMaxInactiveInterval() 返回两次请求间隔多长时间 session 被取消(ms)
void setMaxInactiveInterval() 设置两次请求间隔多长时间 session 被取消(ms)
String[] getValueNames() 返回一个包含 session 中所有可用属性的数组
void invalidate() 取消 session
boolean isNew( 返回服务器创建的一个 session 客户端是否已经加入
void removeAttribute(String name) 删除 session 中指定的属性

config 对象

config 对象的类型为 javax.servlet.ServletConfig,用来在一个 Servlet 初始化时传递信息(如初始化时所要用到的参数)。常用方法有:

方法 描述
ServletContext getServletContext() 返回包含服务器相关信息的所有 servletContext 对象
String getInitParameter(String name) 获取初始化参数值
Enumeration<String> getInitParameterNames() 返回 servlet 初始化所需所有参数的枚举

exception

exception 对象的类型为 java.lang.Throwable, 当一个页面在运行过程中发生了异常就产生这个对象。如果一个 JSP 页面要应用此对象,就必须把 isErrorPage 设为 true。常用方法有:

方法 描述
public String getMessage() 返回描述异常的消息
public String toString() 返回关于异常的简短描述消息
public void printStackTrace() 显示异常及其栈轨迹
public Throwable fillInStackTrace() 重写异常的执行栈轨迹

application 对象

application 对象的类型为 javax.servlet.ServletContext ,用于用户间数据共享,可存放全局变量。常用方法有:

方法 描述
Object getAttribute(String name) 返回给定参数的属性值
Enumeration<String> 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() 返回服务器支持的版本号 API 的最大版本号
int getMinorVersion() 返回服务器支持的 servlet API 的最小版本号
String getMimeType(String file) 返回指定文件的 MIME 类型
URL getResource(String path) 返回指定资源(文件及目录)的 URL 路径
InputStream getResourceAsStream(String path) 返回指定资源的输入流
RequestDispatcher getRequestDispatcher (String path) 返回指定资源的 requestDispatcher 对象
Servlet getServlet(String name) 返回指定名的 servlet
Enumeration<Servlet> getServlets() 返回所有 servlet 的枚举
Enumeration<String> getServletNames() 返回所有 servlet 名的枚举
void log(String msg) 把指定消息写入 servlet 的日志文件
void log(Exception exception, String msg) 把指定异常信息的栈轨迹及错误消息写入 servlet 的日志文件
void log(String message, Throwable throwable) 把栈轨迹及 throwable 给出的异常信息写入 servlet 的日志文件

作用域

pageContext、request、response、application 四种内置对象也是 JSP 中四种作用域, 表示数据存储的范围。其中 pageContext 不仅提供所有四个作用域层次的属性查询和修改能力,也提供了转发请求到其它资源和包含其他资源的方法 。

坚持原创技术分享,您的支持将鼓励我继续创作!