context root確定了Tomcat將那些URL請求轉發到Web應用. 如果應用的context root 設置為 myapp,除非存在更為明確context root的Web應用,那么所有 /myapp or /myapp/* 的請求將被轉發到你的應用進行處理,. 如果第二個應用context root設置為 myapp/help, 那么 /myapp/help/help.jsp 的請求將轉發到第二個應用進行處理,而不是第一個應用。
這個關系同樣適用於被稱為root context / 的context root . 當應用被指定為root context, 它將會響應沒有被明確context root處理的所有請求.
應用的context root 取決於應用的部署方式. 如果Web應用作為 EAR 包的一部分進行部署, 那么context root 將通過 EAR包里的application.xml 文件中web模塊 context-root元素設置. 在下面的例子里, web-client.war應用的context root 設置為 bank.
<application xmlns="http://java.sun.com/xml/ns/j2ee" version="1.4"
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/application_1_4.xsd">
<display-name>JBossDukesBank</display-name>
<module>
<ejb>bank-ejb.jar</ejb>
</module>
<module>
<web>
<web-uri>web-client.war</web-uri>
<context-root>bank</context-root>
</web>
</module>
</application>
對於部署在 EAR 文件以外的Web應用, 可以通過兩種方式指定 context root. 第一種方式是在 WEB-INF/jboss-web.xml 文件中指定. 下面的例子給出了部署在EAR文件以外的Web應用的 jboss-web.xml 文件.
<jboss-web>
<context-root>bank</context-root>
</jboss-web>
最后,如果沒有指定 context root , Web應用將使用 WAR 文件的文件名作為context root. 對於 web-client.war, context root 將被缺省設置為 web-client. 唯一的例外是特殊的名稱 ROOT. 為了部署 root context的Web應用, 只需要將其命名為 ROOT.war,但是JBoss 已經在 jbossweb-tomcat55.sar 目錄中包含了ROOT.war. 因此你需要將JBoss自帶的ROOT.war刪除或者改名.
采用context root 作為WAR文件的名稱是一個非常好的實踐,這不僅減少了管理的配置設置數量,而且將會使Web應用的用途更加明確,從而提高了可維護性。.
https://www.cnblogs.com/guoxu/articles/1734044.html
https://docs.jboss.org/jbossas/guides/webguide/r2/en/html/ch06.html