一文了解Tomcat

文章目录

1、Tomcat介绍

什么是Tomcat

​ Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级web服务器,支持Servlet / jsp 少量JavaEE规范,Tomcat 也被称为 Web容器、Servlet容器。

官网:https://tomcat.apache.org/

什么是JavaEE

​ JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF

2、Tomcat使用配置

2.1、Tomcat下载启动

Tomcat下载安装

  1. 下载:https://tomcat.apache.org/
  2. 安装:Tomcat是绿色版,直接解压就可以了,建议:不要有中文的目录,目录层次不要太深
  3. 打开apache-tomcat目录就能看到如下目录结构,每个目录中包含的内容需要认识下

Tomcat启动关闭

  • 启动:双击:bin\startup.bat
  • 关闭
    1. 直接x掉运行窗口:强制关闭
    2. bin\shutdown.bat:正常关闭
    3. ctrl+c: 正常关闭

Tomcat访问

​ 访问方式:浏览器输入localhost:8080,Tomcat默认端口是8080

2.2、Tomcat启动乱码

问题

控制台有中文乱码,需要修改conf/logging.prooperties

  1. 进入Tomcat的conf目录
  2. 找到logging.properties文件
  3. 将里面所有的UTF-8 替换成 GBK

注意:建议使用Vscode打开或者其他工具,直接查找替换,避免发生错误

2.3、Tomcat端口号修改
  1. 进入Tomcat的conf目录下
  2. 找到 server.xml文件,打开
  3. 找到下列代码位置,大概在69行,修改port=你想要的位置
xml 复制代码
<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
  • 端口号冲突

3、Tomcat项目部署

项目部署的两种方法

  1. 直接将项目复制到webapps目录下
  2. 采用压缩文件.war的方式
    • 将整个项目使用压缩工具打包成zip文件
    • 改zip的扩展名为war
    • 复制到webapps目录下,tomcat会自动解压成一个同名的目录

注意:里面的文件不能有中文名

部署演示:直接将项目复制到webapps目录下

  • 项目名为:hello,将其文件复制到webapps目录下
  • 启动Tomcat后,访问hello

部署演示:采用压缩文件.war的方式

  1. 将项目压缩成zip文件
  2. 改zip的扩展名为war
  3. 复制到webapps目录下,tomcat会自动解压成一个同名的目录
  • 访问测试

4、IDEA中使用Tomcat方式

  • 通过Maven的package命令可以将项目打包成war包,将war文件拷贝到Tomcat的webapps目录下,启动Tomcat就可以将项目部署成功,然后通过浏览器进行访问即可。
  • 然而我们在开发的过程中,项目中的内容会经常发生变化,如果按照上面这种方式来部署测试,是非常不方便的
  • 如何在IDEA中能快速使用Tomcat呢?

将本地Tomcat集成到IDEA中

  • 打开添加本地Tomcat的面板
  • 指定本地Tomcat
  • 配置本地Tomcat

将项目部署到集成Tomcat里面

扩展内容: xxx.war和 xxx.war exploded这两种部署项目模式的区别?

  • war模式是将WEB工程打成war包,把war包发布到Tomcat服务器上

  • war exploded模式是将WEB工程以当前文件夹的位置关系发布到Tomcat服务器上

  • war模式部署成功后,Tomcat的webapps目录下会有部署的项目内容

  • war exploded模式部署成功后,Tomcat的webapps目录下没有,而使用的是项目的target目录下的内容进行部署

  • 建议大家都选war模式进行部署,更符合项目部署的实际情况

相关推荐
麦兜*41 分钟前
Spring Boot 企业级动态权限全栈深度解决方案,设计思路,代码分析
java·spring boot·后端·spring·spring cloud·性能优化·springcloud
ruan1145142 小时前
MySQL4种隔离级别
java·开发语言·mysql
Hellyc6 小时前
基于模板设计模式开发优惠券推送功能以及对过期优惠卷进行定时清理
java·数据库·设计模式·rocketmq
lifallen6 小时前
Paimon LSM Tree Compaction 策略
java·大数据·数据结构·数据库·算法·lsm-tree
hdsoft_huge6 小时前
SpringBoot 与 JPA 整合全解析:架构优势、应用场景、集成指南与最佳实践
java·spring boot·架构
百锦再7 小时前
详细解析 .NET 依赖注入的三种生命周期模式
java·开发语言·.net·di·注入·模式·依赖
程序员的世界你不懂7 小时前
基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(2)对框架加入业务逻辑层
java·selenium·maven
有没有没有重复的名字8 小时前
线程安全的单例模式与读者写者问题
java·开发语言·单例模式
程序员的世界你不懂9 小时前
基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(4)集成Allure报表
java·selenium·maven
isNotNullX10 小时前
数据中台架构解析:湖仓一体的实战设计
java·大数据·数据库·架构·spark