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

设置web应用的 context root (转)-- web project setting的更多相关文章

  1. Eclipse拷贝动态的web工程修改context root的值

    Eclipse拷贝动态的web工程修改context root的值 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. context root的名称一般是我们访问URL时的PATH路径 ...

  2. spring项目的 context root 修改之后,导致 WebApplicationContext 初始化两次的解决方法

    修改了 spring web 项目的 context root 为 / 之后,在启动项目时,会导致 WebApplicationContext  初始化两次,下面是其初始化日志: 第一次初始化: 四月 ...

  3. Myeclipse修改项目名称发布后web Context root名称无法修改

    选中项目,右键--->Properties--->在搜索框搜索:deployment as  然后点击显示出的搜索项.修改右侧视图的Web Context Root名称即可. 如图:

  4. MyEclipse2017修改Web Context Root

    1,复制一个已经存在的项目,并修改项目名 2,选中项目右键选择properities,打开. 但是这里的web context root无法修改 3,删除web显示properties的所有属性,输入 ...

  5. java web中各种context的关系

    我举得这篇文章解决了我的很多疑惑,理清了我以前不太清楚的Context关系,读懂这篇文章很有助于理解源码, 原文链接在这里:https://www.jianshu.com/p/2537e2fec546 ...

  6. web应用中webapp. root重用问题解决方案

      同一个tomcat服务器里面部署两个JavaEE项目,都是用了log4j做日志.并且web.xml里面都监听了日志信息. 启动服务的时候报错. 于是在web.xml添加以下代码:   <di ...

  7. org.springframework.web.struts.ContextLoaderPlugIn 和 org.springframework.web.context.ContextLoaderListener

    org.springframework.web.struts.ContextLoaderPlugIn 和 org.springframework.web.context.ContextLoaderLi ...

  8. ERROR .web.servlet.DispatcherServlet - Context initialization failed

    自己创建了一个SSM 项目,使用maven的tomcat7 运行报错 ERROR .web.servlet.DispatcherServlet - Context initialization fai ...

  9. 把 java web application deploy 到 root

    http://stackoverflow.com/questions/5328518/deploying-my-application-at-the-root-in-tomcat You have a ...

随机推荐

  1. Java计算工作日的工具类

    有时候需要根据工作日计算指定的日期,也就是需要排除周六日. 1.  初版代码如下: package cn.xm.exam.utils; import java.util.Calendar; impor ...

  2. C/C++ 的编译和链接

    C/C++文件 C/C++程序文件包括 .h .c .hpp .cpp,其中源文件(.c .cpp)是基本的编译单元,头文件(.h .hpp)不会被编译器编译. C/C++项目构建(build)过程, ...

  3. Dart面向对象编程(一)

    基本内容概述: 类与对象: 计算属性: void main(){ var rect = new Rectangle(); rect.width = 20; rect.height = 10; prin ...

  4. scrapy爬虫框架windows下的安装问题

    windows操作系统   python版本是3.6.0       通过Anaconda命令conda install scrapy安装scrapy,安装过程中没有问题.   然后在命令行输入命令准 ...

  5. 【1】【leetcode-139】【回溯超时、动态规划】单词拆分

    给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词. 说明: 拆分时可以重复使用字典中的单词.你可以假设字典中没有重复的 ...

  6. ASP.NET Core MVC的Razor视图中,使用Html.Raw方法输出原生的html

    我们在ASP.NET Core MVC项目中,有一个Razor视图文件Index.cshtml,如下: @{ Layout = null; } <!DOCTYPE html> <ht ...

  7. IDEA连接MySQL数据库报错08001

    今天在使用IDEA时连接数据库发生错误,所以用其自带的尝试连接得到如下错误:Connection to test@127.0.0.1 failed.[08001] Could not create c ...

  8. Git教程-安装与创建版本库

    Git是一个分布式版本控制系统,他通过命令行使用的工具,Github是提供Git仓库托管服务的网站 安装参考: https://www.liaoxuefeng.com/wiki/89604348802 ...

  9. only size-1 arrays can be converted to Python scalars

    python版本:3.6.5 opencv版本:3.2.0 使用的jupyter notebook 源码如下: import cv2 import numpy as np import matplot ...

  10. 第一章 Maven 安装配置

    Maven基于(POM)项目对象模型,通过一小段描述信息来管理项目的构建.文档.和报告的项目管理软件,类似于php 的管理构建工具composer. 有关详细的Maven学习,可以参考学习https: ...