学科分类
目录
Java Web

配置Web应用虚拟目录

开发好的Web应用要想被外界访问,除了需要安装一个Web服务器外,还要将该Web应用映射成为一个能够供外界访问的虚拟Web目录,这个过程称为配置Web应用虚拟目录。Tomcat服务器从6.0的版本开始,会自动管理webapps目录下的Web应用,并将Web应用目录的名称作为虚拟目录名称。

接下来,首先看一个例子,在Tomcat的 webapps下创建目录chapter02,chapter02为Web应用的名称,然后在chapter02目录下创建一个welcome.html文件,在该文件中写入“欢迎来到传智播客”。启动Tomcat服务器,在浏览器地址栏中输入http://localhost:8080/chapter02/welcome.html访问welcome.html页面,此时,浏览器窗口中显示的结果如图1所示。

图1 welcome.html

从图1可以看出,浏览器窗口中显示了welcome.html页面的内容。由此说明,放在webapps目录下的Web应用可以直接被外界访问。

但是,如果将所有的Web应用都放在webapps目录下也是不合理的。有时候,我们会将Web应用放置在其它目录下,那么,这时,Web服务器又是如何管理Web应用呢?接下来通过一个案例来演示。首先将chapter02目录剪切到D盘根目录下,打开IE浏览器再次访问该应用,此时浏览器窗口会出现404错误,如图2所示。

img

图2 welcome.html

图2中之所以出现了404错误,原因是Tomcat无法管理<Tomcat安装目录>/webapps目录以外的Web应用程序,在这种情况下,Web应用要想被外界访问,就需要手动配置虚拟目录,在Tomcat服务器中配置虚拟目录有两种方式,具体如下:

1、在server.xml文件中配置虚拟目录

首先打开<Tomcat安装目录>/conf目录下的server.xml文件,在<Host>元素中添加一个<Context>元素,具体代码如下所示:

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Context path="/chapter02" docBase="d:\chapter02"/>
</Host>

在上述代码中,<Context>元素用于将本地文件系统中的一个目录映射成一个可供Web浏览器访问的虚拟目录。其中,path属性用于指定Web应用的虚拟路径;docBase属性用于指定该虚拟路径所映射到的本地文件系统目录,可以使用绝对路径或相对于<Tomcat安装目录>/webapps的相对路径。需要注意的是,修改后的server.xml文件不会立即生效,必须重新启动Tomcat服务器。接下来,重新启动Tomcat服务器并刷新IE浏览器,浏览器显示的结果如图3所示。

img

图3 welcome.html

从图3可以看出,浏览器成功地访问到了welcome.xml文件。由此说明,通过在server.xml文件中添加<Context>元素方式,可以实现Web应用虚拟路径的映射。需要注意的是,如果将path置为" ",则表示缺省的Web应用,关于缺省Web应用的具体讲解将在后面的章节进行详细讲解。

2、在自定义xml文件配置虚拟目录

在实际开发中,如果经常在servler.xml文件中配置虚拟目录会有一个弊端,那就是每次修改server.xml文件后,要想使文件生效,必须得重新启动Tomcat服务器。为了解决这个问题,我们可以采用另外一种方式配置虚拟目录,即在自定义的xml文件中配置虚拟目录。接下来,以chapter02为例,讲解如何在自定义xml文件中配置虚拟目录。

首先进入<Tomcat安装目录>\conf\Catalina\localhost目录,在该目录中创建一个名为chapter02.xml的配置文件(文件名可以任意,但必须是.xml文件),然后将server.xml文件中配置好的<Context>元素拷贝到该文件中,重新启动Tomcat服务器,访问welcome.html文件,浏览器显示的结果如图4所示。

img

图4 welcome.xml

从图4可以看出,浏览器中同样显示了welcome.html页面,说明使用自定义的xml文件也可以配置虚拟目录。

需要注意的是,在自定义的xml文件中,不仅可以配置虚拟目录,还可以配置缺省的Web应用。配置方式很简单,只需要将chapter02.xml文件重命名为ROOT.xml即可。启动Tomcat服务器,在浏览器中输入http://localhost:8080/welcome.html访问welcome.html,发现浏览器可以成功访问到缺省Web应用中的页面welcome.html,浏览器显示的结果如图5所示。

img

图5 welcome.html

点击此处
隐藏目录