编译软件:IntelliJ IDEA 2019.2.4 x64
操作系统:win10 x64 位 家庭版
服务器软件:apache-tomcat-8.5.27
一、为什么要将Tomcat集成到IDEA里?
目的:
让idea帮我们部署项目,并且启动、关闭、重新部署服务器,而不用再去操作startup.bat和shutdown.bat,以提高web项目的部署效率。
二、集成步骤
2.1 在IDEA中创建Tomcat
① 点击File–>Settings
②点击 application Servers --> + --> Tomcat server
③为刚才创建的Tomcat server 指定家目录
2.2 创建java的企业级模块(动态的web工程)
① 点击File–>New–>Module
②创建Java Enterprise,然后进行相应的设置
③设置模块名称和该模块的文件存储路径,然后Finish
三、本地创建的动态Web项目目录结构说明
构成:
- src:存放Java源代码的目录。
- web:存放的是需要部署到服务器的文件
- WEB-INF:这个目录下的文件,是不能被客户端直接访问的。
- lib:用于存放该工程用到的库。粘贴过来以后
- web.xml:web工程的配置文件,完成用户请求的逻辑名称到真正的servlet类的映射。
凡是客户端能访问的资源(*.html或 *.jpg)必须跟WEB-INF在同一目录,即放在Web根目录下的资源,从客户端是可以通过URL地址直接访问的。
具体如下图所示:
四、如何启动刚创建的动态web项目?
项目的启动与停止,debug和我们平日编译,调试Java代码都是相似的
备注:当启动服务器时,idea存在一个自动的机制(会自动弹出浏览器打开页面)
当我们启动服务器时,它会自动在浏览器里打开我们在项目中手动创建的index.html,,若没有创建index.html,它会默认打开index.jsp。
五、IDEA启动的是本地服务器吗?
答案:
不是
why?
IDEA启动的并不是本地服务器,它对于服务器的机制是为每一个web模块,创建一个服务器镜像(副本),该服务器镜像依托于本地安装的Tomcat服务器。在
C:\Users\用户\.Inte1 liJIdea2019.2\system\tomcat\各种服务器目录
里可查看该服务器镜像文件,如下图所示。
该服务器镜像的目录结构中只有config,logs和work文件夹,相比于完整的本地服务器目录,残缺了不少的重要文件夹。该镜像服务器与本地服务器共享如下所示的文件夹。
六、部署在服务器上的项目是什么结构的?
当我们启动服务器时,在本地创建的动态web项目经过编译后,并不会把所有的内容都部署到服务器上,而是把war包【web项目经过编译后的压缩包】放到服务器上,这个war包就是部署在服务器上的项目,该war包可以在 项目的目录\out\artifacts\war包内容
被找到,如下所示。
它的目录结构如下所示:
七、IDEA里Tomcat的基础设置
由于每次创建项目随之创建的tomcat实例名字都类似,所以建议修改一下Tomcat实例的名称(这里的实例名称我之前改过)
八、导入模块(简单版)
如果你想把别人的动态web模块导入到自己的动态web模块中,切不可直接导入
步骤:
①自己new一个动态web模块
②将模块的src和web复制粘贴进来即可
九、可能出现的问题
问题场景:
对项目进行修改操作(改源文件的内容、新建文件)时【偶发事件】,重新部署或者重启服务器之后,客户端还是访问不到。
原因:
有可能是本地项目和wr包的内容未同步
解决方案:
将war包删除,重新启动服务器即可
十、删除模块
要删4个位置的文件:
模块、war包、服务器、本地都需要删除干净,若不删干净,后面如果重建一个重名的模块,会发生问题
①删除模块
②删除war包
③删除war包对应的服务器实例
④删除本地对应的模块目录