第6篇——JSP作业7之application对象的使用

时间:2024-03-24 13:14:31

1、application对象

这几个对象真的在我眼里长得差不多,对象的方法没什么大差别。这次要求超级简单,我都没发现有什么需要自己写的。(还是熟悉一下定义好了)

1.1 基本概念
application对象用于保存所有应用程序中的公有数据。
服务器启动并且自动创建application对象后,只要没有关闭服务器,application对象就一直存在,所有用户可以共享application对象。(application的信息是应用层面的,对比起session就很明显啦)
通过application对象可以:1访问应用程序初始化参数、2管理应用程序环境属性。

1.2 对比session
session对象和用户会话相关,不同用户的session是完全不同的对象。
用户的application对象都是相同的一个对象,即共享这个内置的application对象。

1.3 用法
1、访问应用程序初始化参数
通过对象调用ServletContext对象来访问程序环境属性。
Tomcat使用web.xml文件,一般位于程序环境目录下的WEB-INF子目录中。(参数文件)

访问参数的方法

方法 说明
getInitParameter(String name) 返回一个已命名的初始化参数的值
getInitParameterNames() 返回所有已定义的程序初始化参数名称的枚举数据

1.4 实例:
(1)在web.xml中添加参数名称和参数值
context-name、context-value标签
第6篇——JSP作业7之application对象的使用(2)在主要jsp文件中访问输出参数名称和值。第6篇——JSP作业7之application对象的使用添加泛型这个事情我不想再说了,再见

2、管理程序环境属性
可以在application对象中设置属性。
在application对象中设置的属性在整个程序范围内有效;即使所有的用户都不发送请求,只要不关闭服务器,在其中设置的属性仍然是有效的。

管理属性的方法

方法 说明
removeAttribute(String name) ServletContext的对象中去掉指定名称的属性
setAttribute(String name, Object object) 使用指定名称和指定对象在ServletContext的对象中进行关联
getAttribute(String name) 从ServletContext的对象中获取一个指定对象
getAttributeNames() 返回存储在ServletContext对象中属性名称的枚举数据

实例:直接在主要jsp文件中使用方法获取属性
第6篇——JSP作业7之application对象的使用

继续内置对象的概念学习

2、out对象

2.1 基本概念
out对象主要用来向客户端输出各种数据类型的内容,并且管理应用服务器上的输出缓冲区,缓冲区默认值一般为8KB,可以通过页面指令page来改变默认值。
在使用out对象输出数据是,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕之后,要及时关闭输出流
out对象被封装为javax.servlet.jsp.JspWriter类的对象,在实际应用上out对象会通过JSP容器变换为java.io.PrintWriter类的对象。

2.2 操作方法

方法 说明
clear() 清空缓冲区
clearBuffer() 清空当前区的内容
close() 先刷新流(输出),然后关闭流
flush() 刷新流
getBufferSize() 以字节为单位返回缓冲区的大小
getRemaining() 返回缓冲区没有使用的字符数量?
isAutoFlush() 返回布尔值,自动刷新还是在缓冲区溢出时抛出IOException异常

调用clear()方法清除缓冲区的内容;类似于重置响应流,以便重新开始操作。
如果响应已经提交,则会产生IOException异常的副作用??

2.3 实例
第6篇——JSP作业7之application对象的使用还有一个重要功能就是向客户写入内容

  • 由于JspWriter是由java.io.Writer派生而来,因此用法与其相似。

3、其他对象

不常使用
3.1 pageContext对象
3.1.1 要义(获取会话范围)
页面中所有其他对象功能的最大集成者,通过它可以访问到本页中所有其他对象。
pageContext对象被封装成javax.servlet.pageContext接口,主要用于管理对属于JSP中特殊部分中已经命名对象的访问,创建和初始化都由容器来完成。
在页面中可以直接使用pageContext对象的句柄,pageContext对象的getXxx()、setXxx()和findXxx()方法可以用来根据不同的对象范围实现对这些对象的管理。
3.1.2 方法(看了第一个,怪不得不常用)

方法 说明
forward(java.lang.String relativeUtlpath) 把页面转发到另一个页面或者servlet组件上
getAttribute(java.lang.String name[,int scope]) scope参数是可选的,该方法用来检索一个特定的已经命名的对象的范围,并且可以通过调用getAttributeNameInScope()方法,检索对某个特定范围的每个属性String字符串名称枚举(范围内的所有属性名)
getException() 返回当前的Exception对象
getRequest() 返回当前的request对象
getResponse() 返回当前的response对象
getServletConfig() 返回当前的ServletConfig对象
invalidate() 返回ServletConfig对象,全部销毁
setAttribute() 设置默认页面范围或特定对象范围之中的已命名对象
removeAttribute() 删除默认页面范围或特定对象范围之中的已命名对象

和findXxx()方法可以用来根据不同的对象范围实现对这些对象的管理。
3.1.3 使用
第6篇——JSP作业7之application对象的使用
3.2 config对象
3.2.1 要义(读取web.xml配置信息)
config对象被封装成javax.servlet.ServletConfig接口,它表示Serlvet的配置,当一个Servlet初始化时,容器把某些信息通过该对象传递给这个Servlet。
可以在web.xml中为程序环境中的Servlet程序和JSP页面提供初始化参数。
3.2.2 方法

方法 说明
getServletConfig() 返回执行者的Servlet上下文
getServletName() 返回Servlet名字
getInitParameter(String name) 返回名字为name的初始参数的值
getInitParameterNames() 返回这个JSP所有初始参数的名称

3.2.3 使用
第6篇——JSP作业7之application对象的使用
3.3 page对象
3.3.1 要义(应答或请求)
page对象是为了执行当前页面应答请求而设置的Servlet类的实体,即显示JSP页面自身,只有在JSP页面内才是合法的。
page隐含对象本质上包含当前Servlet接口引用的变量,可以看作是this变量的别名
3.3.2 方法

方法 说明
getClass() 返回当前Object的类
hasCode() 返回此Object的哈希代码
toString() 将此Object类转换为字符串
equals(Object o) 比较此对象和指定对象是否相等
copy(Object o) 把该对象赋值到指定的对象中去
clone() 对该对象进行克隆

3.4 exception对象
3.4.1 要义(获取异常信息)
用来处理JSP文件执行时发生的所有错误和异常。
使用 “try/catch” 关键字来处理异常情况。
如果在JSP页面中出现没有 捕捉到的异常, 就会生成exception对象;并把这个exception对象传送到page指令中设定的错误页面中(errorPage属性),然后在错误提示页面中处理相应的exception对象。
exception对象只有在错误页面(页面指令中有属性语句:isErrorPage=true的页面)才可以使用。
3.4.2 方法

方法 说明
getClass() 返回当前Object的类
hasCode() 返回此Object的哈希代码
toString() 将此Object类转换为字符串
equals(Object o) 比较此对象和指定对象是否相等
copy(Object o) 把该对象赋值到指定的对象中去
clone() 对该对象进行克隆

3.4.3 使用
第6篇——JSP作业7之application对象的使用