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

文章目录

  • 前言
  • 一、将 Tomcat 集成到 IDEA 中
    • 1.1、进入 IDEA Tomcat 配置页面
    • 1.2、配置并集成 Tomcat
    • 1.3、配置完成说明
    • 1.4、集成检查
      • 1.4.1、检查主页面信息及服务器配置信息
  • 二、创建并部署 Java EE 项目
    • 2.1、创建新项目或者模块(自行选择)
    • 2.2、进行 Java EE 项目配置
    • 2.3、“Next”对项目起名,“Finish”完成 Java EE 项目部署
    • 2.4、查看 Java EE 项目
      • 2.4.1、对应版本约束信息
      • 2.4.2、设置虚拟目录
      • 2.4.3、Java EE 项目目录说明
    • 2.5、运行 Java EE 项目
    • 2.6、对 Java EE 项目进行部署
    • 2.7、对 Java EE 项目进行热部署
  • 总结


前言

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

在这里插入图片描述


一、将 Tomcat 集成到 IDEA 中

1.1、进入 IDEA Tomcat 配置页面

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

在这里插入图片描述
说明:

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

在这里插入图片描述
打开 Run/Debug Configuration 窗口,下滑找到 Tomcat Server 配置,Local 是本地配置,Remote 是远程配置,如下图所示:

在这里插入图片描述

1.2、配置并集成 Tomcat

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

在这里插入图片描述
点击“+”选择 Tomcat 在本地的安装路径进行匹配,如下图所示:

在这里插入图片描述
配置完成,点击“OK”,如下图所示:

在这里插入图片描述

1.3、配置完成说明

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

在这里插入图片描述

1.4、集成检查

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

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

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

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

在这里插入图片描述
在这里插入图片描述

二、创建并部署 Java EE 项目

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

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

在这里插入图片描述
创建 Java 企业级项目,根据自身安装情况选择 SDK 以及 Server 版本,如下图所示:

在这里插入图片描述

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 版本。

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

2.4、查看 Java EE 项目

2.4.1、对应版本约束信息

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

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

在这里插入图片描述

2.4.2、设置虚拟目录

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

在这里插入图片描述

2.4.3、Java EE 项目目录说明

在这里插入图片描述
Java 动态项目目录说明:

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

2.5、运行 Java EE 项目

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

在这里插入图片描述
在这里插入图片描述

2.6、对 Java EE 项目进行部署

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

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

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

在这里插入图片描述
在这里插入图片描述
这时我们就需要重启服务器,刷新页面信息,就可以成功进行加载了。

在这里插入图片描述
在这里插入图片描述

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

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

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

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

在这里插入图片描述
不选择 Update classes and resources 是因为 Java 代码会多次修改,如果多次部署会影响我们的性能。

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

在这里插入图片描述
新创建一个文件试验一下,成功!

在这里插入图片描述


总结

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

在这里插入图片描述


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/530743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse 答疑:如何使用 Eclipse 进行断点(Breakpoints)调试?

文章目录前言一、打开需要调试的程序二、设置断点三、进行代码调试3.1、在上方标签栏,点击“Debug As→Java Application”3.2、进入调试页面并查看设置断点的具体位置信息3.3、产看具体变量信息总结前言 我们在使用 Eclipse 进行代码调试时,可以选择在一…

在 Windows 命令提示符下启动 MySQL:net start mysql 发生系统错误 5。 拒绝访问。解决方式小结

文章目录前言一、错误描述二、错误产生场景三、产生错误原因四、解决方式总结前言 我们有时候需要通过 Windows 命令提示符来启动 MySQL 服务,但是如果你不注意操作权限的话,可能就会报以下错误,现在我们来解决这个问题:net start…

XHTML 语法规则及 HTML/XHTML(XHTML 1.0/XHTML 1.1 和 HTML 4.01/HTML 5) 文档类型说明

