author: Nathan_alzy
date: 2021-10-22-22:23


tags: #Tomcat

简述

今日学习servlet使用第二种配置方式---注解遇到点问题,可能是不熟悉idea中对于tomcat的整合或者是使用逻辑,因为idea直接自动完成了某些配置致使忽略了一些过程。花费了几个小时,终于解决了。

一开始使用注解的方式进行配置,当启动tomcat时,自动弹出的页面没有显示内容(见图1),后面修改了一下,直接404(见图2),直接懵逼。

图1-第一次尝试显示找不到网页

图2-第二次尝试显示404

原理分析

为了搞清楚idea是如何整合tomcat,需要从0开始,即按照刚开始单独下载,启动tomcat的流程分析,主要进行如下步骤

  • 启动java.exe。
  • 使用配置文件conf中的内容,设置的端口,设置的项目路径等。

⚠️ IDEA会为每一个tomcat部署的项目单独建立一份配置文件,这些配置文件所在的目录当启动tocmat时在控制台会在输出log中看到。

1、tomcat配置

当在idea中选择【Configuration】➞ 新建【Tomcat Server】,其实就是新建了一个配置,一个配置可以运行多个项目,当然可以一个配置运行一个项目,只需要将所需的项目添加到配置信息中用于部署,当然使用idea就不需要到文件夹中的配置文件中配置部署了,只需要图形界面操作即可。

2、选择项目部署

在原生tomcat启动中,每个项目建议打包为war包。

所以想要添加项目也需要添加类似的war包,在idea中显示为「artifacts」,翻译就是「一个人工制品,工艺品」之类的,不过确是,一个辛辛苦苦创建的项目不就是一个「工艺品」吗。

配置完后,当启动tomcat,idea会编译模块项目,生成target编译结果目录。

问题是,选择的「artifacts」是哪里来的?

实际上,在创建模块时,就会提示命名「artifacts」

下面一段文字“The name of th artifact within the group ,usually a module name”就是说,现在创建的模块这个模块名为作为artifact的名(当然可以修改自定义artifact名),这样后期添加的「artifact」就是以当前模块名命名的。

3、编译项目创建target目录

当创建一个模块,并配置tomcat,后部署「artifact」时,idea会编译并创建一个target编译结果目录。

关于在target和out文件夹(目录)的区别: https://blog.csdn.net/qq_2659...


可以看到当选择配置tomcat时,idea中有一个选项设置tomcat服务器名,这个名称根据需求设定学习阶段可以设置为同项目名,便于测试学习

总结提升

总结一下基本过程:

  • 创建模块
  • 配置tomcat
  • 部署项目artifact
  • 编译生成target目录

这样就可以成功启动tomcat并访问页面(当然其他操作问题,比如路径错误也会影响启动结果和展示结果)。最近最常见的问题就是端口老是被占用!😅。

相关文章: https://blog.csdn.net/weixin_...

03-05 14:56