Tomcat上部署web项目的目录问题

记录下最近学习Tomcat关于目录的问题。

首先明确一个概念,从浏览器访问服务器的URL是映射到了服务器上的一个目录的某一个资源文件,打一个比方,有如下一条URL:http://192.168.2.99:8000/book/test.html,在不考虑内容协商的情况下,解释如下

  • 192.168.2.99:这是服务器的IP地址。
  • 8000:是Tomcat服务监听的端口号。
  • /book:这个book并不一定代表服务器上的某一个实际存在的book目录,可以把它理解为一个目录的替换。
  • test.html:浏览器请求的资源文件。

关于根目录:有2种方式设置web站点的根目录

  • <Tocamt主目录>/webapps/ROOT目录自动映射成为Web站点的根目录,所以将web项目放进ROOT目录下就可以在浏览器进行访问了。
  • 如果不想用默认的ROOT根目录,可以找到<Tomcat>/conf/server.xml文件,找到如下<Host>标签格式应该如:<Hostname="localhost"  appBase="webapps"  unpackWARs="true" autoDeploy="true">,添加如下格式的XML语句<Context path="" docBase="d:/test" debug="0" reloadable="true"/>。其中path=""时代表根目录,上边那条XML语句便将根目录设置为了"d:\test"。

关于虚拟子目录:

  • 依旧使用<context path="" docBase="d:/test" debug="0" reloadable="true"/>格式设置虚拟子目录,当path不等于“”时,如:<context path="/book" docBase="d:/test" debug="0" reloadable="true"/>便将d:\test目录映射成了/book子目录。对于URL:http://192.168.2.99:8000/book/test.html,如果未设置虚拟子目录为/book,访问的是:根目录/book/test.html,如果有设置虚拟子目录,假设为d:\test,则访问的是d:\test\test.html。对于<context>标签里的docBase属性,可以为绝对路径,也可以为相对路径,如果为相对路径,则基准路径为<Host>标签里面的appBase。
  • 也可以不修改server.xml文件,在tomcat\conf\Catalina\localhost目录下添加project.xml文件,添加如下格式语句:<Context path="/project" reloadable="true" docBase="d:/Test" workDir="D:/Test/work" />。对于URL:http://192.168.2.99:8000/project/test.html,访问的则是D:\test\test.html。

猜你喜欢

转载自blog.csdn.net/qq_27368993/article/details/83340754