手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包

1、SpringBoot有内置Servlet容器,为何还要使用外置的容器(Tomcat)

嵌入式Servlet容器:应用打成可执行的jar包
优点:简单,便携
缺点:默认不支持JSP,优化定制比较复杂(使用定制器:修改ServerProperties或者定制嵌入式Servlet容器定制器,更高级的方式是:自己编写嵌入式Servlet容器的创建工厂【EmbeddedWebServerFactoryCustomizerAutoConfiguration】)

实际开发过程中,我们很多情况下绕不开Jsp,于是:
外置的Servlet容器:外面安装Tomcat,并配置好相关变量-应用以war包的方式打包

2、创建项目并打成war包

手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
项目自动创建出来后,查看pom.xml文件:
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
⑤工程目录main下,除了有java和resource外,还应该有webapp文件夹,生成这个文件夹:
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
以上项目创建完毕,怎么启动呢?
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
弹出来的对话框,选择带有“:war exploded”后缀的,这里需要注意Application Context内容和前面URL内容一致,手动把项目名删掉,可以和我保持一致:
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包

3、启动Tomcat,如果遇到tomcat日志中文乱码怎么办?

手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
如果遇到tomcat日志中文乱码,解决办法:

到**tomcat/conf/**目录下

修改logging.properties
找到 java.util.logging.ConsoleHandler.encoding = utf-8这行 更改为 java.util.logging.ConsoleHandler.encoding = GBK
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
启动成功后,浏览器会自动跳转到一个错误页面,因为我们没有写首页,所以这是正常的
手把手教你如何在IDEA中使用定制(外置)的Tomcat将SpringBoot工程打成war包
下面可以自己写一个Jsp首页,浏览器访问一下。

强调一下:
如果访问失败404,检查一下URL(http://localhost:8080/)和Application Context(/)的路径是否一致,自定义的外置tomcat,idea会自动加上项目名称作为路径,不需要的路径需要手动删除。
具体可以参照我的配置。

如果觉得本文对你有用,可以点个赞,十分感谢。