ITEEDU

JSP/Servlet: application

application隐含对象在转换为Servlet之后,会对应于 javax.servlet.ServletContext型 态的对象,首先来认识Context这个名词的字义,它具有「背景」、「上下文」的意义,ServletContext表示Servlet的 Context,与 Servlet执行时相关的背景信息、上下文信息,白话的话就是与Servlet执行时的环境信息相关的,您可以透过ServletContext来取 得,像是服务器信息、Servlet路径、Context初始变量设定等等。
ServletContext可以视为一个「Web应用程序」的代表,一个Web应用程序都会有一个Context,一个Web应用程序是一个特定URL 名称空间下的Servlet、JSP与其它相关内容集合,记得您在web.xml中定义的就是一些有关于Web应用程序的相关设定,即 <web-app>标签间定义的内容:

web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
version="2.4">
<description> 
My JSP/Servlet Examples. 
</description> 
<display-name>JSP/Servlet Examples</display-name>
</web-app> 

下面这个程序示范如何取得服务器相关信息:

applicationTest.jsp

...
<% 
out.println("Server: " + 
application.getServerInfo() + "<br>"); 
out.println("Servlet API: " + 
application.getMajorVersion() 
+ "." + application.getMinorVersion() + "<br>"); 
out.println("Servlet Context Name: " + 
application.getServletContextName()); 
%> 
... 

getServerInfo()可以取得Servlet容器的相关信息,getMajorVersion()、getMinorVersion()则分别 可以取得Servlet API的主版本号与次版本号,getServletContextName()取得的则是<display-name>标签所设定的内容讯 息,执行的结果如下:

 Server: Apache Tomcat/5.0.18 
  Servlet API:
  2.4 
  Servlet Context
  Name: JSP/Servlet Examples

之前曾经介绍过如何设定Servlet初始参数,它是属于每一个Servlet的专属参数,您可以设定Context初始参数,对于同属于一个Web 应用程序的JSP/Servlet程序,都可以取得这个参数,在web.xml中加入以下的内容作示范:

使用application(ServletContext)的getInitParameter()方法可以取得Context初始参数,这个参数可以被同属于一个Web应用程序的JSP/Servlet程序取得,例如:

applicationTest.jsp

<% 
out.println("Context initial parameter: " + 
application.getInitParameter("allCount")); 
%> 

执行结果如下:

Context initial parameter: 100

您可以使用log()方法将一些必须记录下来的信息存在记录档案中,例如:application.log("Log Test....");,在Tomcat 5中,这个记录档案是在安装目录的Logs目录下,依主机名称与日期取名,例如localhost_log.2004-05-17.txt。