IDEA中web项目在tomcat中的部署位置及修改

IDEA中在运行web项目时部署到tomcat的位置

在idea中运行tomcat,把项目部署运行起来,然后我去tomcat目录下去看,找不到我部署的项目 那我的项目是怎么运行起来的?

说明一下:这里是使用tomcat 部署成war exploded 而不是war包。

war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。

在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。


如上,将两处都修改成Update resources即可。

webapps下面文件夹都翻了一遍,都没有发现部署的项目。


去work文件夹下也看了一遍,是空的。


后来发现,在idea中配置的tomcat,在运行时idea不会把项目放到自己的webapps路径下,而是复制三份文件到 ${user.home}/.IntelliJIdea/system/tomcat 目录下的各自项目。

我们进入该目录,看到如下(名称是通过我们的项目名转化而来):


也就是说每个项目都有属于自己的一份tomcat配置,互不干扰。

我们进入其中一个项目下,看到如下:(在自己的tomcat安装目录下是看不到日志的,日志在这里,还有一些配置文件)


每个项目的配置文件夹中有一个 /conf/Catalina/localhost/ROOT.xml 文件,内容如下:


其中,path是指在访问此项目时,是否需要添加额外的路径,如果为空,则直接使用域名或者ip就可以访问到该项目:127.0.0.1。这个值在ieda中的Run/Debug Configurations中可以配置:(即Application context)




如果现在我在Application context加上:/springSecurityDemo


Server这边会自动加入:springSecurityDemo/


这时候,我们运行tomcat之后,在conf/Catalina/localhost没有发现ROOT.xml,而是springSecurityDemo.xml文件,内容如下:



这时候项目的访问路径是:http://localhost:8145/springSecurityDemo/

docBase是指要运行的项目的部署位置,/myProject/springSecurityDemo 就是我的项目源代码的位置,build是由gradle构建后生成的,gradle build完成之后生成的项目,结构

如下:


而idea启动tomcat的命令在这里:


整个项目运行过程是:首先gradle build项目,将构建结果写到项目的build目录下,然后idea复制一份tomcat的conf、logs和work文件夹到${user.home}/.IntelliJIdea/system/tomcat 中,之后启动tomcat安装目录下的catalina.sh文件,tomcat读取配置文件,找到项目位置,然后就运行起来了。

修改IDEA中web项目部署到tomcat中的webapp目录

前言:不部署在tomcat下,web项目依然能正常启动;如果你需要在本地tomcat的webapps下存储和查看文件,就需要将web项目部署在本地tomcat下。

  1. 配置tomcat,不再赘述。
  2. 打开edit configurations这里写图片描述下面的红色warning点击fix选择war explode即可(后面会将war与war explode两者区别)
  3. 点击deployment(部署的意思),点击铅笔头(修改)这里写图片描述这个就是刚刚fix的东西,注意那句Deploy at the server startup,说明server启动的就是这个东西。
  4. 注意output directory(输出路径),默认是项目target下,你需要修改为本地webapps下,例如:“E:\apache-tomcat-8.5.11\webapps\web-ssm”这里写图片描述
  5. 还没完,此时只是确定项目编译输出路径为“E:\apache-tomcat-8.5.11\webapps\web-ssm”,如果你此时确定,启动项目,启动页面会是404,原因是web-ssm里少东西,你还没有把项目放到输出路径里;回到上面的界面,看到available elements(合适的内容?),选择项目,右键,点击put into output root,这样才算完成。重新启动即可。
    注:选择war也是同样配置,不同的是启动时会将编译后的项目打成war,tomcat会去解压war,启动速度会比war explode慢很多

存储和访问文件,以图片为例

上面正常启动后,本地tomcat默认加载webapps目录下的web应用,并以文件夹名作为web应用上下文,此时可以在webapps目录下创建存放文件的文件夹,如pics,所以代码中保存图片的路径为E:\apache-tomcat-8.5.11\webapps\pics,在前端展示该目录下图片的url就是http://localhost:端口/pics/xx.jpeg

猜你喜欢

转载自blog.csdn.net/weixin_39722922/article/details/89084873
今日推荐