配置任意目录下的Web应用程序
一个Web容器下有多个Web应用程序,webapps目录下的每一个子目录就是一个Web应用程序,这个子目录就是这个Web应用程序的上下文根。例如\webapps\ch02,上下文根就是ch02。
在部署和访问Web应用程序时,是通过上下文根路径(context path)来区分不同的web应用程序。上下文根以”/”开始,结束没有“/”例如:/ch02。所以,凡是发往/ch02路径的请求,都由这个路径下的Web应用程序的资源来进行响应。
在Web服务器中可以配置虚拟目录,而虚拟目录对应的真实目录可以在任何路径下。在Tomcat中利用XML配置文件中的<Context>元素设置完成。一个<Context>元素就表示一个Web应用程序,运行在特定的虚拟主机中。
<Context>元素是<Host>元素的子元素,可以在\conf\server.xml中设置Context元素。
<Host>
<Context path=”/ch02” docBase=”ch02” reloadable=”true”/>
</Host>
属性解释:
docBase 指定Web应用程序的文档基目录或WAR文件的路径名,可以指定目录的或WAR文件的绝对路径名,也可以是指定相对于Host元素的appBase目录的路径名。此属性是必须的。
path 指定web应用程序的上下文路径。
Tomcat中,<Context>元素的位置
1.�TALINA_HOME%\conf\context.xml文件,在这个文件中设置的信息将被所有Web应用程序加载。
2. �TALINA_HOME%\conf\[enginename]\[hostname]\context.xml.default文件。在这个文件中的设置信息同样被该虚拟机的所有WEB应用程序所加载。
3. �TALINA_HOME%\conf\[enginename]\[hostname]\xxx.xml,在这个xml文件中,<Context>元素的docBase属性通常是Web应用程序目录的绝对路径,或是WEB应用程序归档文件WAR文件的绝对路径。
4.在WEB应用程序的目录结构中增加META-INF\context.xml文件。
WAR文件
WAR文件就是将Web应用程序打包成Web归档文件,利用WAR归档文件可以把Servlet类文件和相关资源文件集中发布,这样Web应用程序就不是按照目录层次结构进行部署,而是把WAR文件作为部署单元来使用。
一个WAR文件就是一个Web应用程序。
创建WAR文件:
打开命令行,进入.�TALINA_HOME%\webapps\ch02\目录,执行命令:
jar –cvf ch02.war *
jar –cvf ch02.war .html WEB-INF
查看WAR文件内容,执行命令:
jar –tf ch02.war
在建立WAR文件之前,需要建立正确的Web应用程序的目录层次结构。
1.建立WEB-INF子目录,在该目录下建立classes和lib两个子目录。
2.将Servlet类文件放到WEB-INF\classes目录下,将Web应用程序使用的JAVA类库文件(jar文件)放到lib目录下。
3.建立web.xml文件,放到WEB-INF目录下。
4.根据Web应用程序需要,将JSP页面或HTML页面放到上下文根路径或子目录下。
5.如果又需要,建立META-INF目录,并在该目录下建立context.xml文件。
只有在确保这些工作完成后,才开始建立WAR文件。