设置web应用的 context root (转)-- web project setting

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.warcontext 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

posted @ 2019-08-02 11:32  zzfx  阅读(2644)  评论(0编辑  收藏  举报