在Tomcat中指定Web应用的Context

2016-09-06_21:20:28.jpg

1. 设置方式

通常有以下几种设置方式:

1.1. 方法一 放入特定的文件夹中。

  • 修改为自定义ContextPath

把Web应用放到<catalina_home>/webapps下对应的文件夹中。

比如,Web应用放在<catalina_home>/webapps/bookstore目录下,则项目的对应的url为http://localhost:8080/bookstore/

  • 修改为根路径

特别的,如果Web应用在<catalina_home>/webapps/ROOT目录下,则该Web应用的url为http://localhost:8080/

这种方法Tomcat官方并不推荐。

1.2. 方法二 修改配置文件

  • 修改为自定义ContextPath

修改<catalina_home>/conf/server.xml

比如,在<catalina_home>/conf/server.xml<Host>元素下添加如下内容:

<Context path="/bookstore" docBase="/absolute/path/to/webapp"/>

则项目的对应的url为http://localhost:8080/bookstore/

  • 修改为根路径

特别的,在<catalina_home>/conf/server.xml<Host>元素下添加如下内容:

<Context path="/" docBase="/absolute/path/to/webapp"/>

则该Web应用的url为http://localhost:8080/

1.3. 方法三 添加配置文件

  • 修改为自定义ContextPath

在<catalina_home>/conf/Catalina/localhost下添加配置文件。

比如在<catalina_home>/conf/Catalina/localhost目录下添加一个配置文件bookstore.xml,配置文件中中填入以下内容:

<Context path="something" docBase="/absolute/path/to/webapp" />

则项目的对应的url为http://localhost:8080/bookstore/,服务器端运行的项目名称为something。这个方法很方便的隐藏了项目的名称,对一些项目名称被固定不能更换,但外部访问时又想换个路径,非常有效。不过通常文件名path相同。

  • 修改为根路径

特别的,比如在<catalina_home>/conf/Catalina/localhost目录下添加一个配置文件ROOT.xml,配置文件中中填入以下内容:

<Context path="/" docBase="/absolute/path/to/webapp" />

则该Web应用的url为http://localhost:8080/

这样就没问题了!这种方法被认为是最好的办法。

2. 参考

HOWTO set the context path of a web application in Tomcat 7.0
Tomcat中三种部署项目的方法

/** * RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS. * LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/ /* var disqus_config = function () { this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable }; */ (function() { // DON'T EDIT BELOW THIS LINE var d = document, s = d.createElement('script'); s.src = 'https://chenzz.disqus.com/embed.js'; s.setAttribute('data-timestamp', +new Date()); (d.head || d.body).appendChild(s); })();