您的位置:首页 > 运维架构 > Tomcat

tomcat虚拟目录

2007-03-23 14:53 204 查看
ROOT是tomcat的默认虚拟目录,如果要改成自己的虚拟目录怎么办呢?请继续往下看吧。
要改成自己的虚拟目录,就要请出server.xml来了,该文件是一个配置文件,在Tomcat/conf目录下,使用任何文本编辑软件都能打开它,我们先找到下面一句:
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" />
这里的port="8080"就是端口,我们完全可以用别的端口来代替,但不能是被系统占用的端口(0--1023),这里简单提一下。
下面我们再往下找,会发现以下的语句:
</Context>
</Host>
我们就应该找到这两个语句,如果不懂E文,您就认定这两个语句好了。然后我们将该语句更改如下:
</Context>
<Context path="/myjsp" debug="0" docBase="e:/myjsp" reloadable="true">
</Context>
</Host>
这里的path="/myjsp"就是我们就配置的虚拟目录了,以后在地址栏中输入http://localhost:8080/myjsp即可。而docBase="e:/myjsp" 则是机器本地路径,他们通过这个语句形成一个映射关系,其它照抄。
将上面的First.jsp文件放到e:/myjsp目录下,输入http://localhost:8080/myjsp/First.jsp,是不是有一种喜上眉梢的感觉?
在论坛里我见得最多的就是很多人不知道javaBean文件放到哪里,老实说开始我也不知道,更令人不解的是,十个人有九种不同的说法,这更让我们茫然。其实这问题也不是我们想像的那么复杂,我们以一个例子说明:
先建立一个java程序,代码如下:
package hall;
public class SimpleBean {
private String message = "No message specified";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}
保存为SimpleBean.java,编译后会生成一个包,其实就相当于一个目录,也就是SimpleBean.class会存放在hall目录中,暂且保存起来,将来备用。
再输入以下代码:
<HTML>
<HEAD>
<TITLE>Reusing JavaBeans in JSP</TITLE>
</HEAD>
<BODY>
<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">
Reusing JavaBeans in JSP</TABLE>
</CENTER>
<P>
<jsp:useBean id="test" class="hall.SimpleBean" />
<jsp:setProperty name="test" property="message" value="Hello WWW" />
<H1>Message: <I>
<jsp:getProperty name="test" property="message" />
</I></H1>
</BODY>
保存在我们刚才建立的虚拟目录e:/myjsp下面,并命名为:BeanTest.jsp。
现在我们应该将hall(包)目录放在哪儿呢?别急,我们先在e:/myjsp下建立一个文件夹WEB-INF,然后再在WEB-INF下建立一 个classes文件夹,最后将hall目录放到classes下,当然,hall下的字节码文件SimpleBean.class也一并要移过来,而 SimpleBean.java就和BeanTest.jsp放到同一目录吧(可以不需要放的,自己试试)。
好了,大功告成了,重新启动机器(如果您试了好多次都不行,这一步一定要做),在浏览器中输入:http://localhost:8080/myjsp/BeanTest.jsp,您看到了什么?呵,别告诉我您什么都没看到,那肯定是您设置的问题了。

你的 tomcat 目录中有一个 conf 目录,里头有一个 server.xml 文件,这就是相关的配置文件,搜索,你会找到有如下一句话

<Context path="" docBase="" debug="0"/>

这句话是被 <!-- 和 --> 包括起来注释掉的
先把注释去掉,然后在 docBase 中设置上你的网站根目录,哪下是我的那一段配置文件,其中的中文是为了说明写注释:

<!-- Tomcat Root Context -->
<!-- path 表示在浏览器里的目录,空表示根目录, docBase 表示在硬盘上所在的目录 -->
<Context path="" docBase="h:/wwwroot/tomcat" debug="0"/>
<!-- http://localhost:8080/tomcat_docs 所指向的硬盘目录, 这是是 tomcat 的一些文档 -->
<Context path="/tomcat_docs" docBase="e:/tomcat/webapps/tomcat-docs" debug="0"/>
<!-- Tomcat Manager Context -->
<!-- 下面两项是对原来的进行修改以适应根目录的变化的, 即打开上述注释 -->
<Context path="/manager" docBase="e:/tomcat/webapps/manager"
debug="0" privileged="true"/>

<!-- Tomcat Examples Context -->
<Context path="/examples" docBase="e:/tomcat/webapps/examples" debug="0"
reloadable="true" crossContext="true">

注意:这时候端口是默认的 8080,需要使用 http://localhost:8080/ 才能访问
要改端口需要找到

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="8080" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="60000"/>

将端口 port 设置为 80, 改后如下

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector className="org.apache.catalina.connector.http.HttpConnector"
port="80" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="60000"/>

修改保存后,要重启TOMCAT,
注意,此时要停止IIS,否则端口会发生冲突。 上面是网站根目录/端口的配置

下面看看Jsp、TOMCAT虚拟目录的设置

在Tomcat的配置文件server.xml中(server.xml一般在conf目录下面),

有这样几个标签:

<Host name="localhost"....
<Context path="/love" docBase="x:/java/love" debug="0" reloadable="true" crossContext="true">

其中,Host标记是用来配置虚拟主机的,就是可以多个域名指向一个tomcat,格式只要参考默认的就

可以了。

<context>是Host标记的子元素吧,表示一个虚拟目录,它主要有两个属性,path就相当于虚拟目录名字,

而 docbase则是具体的文件位置。在这里我的虚拟路径名称为love,实际上我的程序也就是html、jsp、

servlet都 放在了x:/java/love这个目录下了。 修改保存后,请重启TOMCAT

这样我就可以通过 http://localhost/love/ 访问我的这个虚拟目录了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: