一、虚拟目录
一个web应用想要被外界访问,需要将web应用的目录交给web服务器来管理,这个过程称为虚拟目录的映射。在tomcat中,虚拟目录的映射主要有4种,下面一一列举:
1. 在server.xml中修改host元素中的配置
server.xml在tomcat目录下的conf目录里面,打开并找到host元素,在里面添加context元素
<Context path="/wang" docBase="D:\test"/>
其中path表示映射路径,如果映射路径为空(path=""
)或者为“/”(path="/"
),则表示可以直接访问test目录下的文件,docBase表示文件目录。我的test目录下放有aa.html文件,内容为“Hello world!”。
打开浏览器进行访问如下图:
如果path=""
或者path="/"
,访问结果如下图:
2.新建???.xml文件
找到tomcat目录下的conf\Catalina\localhost,在localhost目录下新建一个xml文件,随便命名如bb.xml,然后在bb.xml文件中加入这句话
<Context docBase="D:\test"/>
这里不需要path,因为bb.xml的文件名“bb”就是映射路径,在浏览器中访问结果如下图:
3.tomcat自动映射
这里不过多叙述,直接把web项目放到tomcat目录下的webapps目录里面即可。
4.新建ROOT.xml文件
找到tomcat目录下的conf\Catalina\localhost,在localhost目录下新建一个ROOT.xml文件,在文件里面放入如下一句话
<Context docBase="D:\test"/>
浏览器访问结果如下:
还要强调的是如果上面叙述的1,3,4三种映射如果同时存在,是有优先级存在的,优先级:1>4>3
二、虚拟主机
配置虚拟主机首先需要在server.xml文件中增加一个host元素,如下所示:
<Host name="www.sina.com" appBase="D:\test" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="D:\test"/>
</Host>
然后,需要修改C:\Windows\System32\drivers\etc目录下的hosts文件,
在hosts文件中增加这么一句 127.0.0.1 www.sina.com
然后就可以通过www.sina.com:8080/aa.html来访问D:\test目录下的aa.html文件了,如果想要做的更精细一点,可以把server.xml文件中的端口8080改为80,这样直接访问www.sina.com/aa.html就可以了
(本人测试建立名为www.baidu.com的虚拟主机时出错,不知道原因,如果有解决这个问题的可以告知我一下)