首先,我来做一有趣的实验:
第一步:我在E盘建立了一个picture文件包,里面放一张图片(cat.png)
第二步:我修改tomcat的service.xml配置,添加如下代码:
第三步:启动tomcat,用浏览器访问:http://127.0.0.1:8080/mytest/cat.png
(启动成功)
怎么可能呢?我访问http://127.0.0.1:8080/mytest/cat.png,竟然成功显示出了存放在我E盘里面的图面!
理由是:
<Context path="/mytest" docBase="E:\picture" reloadable="true"/>
docBase:设置访问web的应用或设置本地路径。
Path:设置tomcat访问应用的URL路径。(URL路径就是例如http://127.0.0.1:80……)
通俗说就是:配置了上面内容后,以后你访问http://127.0.0.1:8080/mytest (Path内容)时,默认就是访问的就是E:\picture (docBase内容)里面的内容。
所以,我们可以通过修改Context的path属性来指定url最终访问的是哪个应用,而docBase指明该应用的具体物理地址。
【拓展】
①至于reloadable:
如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class文件被更新的,服务器会自动重新加载Web应用。
在开发阶段将reloadable属性设为true,有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web应用的发存阶段将reloadable设为false。
②关于以下tomcat自动生成的代码的说明:
<Context path="/Day1113web" docBase="Day1113web" reloadable="true"/>
意思就是:当你访问http://127.0.0.1:8080/Day1113web/...时,它默认访问Day1113web/... ,为什么 docBase不写明什么盘呢?只写Day1113web系统哪里知道他什么盘?
因为:除非自己更改了,否则默认位置就是在tomcat的webapps下!你的tomcat的webapps下当然有Day1113web这一个项目在!
所以你可以发现,你在tomcat下建立了一个新项目时,它自动会在service.xml中生成:
<Context path="/你建的项目名" docBase="你建的项目名" reloadable="true"/>