我们使用tomcat时会在conf/server.xml配置文件中设置对于tomcat的配置,这个配置适用于tomcat中部署的所有项目。
但当在idea中配置tomcat后,idea会为每一个tomcat部署的项目单独建立一份配置,也就是有几个项目就会有几份tomcat的配置。
我们可以在Run - Edit Config.......中找到相关tomcat的配置,但这里只是配置的可视化图形界面而已,真正的配置信息依然会写到
tomcat的server.xml中,那么这个server.xml在哪里呢?
下图是tomcat的启动端口等配置
下图是配置根虚拟目录的,也就是在localhost/xxx后面第一级虚拟目录的名称,写/就表示没有虚拟目录
将配置到idea的tomcat启动后,在控制台输出中可以看到“Using CATALINA_BASE: C:UsersAdministrator.IntelliJIdea2019.3system omcat\_tyh-java-demo”内容,在电脑中将后面的路径打开
将路径打开,就可以看到下图目录,这就是当前项目对于tomcat的配置,其实跟tomcat的可变内容文件夹一样,conf存放配置文件,logs存放项目日志,work存放运行时数据
在conf中有server.xml配置文件,当我们在idea中修改了tomcat的配置,这个server.xml就会被修改。
我们的项目运行时的根虚拟目录就是在conf中的Catalina/localhost/xxx.xml,这个xxx.xml就是指向项目的根虚拟目录,
xml中写的就是项目的路径,其中path和xml文件相同代表根虚拟目录,path也可以省略不写,docBase指向项目存放地址。
将docBase路径在电脑中打开
这就是一个动态web站点的目录结构,WEB-INF存放classes类字节码文件和web.xml配置文件,外面放的网页文件。
这个目录结构和我们idea代码中的web目录下的结构是一样的
工作空间的web目录和tomcat部署的web项目,虽然目录结构相同,但却存储在两个位置,
tomcat部署的web项目存储在工作空间的out/artifacts目录下,
当我们在代码中的web目录下新建了一个资源文件,它会自动复制到tomcat的部署目录下,
所以tomcat真正访问的是web部署目录,而不是工作空间目录。
工作空间中的src目录的java文件会被编译后将生成的class字节码文件放到tomcat部署目录中的WEB-INF下的classes中。
WEB-INF目录是特殊的,这个文件夹下的html文件等是无法被浏览器直接访问的。
也可以在项目结构配置上设置一个web
当我们在pom.xml文件中对某个模块配置了<packaging>war</packaging>时,在