|
Tomcat虚拟路径
2012-01-29 20:05 415人阅读 评论(0) 收藏 举报
在tomcat安装好后,只要把你的web项目copy到%TOMCAT_HOME%webapp下面就可以是使用啦!!其实还有种方法就是设定虚拟目录,即把项目的目录映射到tomcat中。这样做即可以不用重复的部署,节约时间,而且给开发人员带来方便。
方法如下:
1,找到%TOMCAT_HOME%/conf/server.xml,(即tomcat的安装目录下面相关的文件)打开此xml文件,在 之间加入如下代码:
docBase是实际路径,这里一般写一个绝对的磁盘路径,当然也可以写 相对路径,相对路径是相对于tomcat安装目录的webapps目录的,通常设置虚拟目录的目的是将tomcat的安装和项目的保存分开,所以这里建议你使用磁盘绝对路径,并且这个磁盘路径不时在tomcat安装目录下。workDir是tomcat运行是对JSP文件做编译后的文件,这个文件最好也是分开。
path为虚拟路径,访问时的路径,注意:一定要加“/”。值得注意的是:path可以为 "/"那么访问“IP:端口”就可以访问到布置的工程,如果为"/test",那么必须得访问“IP:端口/test”才能访问到,我建议采用第一种方法。不然访问每个工程都得有个虚拟路径,看上去不舒服。可能你会想到如果我有多个工程怎么办?是不是一定得取几个虚拟路径,如果你用一个IP的话那是肯定的。但是如果你把机器多设置几个IP,那么就行了,每个工程占用一个IP,这样层次结构更加清晰。
debug建议设置为0,reloadable设置为true。
2,如果在测试中出现404的错误,如果前面配置没有错,可能就是在%TOMCAT_HOME%/conf/web.xml文件中把虚拟路径显示目录给禁止啦,此时可以在web.xml文件中找到
default
org.apache.catalina.servlets.DefaultServlet
debug
0
listings
false
1
将listings的value改为true,然后重新启动tomcat,在输入url,测试成功!
3,如果项目开发完成,准备部署在服务器上时,记住要把第三步中web.xml文件中参数listings的值改为false,这样可以避免把项目的部署路径呈现给使用者!
具体如下:
listings
false
4、访问多台机器文件问题:
文件太多的时候必然需要跨目录或跨盘,这个时候就需要用到虚拟目录,但是Tomcat 不能直接跨Context 进行Forward。
例如:
用 Context 配置映射了虚拟目录 data1, 目录下有文件 123.txt
如果要在 / 下直接 forward 到 "/data1/123.txt" 是不行的,会提示 404 找不到文件。
那么就需要灵活应用Tomcat 虚拟目录映射:
在 D:/Tomcat/conf/Catalina/test 目录下(test为Server.xml配置文件中的域名) 增加 一个 xml 文件,(test要创建),创建之后加上这个样一个XML文件(这里就取名为data1.xml):
并且修改 Server.xml 中的 Context 允许 crossContext="true"。
那么就可以在工程中访问另外台机器上的文件(当然这个台机器需要共享访问的文件)。例如:
,来显示图片。
问题又来了,就是权限问题,共享的文件不想给任何人访问的话,就需要设置共享权限,那么就需要配置tomcat的权限:
1、在共享的机器上设置tomcat帐户和密码,并加入共享权限。
2、然后在放tomcat的服务器上,设置相同的tomcat帐户和密码。
3、在tomcat服务上配置登录账号和密码。
在服务里找到tomcat,右键属性,标签第二项就是,如图:
--------------------------------一下来自百度------------------------------------------------------
多说几句
Tomcat 6与Tomcat 5或者之前版本不一样的就是,首页没有显示具体的版本,猫猫也变大了些。
没有admin管理页面了,admin在Tomcat 5.5来默认都没有了,不过可以下载admin包(http://tomcat.apache.org/download-55.cgi下载Administration Web Application: )。
而Tomcat 6.0没有看见admin包,不过这并不要紧,一般情况下也不需要admin包。
Tomcat 6.0默认也没有开启servlet、禁止目录浏览。这需要去conf/下配置web.xml文件。
修改listings为true即可以目录浏览,
listings
true
开启servlet直接访问功能,把这两段注释打开。
invoker
org.apache.catalina.servlets.InvokerServlet
debug
0
2
invoker
/servlet/*
2.4 部署一个新项目chengqun,去conf/下配置server.xml
chengqun是你程序的目录 重启Tomcat,访问http://127.0.0.1:8080/chengqun就可以访问了
======================================================================================================================
域名绑定与虚拟目录设置:
server.xml 的修改方式如下:
(一)多域名绑定
1.如果你要绑定网站,首先是要把tomcat的默认访问端口8080,修改成80
原始:
修改后:
其实这里就是把port:8080,修改成port:80就可以了,其他的参数不变
2.接下来就是重点了哈哈...
单个域名绑定:
原始:
当然这里我把注释代码统统删除掉了,省的碍眼
修改后:
多域名绑定:
chengqun.202.71one.com
chengqun1.202.71one.com
chengqun2.202.71one.com
这里面的参数还有很多,我也不是很清楚,不过这样做确实可以实现多域名绑定哈哈.而且网站页面修改了只要直接覆盖就可以了,tomcat可以自动更新类和页面,当然如果修改了web.xml或lib,则需要重启tomcat才可以.
(二)虚拟目录
(1)
其中,Host标记是用来配置虚拟主机的,就是可以多个域名指向一个tomcat,格式只要参考默认的就
可以了。
是Host标记的子元素吧,表示一个虚拟目录,它主要有两个属性,path就相当于虚拟目录名字,
而 docbase则是具体的文件位置。在这里我的虚拟路径名称为chengqun,实际上我的程序也就是html、jsp、servlet都 放在了d:\wwwroot\chengqun这个目录下了。
这样我就可以通过 chengqun.202. com/chengqun 访问我的这个虚拟目录了。
另外一种方法是:
这样设置以后,输入域名可以访问这个站点程序了(Context path="/"这里不同)
(2)
没有指定默认站点,所以直接输入IP的时候,无法访问。如何让输入ip就可以访问指定的站点呢?
修改server.xml的
这样就可以实现了输入ip访问chengqun.202. com这个站点的程序了!
tomcat如何把web项目部署到磁盘的任意目录
一,为了说明此问题的解决方案,我们需要假定几个条件:
1. 我们的tomcat安装在: D:\tomcat5.5
2. 我们已经完成了一个web项目: mobile_app
3.我们把此项目放到了E盘的根目录下:E:\mobile_app
二, 把此项目配置到tomcat服务器中:
1. 到D:\tomcat5.5下找到conf文件夹,在此文件夹下依次找到Catalina\localhost文件夹
2. 在conf\Catalina\localhost目录下新建一个mobile_app.xml文件,注意这个文件名既代表
了此web项目的名称
3. 编辑此mobile_app.xml文件
|
|
|