文章目录前言一、XHTML 语法规则二、XHTML、HTML 文档类型说明三、XHTML 文档类型3.1、XHTML 1.0 过渡类型(Transitional)3.2、XHTML 1.0 严格类型(Strict)3.3、XHTML 1.0 框架类型(Frameset)3.4、XHTML 1.…

Eclipse 答疑:代码版权?如何更改 Eclipse 中注释块的 @author 版权信息?

文章目录前言一、打开需要进行版权标注的类二、进入配置页面三、编辑配置信息四、测试总结前言 我们在使用 IDE——Eclipse 进行开发时,在需要注明版权信息的时候,如果不更改默认设置的话,在注释块 author 的内容就是电脑系统默认的&#xff…

Java 修饰符详解:吐血整理,带你从底层语法和开发案例疏通这 11 种常见修饰符

文章目录前言一、11 种常见的 Java 修饰符1.1、修饰符应用表1.2、修饰符访问权限对比二、public 修饰符2.1、public 修饰符语法说明2.2、public 修饰符开发应用三、private 修饰符3.1、private 修饰符语法说明3.2、private 修饰符开发应用四、protected 修饰符4.1、protected 修…

Java 反射机制详解:私有方法调用头大?如何通过反射调用类中的私有方法?

文章目录前言一、私有方法在本类中直接调用1.1、在本类中实例化,调用私有方法1.2、尝试在其他类直接调用私有方法(错误示范)二、使用反射实例化类强制调用私有方法2.1、使用类加载器加载被调用的类2.2、使用 Object 类对获取的类进行实例化2.…

jQuery 遍历:思路总结,项目场景中如何处理/控制获取的 each 遍历次数?

文章目录前言一、项目场景分析二、实体类定义描述(仅关键代码)2.1、实体类定义描述2.2、逻辑处理与分析2.3、遍历数据如何修改的问题暴露三、处理思路3.1、源码分析 jQuery 中的 each 遍历3.2、如何解决 jQuery 中控制获取 each 的遍历次数总结前言 前台…

JavaScript 事件:Web 表单如何实现禁用右键、复制粘贴/剪切和输入框自动填充?

文章目录前言一、禁用鼠标右键1.1、分析说明1.2、操作原理1.3、实现效果1.4、实现代码1.5、补充:JS 中的 button 事件属性二、禁用复制粘贴2.1、分析说明2.2、实现代码三、禁用输入框自动填充功能3.1、分析说明3.2、实现效果3.3、实现代码总结前言 我们在项目中&…

MySQL 模糊查询:MySQL 数据库 like 语句通配符模糊查询小结

MySQL 报错:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 数据库 like 语句通配符模糊查询小结 文章目录MySQL 报错:Parameter index out of range (1 > number of parameters, which is 0)——…

内网击穿之 HTTP 穿透:网站没上线?如何让全世界的人都可以访问你本地的网站?

文章目录前言一、内网穿透原理与工具介绍1.1、内网穿透工作原理1.2、内网穿透工具介绍二、启动内网穿透工具2.1、命令及配置介绍2.2、查看映射信息三、进行访问测试3.1、远程访问本地站点资源3.2、关闭内网穿透总结前言 对于大多数程序员来说,网站一经开发测试后&am…

软件设计原则:内聚、耦合有哪几种类型?内聚度、耦合度如何比较?

文章目录前言一、何为内聚?1.1、7 种内聚类型及其描述二、何为耦合?2.1、7 种耦合类型及其描述总结前言 高内聚、低耦合是我们在软件设计过程中必须遵循的一个重要原则,在整个软件工程中占有很大的比重。而对于内聚和耦合你还是仅仅局限于“高…

数据库管理工具:如何使用 Navicat Premium 转储(导出)和运行(导入)*.sql 文件?

文章目录前言一、转储(导出)数据库 SQL 文件1.1、选择“转储 SQL 文件”1.2、选择导出文件存放位置1.3、查看转储 SQL 文件界面1.4、查看 SQL 输出文件1.5、查看输出文件详情信息二、运行(导入)数据库 SQL 文件2.1、新建数据库2.2…

