tomcat安装路径C:\Program Files\Apache Software Foundation\Tomcat 6.0
\conf文件夹下包含这些文件:catalina.policy、catalina.properties、context.xml、logging.properties、server.xml、web.xmltomcat-users.xml
===================================================================================
server.xml文件内容: <Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/> <Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
</Server>
context.xml文件内容
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
文件中被注释部分都省略了
===================================================================================
我现在看的书上是tomcat5.x介绍的 无法按照书上去配置 网上也没找到我想要的配置方法 英文不好 文档看不太懂 所以就有了这个帖子我是新手 所以请尽量包涵我啰嗦的问题我理解的默认配置的部分 理解不对的地方请纠正
默认的站点名称localhost
默认的存放站点的文件夹\Tomcat 6.0\webapps
问题1、没看见哪里设置ROOT文件夹,为什么http://localhost:8080/index.html访问的是webapps\ROOT文件夹下的index.html?我喜欢把程序文件和自己保存的文件分开放 所以自己的文件都会放在非C盘 但是又喜欢保持原程序文件的完整性
问题2、如何映射一个虚拟根目录取代ROOT?例如我想让D:\myroot成为localhost的根目录,即http://localhost:8080/index.html访问的是D:\myroot下面的index.html;我不要把D:\myroot映射成ROOT/xxx,即http://localhost:8080/xxx/index.html访问的是D:\myroot下面的index.html。问题3、如何新建个虚拟主机然后设置虚拟根目录?比如我要新建个名为myhost的虚拟主机,文件夹是D:\mysite,我知道要做的可能是在server.xml里新加个<Host>标签(别告诉我把localhost改为myhost,我不想把localhost改掉),name=myhost appBase="D:\mysite",那context.xml里的<context>标签怎么写,如果有多个<Host>,如何知道它对应的那个host。我想知道的是<Host>和<context>分开写不是嵌套在一起。如何设置才能http://myhost:8080/index.html访问的是D:\mysite下的index.html?谢谢!
\conf文件夹下包含这些文件:catalina.policy、catalina.properties、context.xml、logging.properties、server.xml、web.xmltomcat-users.xml
===================================================================================
server.xml文件内容: <Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine name="Catalina" defaultHost="localhost"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/> <Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
</Server>
context.xml文件内容
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
文件中被注释部分都省略了
===================================================================================
我现在看的书上是tomcat5.x介绍的 无法按照书上去配置 网上也没找到我想要的配置方法 英文不好 文档看不太懂 所以就有了这个帖子我是新手 所以请尽量包涵我啰嗦的问题我理解的默认配置的部分 理解不对的地方请纠正
默认的站点名称localhost
默认的存放站点的文件夹\Tomcat 6.0\webapps
问题1、没看见哪里设置ROOT文件夹,为什么http://localhost:8080/index.html访问的是webapps\ROOT文件夹下的index.html?我喜欢把程序文件和自己保存的文件分开放 所以自己的文件都会放在非C盘 但是又喜欢保持原程序文件的完整性
问题2、如何映射一个虚拟根目录取代ROOT?例如我想让D:\myroot成为localhost的根目录,即http://localhost:8080/index.html访问的是D:\myroot下面的index.html;我不要把D:\myroot映射成ROOT/xxx,即http://localhost:8080/xxx/index.html访问的是D:\myroot下面的index.html。问题3、如何新建个虚拟主机然后设置虚拟根目录?比如我要新建个名为myhost的虚拟主机,文件夹是D:\mysite,我知道要做的可能是在server.xml里新加个<Host>标签(别告诉我把localhost改为myhost,我不想把localhost改掉),name=myhost appBase="D:\mysite",那context.xml里的<context>标签怎么写,如果有多个<Host>,如何知道它对应的那个host。我想知道的是<Host>和<context>分开写不是嵌套在一起。如何设置才能http://myhost:8080/index.html访问的是D:\mysite下的index.html?谢谢!
dl个source看看就全明白了。 /**
* Given a context path, get the config file name.
*/
protected String getDocBase(String path) {
String basename = null;
if (path.equals("")) {
basename = "ROOT";
} else {
basename = path.substring(1);
}
return (basename);
}也就是说,如果path为空,强制为ROOT!2, 你可以改程序,同时把server.xml里面,appBase="webapps"给改了。
但是不建议你这么做,你似乎不知道http服务器和web应用服务器的区别。
通常真正运用时,tomcat前面有个apache。那么,http://localhost/index.html访问的是apache的东西。
http://localhost/xxx/index.html才是tomcat的东西。
当然,设置好之后,8080是关掉的,xxx的请求自动转到tomcat.对apache公开的是<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
所以你根本用担心外面会访问到http://localhost:8080/index.html3, 没试过,不知道。不过<Engine name="Catalina" defaultHost="localhost">
你有多个host的话,defaultHost可能要改。
一个小tomcat都配置不好 打击太大了 郁闷 装dz论坛的时候 iis自己摸索摸索就配置好了 这个tomcat已经浪费了我快10个小时了回1楼:
1、 protected String getDocBase(String path) {
String basename = null;
if (path.equals("")) {
basename = "ROOT";
} else {
basename = path.substring(1);
}
return (basename);
}
这个path怎么跟docBase扯上关系了 不是有docBase这个属性自己指定吗 我的理解好像docBase是存放文件的地方 path是写在浏览器地址栏里的url2、我也不想把appBase="webapps"给改了 那样相当于把webapps挪个地方 然后那下面的文件夹如何映射到本地文件夹还是不会3、似乎conf文件夹下还应该有文件夹 为什么我的conf下面就那几个文件 要自己建文件夹吗 那最里层的文件夹里的文件有什么
2 context.xml 你可以不用管它
3 conf\Catalina\localhost 这个目录下面是设置localhost的虚拟目录,也就是docBase;比如你可以创建一个ROOT.xml 就是主目录了Tomcat 6 和5.5 配置有区别,虽然不是很大,但和5.0及以前的版本,区别很多!
3 conf\Catalina\localhost 这个目录下面是设置localhost的虚拟目录,也就是docBase;比如你可以创建一个ROOT.xml 就是主目录了
这样弄过 没用 只有xxx.xml才有用 然后http://localhost:8080/xxx才可以
我想要http://localhost:8080就对应的是D:\test这种
ROOT.xml内容
<?xml version='1.0' encoding='utf-8'?>
<Context path="" docBase="d:/test" reloadable="true" crossContext="true">
</Context>
这是网上找到的方法 根本就不管用 path="/"也不行test.xml
<?xml version='1.0' encoding='utf-8'?>
<Context path="/test" docBase="d:/test" reloadable="true" crossContext="true">
</Context>
这样http://localhost:8080/test 这样倒是可以 但是我不想让它后面/test 感觉很不舒服
我再重装一遍试试看
我还是把<Contex>放进server.xml里好了 contex.xml不动 也不新建Catalina文件夹 这样比较符合我的性格 浪费了一天时间了 不能再浪费时间了