j2ee 九大内置对象及其方法详细说明
### j2ee 九大内置对象及其方法详细说明 在J2EE(Java 2 Platform, Enterprise Edition)开发中,为了简化编程过程并提高代码的可维护性和可读性,引入了九大内置对象。这些对象自动地由容器创建,并提供给开发者使用。下面将详细介绍这九大内置对象以及它们的方法。 #### 1. request (HttpServletRequest) `request` 对象用于封装客户端发送到服务器端的请求信息。它是通过 `HttpServletRequest` 接口实现的。 **常用方法:** - **object getAttribute(String name)**: 获取指定名称的属性值。 - **Enumeration getAttributeNames()**: 返回当前对象的所有属性名。 - **String getCharacterEncoding()**: 获取请求字符编码。 - **int getContentLength()**: 获取请求消息体的长度。 - **String getContentType()**: 获取请求消息体的 MIME 类型。 - **ServletInputStream getInputStream()**: 获取输入流,用于读取请求消息体中的数据。 - **String getParameter(String name)**: 获取指定参数的值。 - **Enumeration getParameterNames()**: 获取所有参数名。 - **String[] getParameterValues(String name)**: 获取指定参数的所有值。 - **String getProtocol()**: 获取协议版本。 - **String getScheme()**: 获取方案,如 http 或 https。 - **String getServerName()**: 获取服务器名称。 - **int getServerPort()**: 获取服务器端口号。 - **BufferedReader getReader()**: 获取可以读取请求消息体的缓冲读取器。 - **String getRemoteAddr()**: 获取远程客户端 IP 地址。 - **String getRemoteHost()**: 获取远程主机名。 - **void setAttribute(String key, Object obj)**: 设置一个属性。 - **String getRealPath(String path)**: 获取服务器上的真实路径。 #### 2. response (HttpServletResponse) `response` 对象用于向客户端返回响应。它通常通过 `HttpServletResponse` 接口实现。 **常用方法:** - **String getCharacterEncoding()**: 获取响应字符编码。 - **ServletOutputStream getOutputStream()**: 获取输出流,用于向客户端写入二进制数据。 - **PrintWriter getWriter()**: 获取打印写入器,用于向客户端写入文本数据。 - **void setContentLength(int len)**: 设置响应体的长度。 - **void setContentType(String type)**: 设置响应体的 MIME 类型。 - **void sendRedirect(java.lang.String location)**: 发送重定向命令到指定的 URL。 #### 3. session (HttpSession) `session` 对象用于存储特定用户的会话所需的信息。当用户在应用程序的页面之间跳转时,存储在 Session 对象中的变量将不会丢失。 **常用方法:** - **long getCreationTime()**: 获取 Session 创建时间。 - **public String getId()**: 获取 Session 的唯一 ID。 - **long getLastAccessedTime()**: 获取最后一次访问时间。 - **int getMaxInactiveInterval()**: 获取最大非活动时间间隔。 - **String[] getValueNames()**: 获取所有的 Session 属性名称。 - **void invalidate()**: 使 Session 失效。 - **boolean isNew()**: 判断 Session 是否为新创建的。 - **void removeValue(String name)**: 删除指定名称的属性。 - **void setMaxInactiveInterval()**: 设置最大非活动时间间隔。 #### 4. out (JspWriter) `out` 对象用于输出数据到客户端。它是通过 `JspWriter` 实现的。 **常用方法:** - **void clear()**: 清除缓冲区中的内容。 - **void clearBuffer()**: 清除缓冲区。 - **void flush()**: 强制将缓冲区中的数据输出到客户端。 - **int getBufferSize()**: 获取缓冲区大小。 - **int getRemaining()**: 获取缓冲区剩余空间。 - **boolean isAutoFlush()**: 判断是否开启自动刷新。 - **void close()**: 关闭输出流。 #### 5. page (this) `page` 对象指向当前 JSP 页面本身。它实际上是指向当前类的一个实例。 **常用方法:** - **class getClass()**: 获取当前对象的类。 - **int hashCode()**: 返回该对象的哈希码值。 - **boolean equals(Object obj)**: 判断两个对象是否相等。 - **void copy(Object obj)**: 复制对象。 - **Object clone()**: 克隆对象。 - **String toString()**: 返回该对象的字符串表示形式。 - **void notify()**: 唤醒正在等待的单个线程。 - **void notifyAll()**: 唤醒所有正在等待的线程。 - **void wait(int timeout)**: 使当前线程等待,直到其他线程调用此对象的 `notify()` 或 `notifyAll()` 方法。 - **void wait()**: 使当前线程等待,直到其他线程调用此对象的 `notify()` 或 `notifyAll()` 方法。 - **void enterMonitor()**: 进入监视器。 - **void exitMonitor()**: 退出监视器。 #### 6. application (ServletContext) `application` 对象代表当前 Web 应用程序上下文,可以被应用中的所有 Servlet 和 JSP 文件共享。 **常用方法:** - **Object getAttribute(String name)**: 获取指定名称的属性。 - **void setAttribute(String name, Object value)**: 设置指定名称的属性。 - **void removeAttribute(String name)**: 移除指定名称的属性。 - **Enumeration getAttributeNames()**: 获取所有属性名称。 - **String getInitParameter(String name)**: 获取初始化参数。 - **Enumeration getInitParameterNames()**: 获取所有初始化参数名称。 - **String getRealPath(String path)**: 获取应用程序的实际物理路径。 - **void log(String message)**: 记录信息。 - **void log(Exception ex, String message)**: 记录异常信息。 - **void log(String message, Throwable throwable)**: 记录异常信息。 #### 7. config (ServletConfig) `config` 对象用于获取 Servlet 的配置信息。 **常用方法:** - **String getInitParameter(String name)**: 获取初始化参数。 - **Enumeration getInitParameterNames()**: 获取所有初始化参数名称。 - **String getServletName()**: 获取 Servlet 名称。 - **ServletContext getServletContext()**: 获取 ServletContext 对象。 #### 8. exception (Throwable) `exception` 对象包含了在 JSP 页面执行过程中抛出的异常信息。 **常用方法:** - **String getMessage()**: 获取异常信息。 - **String toString()**: 返回异常的详细信息。 - **void printStackTrace()**: 打印异常堆栈跟踪信息。 - **void printStackTrace(PrintStream s)**: 将异常堆栈跟踪信息打印到指定的 PrintStream 中。 - **void printStackTrace(PrintWriter s)**: 将异常堆栈跟踪信息打印到指定的 PrintWriter 中。 #### 9. pageContext (PageContext) `pageContext` 对象提供了对页面的属性、请求、响应、异常等进行操作的方法。 **常用方法:** - **Object getAttribute(String name)**: 获取指定名称的属性。 - **void setAttribute(String name, Object value)**: 设置指定名称的属性。 - **void removeAttribute(String name)**: 移除指定名称的属性。 - **void forward(String path)**: 请求转发。 - **void include(String path)**: 包含资源。 以上介绍了 J2EE 中九大内置对象的基本情况及常用方法。了解并熟练掌握这些对象及其方法,对于开发基于 J2EE 的 Web 应用程序具有重要意义。
定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
序号 方 法 说 明
1 object getAttribute(String name) 返回指定属性的属性值
2 Enumeration getAttributeNames() 返回所有可用属性名的枚举
3 String getCharacterEncoding() 返回字符编码方式
4 int getContentLength() 返回请求体的长度(以字节数)
5 String getContentType() 得到请求体的MIME类型
6 ServletInputStream getInputStream() 得到请求体中一行的二进制流
7 String getParameter(String name) 返回name指定参数的参数值
8 Enumeration getParameterNames() 返回可用参数名的枚举
9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组
10 String getProtocol() 返回请求用的协议类型及版本号
11 String getScheme() 返回请求用的计划名,如:http.https及ftp等
12 String getServerName() 返回接受请求的服务器主机名
13 int getServerPort() 返回服务器接受此请求所用的端口号
14 BufferedReader getReader() 返回解码过了的请求体
15 String getRemoteAddr() 返回发送此请求的客户端IP地址
16 String getRemoteHost() 返回发送此请求的客户端主机名
17 void setAttribute(String key,Object obj) 设置属性的属性值
18 String getRealPath(String path) 返回一虚拟路径的真实路径
2.response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
序号 方 法 说 明
1 String getCharacterEncoding() 返回响应用的是何种字符编码
2 ServletOutputStream getOutputStream() 返回响应的一个二进制输出流
3 PrintWriter getWriter() 返回可以向客户端输出字符的一个对象
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- python编写脚本实现voc数据集格式转换yolo数据集格式的工具
- 基于飞桨的OCR工具库,包含总模型仅8.6M的超轻量级中文OCR,单模型支持中英文数字组合识别、竖排文本识别、长文本识别
- 企业资源管理(ERP)系统:项目需求分析与数据库设计
- 2024年下半年软考中级网络工程师基MAC地址划分VLAN配置
- demo.launch(share=True) Please check your internet connection
- Python蔬菜类商品数据分析实现自动定价与补货决策
- kubernetes k8s容器云备份容灾软件系统解决方案相关文档
- 2019年至2023年美国按州和产品类别划分的每周食品零售额
- 2024年下半年软考中级网络工程师基于协议划分VLAN配置
- 汇编语言执行全解析:计算机如何读懂你的代码