上下文路径(context path)是web应用的一个关键元素,它也用于虚拟主机(virtual host)。虚拟主机可以被定义为一种方法,通过这个方法可以在一个web服务器或一个IP上部署多个域名。Context path也用于为.war文件定义URL映射。 那么为什么需要上下文路径?我们可以直接部署应用到根目录下啊。答案是:通过定义Context Path,我们可以减少服务器上的负载。当服务器接收到请求的URL,他将检查server.xml或者上下文路径,如果在这里找到,那么URL就从这里开始处理,否则服务器必须搜索所有的部署WAR文件,因此上下文路径减少了CPU周期。第二个优势是,能够更自由的定义应用程序,例如logging、appBase,DB connection等。 一、启用context path
在tomcat里启用context path有两种方式: 1、使用Tomcat web Application Manager GUI
在管理控制台中点击Manager App,进入控制界面,在Deploy项中,点击“选择文件”来选择一个WAR文件,点击Deploy按钮进行部署。
点击Deploy进行部署,部署完成后,可以在app列表中查看应用的部署状态和管理控制台。 2、在server.xml中配置
在tomcat7中添加context path的另一种方式是编辑server.xml,这时就需要了解XML文件中的配置项。 - <Host>
- ……
- <Context path="/sample" docBase="D:\ProgramFile\opt\sample.war" reloadable="true" swallowOutput="true">
- <WatchedResource>WEB-INF/web.xml</WatchedResource>
- <Logger className="org.apache.catalina.logger.FileLogger"
- prefix="sample-log." suffix=".txt"
- timestamp="true"/>
- </Context>
- </Host>
重启tomcat后,在管理控制台的sample为:
下面说明一下配置中的设置项,其中: Path=”/sample”:定义了服务器请求的路径URL,例如http://localhost:8080/sample docBase=” D:\ProgramFile\opt\sample.war”:定义了该context path部署war文件的位置,可以使绝对地址也可以是相对地址。 Reloadable=”true”:如果参数设置为true,对war文件的每个变化都会自动生效,而不用重启tomcat。 swallowOutput=”true”:如果参数设置为true,System.out和System.err输出都会重定向到应用程序log中。
再次访问地址,跟上面一样的结果。 |