tomcat如何配置虚拟目录及虚拟主机

89407119 2010-12-02

先说说如何用Eclipse来做servlet开发,那些project下面对应的目录到底是什么

1.创建web project(比方说project名字为Test)

会出现src文件,运行环境的jar包,WebRoot文件

jar包我们就不说了,主要看src和WebRoot

src我们都知道是放源程序的,创建的servlet程序都放在这个里面

WebRoot这个文件有什么用呢?其实很好理解

当我们写好一个动态Web资源,启动Tomcat服务器时,此时Tomcat已经和这个

project关联,Eclipse会自动将这个工程的Web资源发送到Tomcat的映射目录中去

整个Web应用的目录就是project的名字即Test,然后就是WebRoot中的内容了

一个servlet程序就是一个(必须)实现了特殊接口(即Servlet接口)的Java类,它由支持Servlet

的Web服务器调用和启动运行(我们常用的Tomcat就支持Servlet),一个Servlet程序负责

处理它所对应的一个或一组URL的访问请求,并用于接收客户端发出的访问请求信息和产生

响应内容

在Java SE基础里,我们学过Applet,它是用于浏览器端的Java小程序,在浏览器端被解释执行,

其实浏览器也就是我们所说的客户端

而Servlet是用于Web服务器端的Java小程序,它在Web服务器端被解释执行,用于处理客户端的请求

和产生动态网页内容

虚拟目录D:\163\mail.html

1.当把其他磁盘的目录映射成虚拟目录时,我们可以在Tomcat服务器的conf下的tatalina文件夹下

的localhost下建立一个xml文件,文件名就是虚拟目录的名字(163.xml),内容为

<ContexdocBase="c:\mail"/>里面的路径即为Web应用的路径

这种情况是访问Web应用下的静态资源,并且不能有WEB-INF目录,不然启动Tomcat会出错

我也不知道,试验过很多次总出错,原来是WEB-INF的原因

URL:http://localhost:8080/163/mail.html

其中163即为映射的虚拟目录(通常我们都会把虚拟目录的名字和磁盘上的Web应用的目录名保持一致)

需要说明一下:第一种方式映射虚拟目录不是说不要WEB-INF文件夹吗?但刚刚我又试了一次结果又可以了,不知道怎么回事

2.上述的方法是比较常用的方法

在Tmocat 6.0版本以前通常是另外一种配置方法

在conf文件夹下的server.xml文件中配置

在<Host>标签中配置<Contexpath="163"docBase="c:\mail"/>

其中path是就是虚拟目录,这种方式可以存在WEB-INF文件夹

目前常用的方法都是用第一种方式,当然第二种方式我们也必须了解

在看第一种方式,如何直接访问http://localhost:8080/mail.html

我们只需要将163.xml文件的名字换成ROOT.xml即可(注意是大写)

这里又要注意了

改名之后http://localhost:8080访问不了了

那么咱们现在输入http://localhost:8080这个URL的时候就是访问mail.html

这个如何配置呢?

这个就需要针对咱们的Web资源来配置了

刚刚咱们讲的都是如何来映射虚拟目录吧

下面就说说如何配置Web资源

在WEB-INF目录下创建一个配置文件web.xml然后再这个文件中修改

在Tmocat里conf中有一个web.xml文件,咱们可以借鉴一下

    <welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

这个就是修改首页的,把第一个index.html换成mail.html

完成后咱们在访问http://localhost:8080就是访问的mail.html的内容了

前面的ROOT.xml文件要保留才有效哦

总结一下上面讲的:如何配置虚拟目录

1.在Tomcat里的conf中的catlina下的localhost里创建一个配置文件,文件名就是虚拟目录

比如163.xml,然后写入<ContextdocBase="d:\163">,这个目录就是Web应用的那个路径

现在虚拟目录就映射成功了

http://localhost:8080/163/mail.html

2.如何访问缺省的web资源

在第一步的基础上将163.xml文件名改成ROOT.xml就行了

http://localhost:8080/mail.html

3.如何将缺省的web资源设置成首页

在前2步的基础上继续操作,在Web应用目录下创建WEB-INF文件夹,在里面写入web.xml配置文件

然后将首页的信息修改成mail.html即可

http://localhost:8080/访问的就是mail.html

上面讲的就是如何映射虚拟目录

 下面来说说如何配置虚拟主机

1.首先我们要创建一个虚拟主机,比如主机名为:www.163.com

然后在磁盘上创建这个主机的Web应用目录,里面放置主机需要的Web资源

2.在Tomcat/conf/server.xml里配置虚拟主机的信息

其实打开server.xml,我们发现Tomcat已经为我们配置好了一个虚拟主机了,这个是默认的,如下:

<Hostname="localhost"appBase="webapps"

unpackWARs="true"autoDeploy="true"

xmlValidation="false"xmlNamespaceAware="false">

这段内容写的是;主机名localhost,映射的虚拟目录就是安装目录的webapps文件夹

这样,我们照葫芦画瓢,也同样来配置www.163.com主机

<Hostname="www.163.com"appBase="F:WebResource\163">

</Host>

appBase的配置就是制定磁盘上的哪个路径为虚拟目录

下面来说一下咱们是如何访问服务器的

1.一台服务器下可以挂多台主机,我们访问一个网址www.163.com,这个其实是一个虚拟主机名

当我们连接主机时,浏览器首先会去访问这个dns服务器,通过dns服务器来解析主机名,这样会得到

一个ip地址,这个ip地址就是服务器在网络上的地址,然后我们通过这个ip地址连带着主机名去访问服务器

当服务器接收到request时,服务器发现携带过来的主机,就会去访问虚拟主机对应的web资源

2.如果dns服务器挂掉了,咱们就可以通过ip地址直接访问服务器,当然服务器都有默认的虚拟主机,咱们访问的就是那个默认的,其实我们也可以在Tomcat里来修改这个默认的虚拟主机

 <Engine name="Catalina" defaultHost="localhost">

defaultHost属性就是用来修改默认虚拟主机的

相关推荐