Tomcat配置虚拟路径
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
T omcat6配置虚拟路径,部署多应用
找到conf/server.xml
<Context path="/news1" docBase="E:\新闻发布系统\news1.0" debug="0" reloadable="true"> </Context>
tomcat中虚拟路径不支持中文路径,所以上面的设置后tomcat不能启动
<Context path="/web" docBase="D:\web" debug="0" reloadable="true"/>
Context指上下文,实际上就是一个web项目;
path是虚拟目录,用于浏览器防问的URL,访问的时候用localhost:8080/web/*.jsp 访问网页
docBase是网页在硬盘上的实际存放位置的根目录,映射为path虚拟目录;debug的值表示是否调试。
reloadable="true"表示你修改了jsp文件后不需要重启就可以实现显示的同步。
<Context path= "/test" docBase="/test" debug="0" reloadable= "true"> </Context>
<Context>代表了运行在<Host>上的单个Web应用,一个<Host>可以有多个< Context>元素,每个Web应用必须有唯一的URL路径,这个URL路径在<Context>中的属性path中设定。
<Context>元素的属性:
path:指定访问该Web应用的URL入口,path必须以"/" 开头,否则会报错。docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性的相对路径,如果Web应用采用开放目录结构,则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和WEB-INF/lib目录下class文件的改动,如果监测到有class
文件被更新的,服务器会自动重新加载Web应用。
在开发阶段将reloadable属性设为true,有助于调试servlet和其它的class文件,但这样用加重服务器运行负荷,建议在Web 应用的发存阶段将reloadable设为false。
Tomcat配置虚拟目录:
找到Tomcat根目录下的conf文件夹,打开里面的server.xml,把如下语句添加进Host元素内做为其子元素:
<Context path="" docBase="H:\webworkspace\webProject\WebRoot"/>
Host元素代表的是web站点,Context元素就代表了该web站点下的虚拟目录。由于path属性为空串,就代表根目录,即把硬盘上H:\webworkspace\webProject\WebRoot所对应的路径设置为了web根目录。如果在H:\webworkspace\webProject\WebRoot目录下有一个test.html文件,启动Tomcat 后我们可以直接在浏览器中输入如下地址进行访问:http://localhost:8080/test.html 如果我们这样设置:
<Context path="/demo" docBase="H:\webworkspace\webProject\WebRoot"/>
那么我们就应该这样来输入访问URL:http://localhost:8080/demo/test.html
其他的配置虚拟子目录的方式如:
特定目录中的XML文件中包含<Context>元素:
Tomcat 5.x的<Tomcat主目录>/conf/<引擎名>/<主机名>
<Host>元素的appBase属性所设置的应用程序基准目录中的含有
WEB-INF/web.xml文件的子目录。
<Host>元素的appBase属性所设置的应用程序基准目录中的war文件。
打包成war文件是发布web应用程序的一个很方便的方式,但是在打包的时候要注意一些问题~~
假如我的程序根文件夹为wartest,其下有一个test.html文件。如果我这样打包:jar -cvf testwar.war wartest
然后把生成的testwar.war复制到webapps目录下。用浏览器访问如下URL:http://localhost:8080/testwar/test.html
浏览器会提示404错误,即找不到test.html文件。为什么呢????
我们可能会自以为是的觉得上面的jar命令打包的是wartest下的全部内容,实际上非也~~~
解压生成的testwar.war就会发现:testwar.war下有两个顶层文件夹,其中一个便是wartest,说明打包的时候把这个根文件夹也包含在内了,所以,我们要访问到test.html,就应该如下构造URL:
http://localhost:8080/testwar/wartest/test.html
怎么解决这个问题呢?这样打包就可以了:
jar -cvf testwar.war -C wartest .
小心不要漏掉了最后面的小圆点!这样生成的testwar.war就不会包含wartest目录自身了。
部署描述符文件
<WEB应用程序>/WEB-INF/web.xml
<Tomcat主目录>/conf/web.xml
<Tomcat主目录>/conf/web.xml保存了所有WEB应用程序的默认设置,所以我们如果把一个应用程序部署在webapps文件夹下,但是在该应用程序的WEB-INF 下缺少了web.xml文件,仍然可以用浏览器访问到这个网站的内容,这是因为Tomcat用<Tomcat主目录>/conf/web.xml做为了该网站的默认设置。