返回介绍

A.3 定义上下文

发布于 2025-04-22 20:10:05 字数 1633 浏览 0 评论 0 收藏

要将 Servlet/JSP 应用程序部署到 Tomcat,需要显式或隐式定义一个 Tomcat 上下文。在 Tomcat 中,每一个 Tomcat 上下文都表示一个 Web 应用程序。

显式定义 Tomcat 上下文有几种方法,包括:

  • 在 Tomcat 的 conf/Catalina/localhost 目录下创建一个 XML 文件。

  • 在 Tomcat 的 conf/server.xml 文件中添加一个 Context 元素。

如果决定给每一个上下文都创建一个 XML 文件,那么这个文件名就很重要,因为上下文路径是从文件名衍生得到的。例如,把一个 commerce.xml 文件放在 conf/Catalina/localhost 目录下,那么应用程序的上下文路径就是 commerce,并且可以利用以下 URL 调用一个资源:

http://localhost:8080/commerce/resourceName

上下文文件中必须包含一个 Context 元素,作为它的根元素。这个元素大多没有子元素,它是该文件中唯一的元素。例如,下面就是一个示例上下文文件,其中只有一行代码:

<Context docBase="C:/apps/commerce" reloadable="true"/>

这里唯一必要的属性是 docBase,它用来定义应用程序的位置。reloadable 属性是可选的,但是如果存在,并且它的值设为 true,那么一旦应用程序中 Java 类文件或者其他资源有任何增加、减少或者更新,Tomcat 都会侦测到,并且一旦侦测到这类变化,Tomcat 就会重新加载应用程序。在部署期间,建议将 reloadable 值设为 True,在生产期间,则不建议这么做。

当把上下文文件添加到指定目录时,Tomcat 就会自动加载应用程序。当删除这个文件时,Tomcat 就会自动卸载应用程序。

定义上下文的另一种方法是在 conf/server.xml 文件中添加一个 Context 元素。为此,要先打开文件,并在 Host 元素下创建一个 Context 元素。与前一种方法不同的是,此处定义上下文需要给上下文路径定义 path 属性。下面举一个例子:

< Host name="localhost" appBase="webapps" unpackWARs="true"
        autoDeploy="true">

    < Context path="/commerce" docBase="C:/apps/commerce" reloadable="true" /> < /Host>

一般来说,不建议通过 server.xml 来管理上下文,因为只有重启 Tomcat 后,更新才能生效。不过,如果有很多应用程序需要测试,你也许会觉得使用 server.xml 比较理想,因为可以在一个文件中同时管理所有的应用程序。

最后,通过将一个 war 文件或者整个应用程序复制到 Tomcat 的 webapps 目录下,还可以隐式地部署应用程序。

关于 Tomcat 上下文的更多信息,请通过以下网址查阅:

http://tomcat.apache.org/tomcat-8.0-doc/config/context.html

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。