启动Tomcat后,在浏览器地址栏输入:http://localhost:8080/,访问的就是tomcat虚拟根目录下的index.jsp文件
Tomcat 的默认根目录:D:\apache-tomcat-7.0.42\webapps\ROOT
在D:\apache-tomcat-7.0.42\conf目录下的server.xml文件的Host元素中,name属性:主机名称,appBase属性:基准目录 ,基准目录下的Root 目录被自动设置为根目录
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- ... -->
</Host>
在Host元素里,添加Context元素:
<Context path="" docBase="D:\test"></Context>
path:为空,即访问localhost:8080就可以访问到docBase目录下的文件,修改原来默认根目录
docBase:可以设置绝对路径,也可设置相对路径,相对路径是相对 appBase 属性所设的目录而言的
此时再访问:http://localhost:8080/,出现404错误页面。因为在test目录下不存在index.html文件,在D:\test目录下新建1.html,在地址栏输入:http://localhost:8080/1.html,可以访问成功。
如果想即使不输入1.hmtl也能默认访问该文件,则需修改:D:\apache-tomcat-7.0.42\conf目录下web.xml文件的元素,将index.hmtl改为1.html,那么访问http://localhost:8080/时就会默认访问1.html
虚拟子目录(虚拟目录),即,path属性不为空的情况。
为什么虚拟根目录和虚拟子目录要区分?
假设新增应用且path为"system",那么在html文件里,"/"代表虚拟根目录,即前缀为localhost:8080/。但是在Servlet的web.xml文件的url-pattern元素中,"/"代表的是虚拟子目录,即localhost:8080/system/。
修改server.xml
在server.xml文件的Host元素中,嵌套下面两条语句:
<Context path="/test1" docBase="D:\test" reloadable="true"></Context>
<Context path="/test2/test" docBase="D:\test" reloadable="true"></Context>
path: 表示虚拟目录的名称(前面的正斜杠“/”可以省略)
docBase:可以设置绝对路径,也可设置相对路径,相对路径是相对 appBase 属性所设的目录而言的
reloadable:表示修改应用程序后,tomcat自动帮你部署(reload),不用重新启动
(注意,设置debug属性后,在tomcat6.0.39不会出现警告,而在tomcat7.0.42会出现警告)
添加后重启tomcat
输入:http://localhost:8080/test1/1.html,可以成功访问。
输入:http://localhost:8080/test2/test/1.html,也可以成功访问
以上就是关于“一文看懂Tomcat设置虚拟目录”的介绍,大家如果对此比较感兴趣,想了解更多相关知识,不妨来关注一下极悦的Java极悦在线学习,里面的内容全面细致,从入门到精通,适合没有基础的朋友学习,相信对大家会有所帮助的。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习