在前面,我们详细学习了JSP内置对象中的request对象、response对象、out对象和session对象,下面我们接下来继续学习application对象、config对象、exception对象、page对象和pageContext对象。
application隐含对象封装了Web应用中所有Servlet、JSP页面、HTML页面和其他资源的集合属性。此对象实现了javax.servlet.ServletContext在_jspService()方法开始自动被创建。它提供关于服务器版本、应用级初始化参数和应用内资源绝对路径的信息。此对象也提供注册信息的方式。其可用方法如表5-6所示。
表 5-6 application对象的方法
|
方法特征 |
用法 |
|
Enumeration getAttributeNames() |
返回保存在Servlet上下文中所有对象名字的一枚举值 |
|
Object getAttribute(String name) |
返回使用应用setAttribute()方法保存的具有指定名字的对象 |
|
String getInitParameter(String name) |
返回指定的应用级初始化参数值 |
|
Enumeration getInitParameterNames() |
返回所有应用级初始化参数名字的一个枚举值 |
|
String getRealPath(String path) |
如果可能,将Web应用上下文中一个路径转换为文件系统中绝对象路径 |
|
URL getResource(String path) |
返回映射到应用中指定路径的URL。路径必须以“/”开始,并且相对于应用的根目录 |
|
inputStream getResourceAsStream(String path) |
与getResource()操作类似,但是返回一个至结果URL打开的输入流 |
|
Void log(String msg) |
将一个信息写入与应用相关的注册文件 |
在前面的内容中,我们了解如何安装及调试Tomcat。在调试完毕Tomcat后,可以修改所指定的根路径。例如,用户可以通过Tomcat的Server.xml文件中插入以下各行命令:
<Context path="/jsp"
docBase="webapps/tushu">
</Context>
这段代码告诉Tomcat将所有以/jsp开始的请求都映射为以http://<server-host>/webapps/Book开始的绝对路径。此外,Tomcat会将每一个映射到该路径的服务器程序请求发送到ServletContext的一个单独的实例。
因为对一个给定的应用程序环境的所有请求共享一个单独的ServletContext,所以用户可以在这个对象中存储应用程序信息,每一个用户都可以从环境中的服务器程序和JSP页面的访问这个对象。
下面我们通过案例内容来学习applicaton对象的应用方法。