IDEA/Tomcat 原理:如何将 Tomcat 集成到 IDEA?实现由传统部署延伸到热部署 Java EE 项目?

简介: IDEA/Tomcat 原理:如何将 Tomcat 集成到 IDEA?实现由传统部署延伸到热部署 Java EE 项目?

文章目录


前言

通过对 IDEA/Tomcat 原理的讲解,对比其不同之处,讲解如何将 Tomcat 集成到 IDEA 中,创建并部署 Java EE 项目。由传统的部署方式延伸到热部署 Java EE 项目,可以极大地提高项目开发的效率,方便新手入门。

image.png


一、将 Tomcat 集成到 IDEA 中

1.1、进入 IDEA Tomcat 配置页面

上方导航栏点击“Run→Edit Configurations…”进入配置页面,如下图所示:

image.png

说明:

  • Application 指的是对于本地当前应用的配置信息
  • Templates 指的是对于整个模板信息的全局配置

image.png

打开 Run/Debug Configuration 窗口,下滑找到 Tomcat Server 配置,Local 是本地配置,Remote 是远程配置,如下图所示:

image.png

1.2、配置并集成 Tomcat

“Server”界面点击“Configure…”,如下图所示:

image.png

点击“+”选择 Tomcat 在本地的安装路径进行匹配,如下图所示:

image.png

配置完成,点击“OK”,如下图所示:

image.png

1.3、配置完成说明

在“Sever”页面可以看到我们集成后的信息,下面的端口默认 8080,我们无须再对其进行修改。点击“OK”完成设置,如下图所示:

image.png

1.4、集成检查

在 Tomcat 配置完成后,我们需要对配置进行进一步的检查以确保配置成功。

1.4.1、检查主页面信息及服务器配置信息

点击“Application server”我们可以看到服务器信息已经加载,如下图所示:

image.png

再次点击“Configure…”进入服务器配置页面,左侧的加减可以增删当前服务器,在下面的“Classes”面板中我们可以看到 IDEA 已经加载到了 Tomcat 的两个 JAR 包:一个 jsp 的 JAR 包、一个 servlet 的 JAR 包。至此,Tomcat 集成完毕。

image.png

image.png

二、创建并部署 Java EE 项目

2.1、创建新项目或者模块(自行选择)

依次点击“File→New→Project/Module”,如下图所示:

image.png

创建 Java 企业级项目,根据自身安装情况选择 SDK 以及 Server 版本,如下图所示:

image.png

2.2、进行 Java EE 项目配置

在下方导航栏“Additional Libraries and Frameworks”中下滑找到“Web Application”并勾选,同时勾选下面“Create web.xml”,创建 Web 项目的核心配置文件。

说明:JDK 的版本与下面“Web Application” Servlet 的版本是对应的,如 JDK8 对应的是 Servlet 的 4.0,JDK7 对应的是 Servlet 的 3.1 版本。

image.png

2.3、“Next”对项目起名,“Finish”完成 Java EE 项目部署

image.png

image.png

2.4、查看 Java EE 项目

2.4.1、对应版本约束信息

我们可以看到该目录结构是完全正确的,同时,web.xml 我们可以看到使用的是 Schema 的约束,而且对应的版本为 4.0,如下图所示:

image.png

这时如果我们再次点击 Tomcat 配置页面会发现,左侧已经部署了一个 Tomcat Server,同时在部署的项目中也已经进行了加载,web 项目被打包成 war 包的形式,如下图所示:

image.png

2.4.2、设置虚拟目录

如果你在“Application context”处填写的虚拟目录为/,项目在将来访问的时候就不需要虚拟目录了,而是相当于一个根路径,如下图所示:

image.png

2.4.3、Java EE 项目目录说明

image.png

Java 动态项目目录说明:

--项目名称
  --WEB-INF
    --web.xml:该项目的核心配置文件
    --classes 目录:放置中间字节码文件
    --lib 目录:放置项目依赖的 jar 包

2.5、运行 Java EE 项目

下图的两个地方都可以运行,或者 Ctrl+Shift+F10,如下图所示:

image.png

image.png

2.6、对 Java EE 项目进行部署

这时,如果你足够细心,你可以发现地址栏中的地址信息为:http://localhost:8080/而不是http://localhost:8080/index.jsp,如下图所示:

image.png

对地址栏信息进行修改,修改为http://localhost:8080/index.jsp,可以看到仍然是刚才页面。这是为什么呢?我们将在下面的第 7 点为大家进行详细讲解。

image.png

我们再次在 web 目录下创建一个 hellohtml.html 的文件,直接在地址栏修改地址运行,会发现浏览器无法加载到该文件,而在我们的 IDEA 中是确实存在该文件的。

image.png

image.png

这时我们就需要重启服务器,刷新页面信息,就可以成功进行加载了。

image.png

image.png

2.7、对 Java EE 项目进行热部署

我们对于上面的现象进行解释:index.jsp 比较特殊,是一个默认的首页,是已经在配置里进行了声明。所以http://localhost:8080/打开是项目首页,http://localhost:8080/index.jsp打开也是首页。

同时我们发现,如果每一次更改信息都需要重启服务器,会极大地降低开发的效率,这就需要我们配置热部署,以求在更改资源后无需多次重启服务器。

“Run→Edti configurations…→Run/Debug configurations”,对以下两则内容进行修改。

image.png

不选择 Update classes and resources 是因为 Java 代码会多次修改,如果多次部署会影响我们的性能。

促使 IDEA 能在我们更新资源后重新部署我们的项目,这样我们就无需重启服务器了。

image.png

新创建一个文件试验一下,成功!

image.png


总结

本文我们分别从 IDEA 和 Tomcat 这两个 IDE 的原理方面进行了分析,并进行了将 Tomcat 集成到 IDEA 中的完整步骤,而对于Java EE 项目的部署我们分别从实战的角度对比了传统项目的部署方式和在 IDEA 里面实现热部署,我们可以明显发现热部署的优势:降低了服务器每次启动的次数,效率大大提升,多次修改代码无需多次重启服务器。

image.png


我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!



相关文章
|
5月前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
198 0
|
14天前
|
人工智能 Kubernetes jenkins
容器化AI模型的持续集成与持续交付(CI/CD):自动化模型更新与部署
在前几篇文章中,我们探讨了容器化AI模型的部署、监控、弹性伸缩及安全防护。为加速模型迭代以适应新数据和业务需求,需实现容器化AI模型的持续集成与持续交付(CI/CD)。CI/CD通过自动化构建、测试和部署流程,提高模型更新速度和质量,降低部署风险,增强团队协作。使用Jenkins和Kubernetes可构建高效CI/CD流水线,自动化模型开发和部署,确保环境一致性并提升整体效率。
|
2天前
|
SQL Java 中间件
【YashanDB知识库】yasdb jdbc驱动集成BeetISQL中间件,业务(java)报autoAssignKey failure异常
在BeetISQL 2.13.8版本中,客户使用batch insert向yashandb表插入数据并尝试获取自动生成的sequence id时,出现类型转换异常。原因是beetlsql在prepareStatement时未指定返回列,导致yashan JDBC驱动返回rowid(字符串),与Java Bean中的数字类型tid不匹配。此问题影响业务流程,使无法正确获取sequence id。解决方法包括:1) 在batchInsert时不返回自动生成的sequence id;2) 升级至BeetISQL 3,其已修正该问题。
【YashanDB知识库】yasdb jdbc驱动集成BeetISQL中间件,业务(java)报autoAssignKey failure异常
|
4月前
|
Java
轻松上手Java字节码编辑:IDEA插件VisualClassBytes全方位解析
本插件VisualClassBytes可修改class字节码,包括class信息、字段信息、内部类,常量池和方法等。
258 6
|
2天前
|
SQL druid Oracle
【YashanDB知识库】yasdb jdbc驱动集成druid连接池,业务(java)日志中有token IDENTIFIER start异常
客户Java日志中出现异常,影响Druid的merge SQL功能(将SQL字面量替换为绑定变量以统计性能),但不影响正常业务流程。原因是Druid在merge SQL时传入null作为dbType,导致无法解析递归查询中的`start`关键字。
|
1月前
|
弹性计算 人工智能 应用服务中间件
一键部署开源DeepSeek并集成到企业微信
DeepSeek近期发布了两款先进AI模型V3和R1,分别适用于通用应用和推理任务。由于官方API流量过大,建议通过阿里云的计算巢进行私有化部署,以确保稳定使用。用户无需编写代码即可完成部署,并可通过AppFlow轻松集成到钉钉、企业微信等渠道。具体步骤包括选择适合的机器资源、配置安全组、创建企业微信应用及连接流,最后完成API接收消息配置和测试应用。整个过程简单快捷,帮助用户快速搭建专属AI服务。
一键部署开源DeepSeek并集成到企业微信
|
1月前
|
人工智能 自然语言处理 机器人
一键部署开源DeepSeek并集成到钉钉
DeepSeek发布了两款先进AI模型V3和R1,分别适用于对话AI、内容生成及推理任务。由于官方API流量限制,阿里云推出了私有化部署方案,无需编写代码即可完成部署,并通过计算巢AppFlow集成到钉钉等渠道。用户可独享资源,避免服务不可用问题。部署步骤包括选择机器资源、配置安全组、创建应用与连接流,最终发布应用版本,实现稳定高效的AI服务。
一键部署开源DeepSeek并集成到钉钉
|
1月前
|
监控 前端开发 Java
SpringBoot集成Tomcat、DispatcherServlet
通过这些配置,您可以充分利用 Spring Boot 内置的功能,快速构建和优化您的 Web 应用。
70 21
|
3月前
|
存储 缓存 前端开发
JavaEE初阶——初识EE(Java诞生背景,CPU详解)
带你从零入门JAVAEE初阶,Java的发展历程认识什么是cpu,cpu的工作原理,cpu是如何进行计算的,cpu的架构,指令集,cpu的核心,如何提升cpu的算力,cpu的指令,,cup的缓存,cpu的流水线
|
4月前
|
前端开发 Java 数据库连接
你不可不知道的JAVA EE 框架有哪些?
本文介绍了框架的基本概念及其在编程领域的应用,强调了软件框架作为通用、可复用的软件环境的重要性。文章分析了早期Java EE开发中使用JSP+Servlet技术的弊端,包括可维护性差和代码重用性低等问题,并阐述了使用框架的优势,如提高开发效率、增强代码规范性和可维护性及提升软件性能。最后,文中详细描述了几种主流的Java EE框架,包括Spring、Spring MVC、MyBatis、Hibernate和Struts 2,这些框架通过提供强大的功能和支持,显著提升了Java EE应用的开发效率和稳定性。
326 1