JSP 编译原理:JSP 是 Servlet?如何用 Eclipse 查看 JSP 编译生成的 Servlet 源文件?

文章目录前言一、JSP 文件编译流程原理二、创建并运行待测试 JSP 页面三、查找 JSP 编译文件输出位置3.1、打开动态项目运行配置3.2、查看 JSP 编译文件输出位置3.3、查看 JSP 编译输出文件四、JSP 编译输出 Servlet 的论证五、访问 JSP 文件的流程总结前言 相信大家都了解&…

MVC 模式/Servlet/JSP 编译原理剖析:Servlet 组件到底属于 MVC 模式的哪一层?

文章目录前言一、回忆什么是 MVC 模式?1.1、Model、View、Controller 组件介绍1.2、明确 View 与 Controller 组件区别二、什么是 Servlet?2.1、Servlet 的组件定义2.2、Servlet 组件处于 Controller 层?三、老师说 Servlet 是 View 层的&…

操作系统原理:进程 PV 操作如何计算?全网最全三种前驱图计算类型总结

文章目录前言一、PV 操作定义1.1、P 操作定义1.2、V 操作定义二、串联进程(单线前驱图)2.1、什么是单线前驱图?2.2、如何计算单线前驱图的 PV?2.2.1、计算前驱节点 PV2.2.2、计算中间节点 PV2.2.3、计算尾节点 PV三、并联进程&…

Spring 容器:三种方式解决 Resource leak: ‘applicationContext‘ is never closed 问题

文章目录前言一、Spring 容器警告产生的场景二、Spring 容器未关闭后果分析2.1、肉眼可见的警告2.2、导致的内存泄漏2.2.1、什么是内存泄漏?2.2.2、如何判断内存泄漏?2.2.3、Java 中的 GC(垃圾回收)2.2.4、Java 中会导致内存泄漏的…

SRA 案例:关于华为开发者联盟基础服务文档内容的改进建议(华为开发者联盟文档深度体验官)

文章目录前言一、文档中心的外链跳转问题1.1、问题描述1.2、造成的问题1.3、改进建议二、图片失真和无法放大查看问题2.1、问题描述2.2、造成的问题2.3、改进建议三、个别 SDK 词汇缺少必要的说明3.1、问题描述3.2、造成的问题3.3、改进建议四、邮箱信息的优化4.1、问题描述4.2…

腾讯位置服务:有何优势?如何使用平台创建应用和服务调用的 Key?

文章目录前言一、腾讯位置服务的优势1.1、提供丰富的地图产品1.2、提供行业解决方案1.3、提供其他生态维度的支持1.4、海量的数据基础1.5、丰富的开发文档二、初识腾讯位置服务2.1、用户的注册与登录(附专属邀请码)2.2、开发者信息的完善三、创建服务平台…

毕业生当头一棒?忆本科四年,高校毕业生与就业单位基本要求差多少?工作还是考研?

文章目录前言一、大学本科前两年的生活1.1、庸庸碌碌、中规中矩1.2、收获了爱情二、大三的改变2.1、学会自律2.2、学会自我总结2.3、眼光要具有前瞻性三、毕业答辩3.1、个人设计答辩3.2、团队设计答辩四、南京之行4.1、铭记历史,感恩先辈4.2、加强自我认知与提升五、…

Gitee 答疑:为什么从 Gitee 平台 Pull 代码到 STS/Eclipse 后文件乱码?逐步排查

文章目录前言一、产生乱码场景1.1、错误描述1.2、解决思路二、解决方式2.1、检查 Git 平台上的源码2.2、Git 的运行原理2.3、修改 IDE 的文本编码格式2.4、重新打开目的文件问题解决2.5、仍存在问题看这里(重新拉区合并)总结前言 我们从 Gitee 平台 Pull…