文章目录

  • web 服务器软件
  • tomcat
    • 如何下载安装 tomcat
    • macOS 下如何启动 tomcat
    • Windows 启动 tomcat
    • 部署项目的方式
      • 直接将项目放到 webapps 目录下即可
      • 在 tomcat 的配置文件 server.xml 中进行配置部署
      • 在 tomcat 的 localhost 目录下通过 xml 文件完成部署
  • IntelliJ IDEA 集成 tomcat
  • IntelliJ IDEA 启动 tomcat
  • IntelliJ IDEA 部署项目
  • IntelliJ IDEA 自动部署项目
  • IntelliJ IDEA 热部署
    • 手动触发 Update 动作时需要 IDEA 做什么
    • IDEA 失去焦点时做什么
    • 热部署总结
  • IntelliJ IDEA 运行 tomcat 的选项说明
  • IntelliJ IDEA 对 tomcat 的配置
  • web 应用程序如何调试

网络通信三要素:

1.IP:电子设备(计算机)在网络中的唯一标识。

2.端口:应用程序在计算机中的唯一标识。范围:0~65536

3.传输协议:规定了数据传输的规则

3.1.基础协议:
3.1.1. tcp:安全协议,三次握手。速度稍慢
3.1.2. udp:不安全协议。速度快

web 服务器软件

服务器:安装了服务器软件的计算机
服务器软件:接收用户的请求,处理请求,做出响应

  • web服务器软件:接收用户的请求,处理请求,做出响应。
  • 在web服务器软件中,可以部署web项目,让用户通过浏览器来访问这些项目
  • 也叫web容器

常见的 Java 相关的 web 服务器软件:
weblogic : Oracle 公司,大型的JavaEE服务器,支持所有的JavaEE规范, 收费的。
websphere : IBM 公司,大型的JavaEE服务器, 支持所有的JavaEE规范, 收费的。
JBOSS : JBOSS 公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
Tomcat : Apache 基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范(例如:servlet/jsp)。开源的,免费的。

注:JavaEE 是 Java 语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范

tomcat

如何下载安装 tomcat

官网:https://tomcat.apache.org/
参考:https://blog.csdn.net/dongzhensong/article/details/87807378

macOS 下如何启动 tomcat

  1. 权限设置

给 bin 目录的所有者授予执行的权限:

sudo chmod -R u+x /Users/liaowenxiong/Applications/apache-tomcat-8.5.73/bin
# 或者
sudo chmod -R 755 /Users/liaowenxiong/Applications/apache-tomcat-8.5.73/bin

注:755 代表所有者用户对拥有读、写、执行的权限,同组其他人员以及其它用户拥有执行和读的权限,没有写的权限。

2.切换到 tomcat 的 bin 目录下

cd /Users/liaowenxiong/Applications/apache-tomcat-8.5.73/bin

3.启动 tomcat

sh startup.sh
# 或者
./startup.sh

4.停止 tomcat

sh shutdown.sh
./shutdown.sh

5.浏览器地址栏输入:localhost:8080,验证是否成功启动 tomcat

Windows 启动 tomcat

Windows 系统可以双击 startup.bat 启动服务器(启动窗口不要关闭掉),双击 shutdown.bat 关闭服务器。关闭终端窗口也可以关闭服务器(不推荐),在启动服务器窗口按 Ctrl + C 也可以停止服务器。

双击批处理脚本文件时可能存在的问题:

1.黑窗口一闪而过
解决:配置 JAVA_HOME 环境变量,JDK的安装目录设为变量值

2.默认端口号被占用,导致启动失败

解决:
1.找到占用端口号的进程,杀死该进程
2.修改tomcat的默认端口号
在tomcat的配置目录下找到 server.xml 文件,在文件中找到:

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

将 Connector 元素的 port 属性值改成其它的端口号即可。

一般将 tomcat 的默认端口号改成 80,该端口号是 http 协议默认的端口号,因此输入 URL 时可以省略端口号。

部署项目的方式

直接将项目放到 webapps 目录下即可

http://ip:port/xxx/hello.html
其中 /xxx 是项目的访问路径,称为虚拟目录;hello.html 是项目中的资源路径。

缺点:每次修改项目的代码后,都要把项目重新放到 webapps 目录下,太麻烦

注:通常会把项目打成 war 包,放到 webapps 目录下,会自动解包;删除 war 包对应的项目文件夹也会自动删除。

在 tomcat 的配置文件 server.xml 中进行配置部署

在 tomcat 的 server.xml 文件的 <Context> 标签中进行配置部署

参考《tomcat服务器通过配置来部署程序》

好处:不再需要把项目放到 webapps 目录下,而且修改了项目的代码后,也不需要手动重新部署,这样比较方便

缺点:
2.1.server.xml 是 tomcat 的核心配置文件,所以在这个文件中配置会有安全风险
2.2.如果一个tomcat部署多个项目时,每次配置改动都要重启服务器

注:server.xml 修改后,需要重启 tomcat,相关配置才能生效

在 tomcat 的 localhost 目录下通过 xml 文件完成部署

在 tomcat 的 conf/Catalina/localhost 目录下创建 xml 文档,进行项目的配置部署

例如,创建一个名为 hello.xml 的文件,在里面写如下的内容:

<Context docBase="E:\Workspaces\hyt2pf\context"debug="5" reloadable="true" crossContext="true" workDir="E:\Workspaces\hyt2pf\work"/>

注:项目的访问路径(虚拟目录)是 xml 文件名,即 /hello

好处:热部署,部署项目或者删除项目,都不需要重启服务器

IntelliJ IDEA 集成 tomcat

第一步:点击顶部菜单栏 Run → Edit Configurations

第二步:选择左侧 Templates → Tomcat Server → Local,接着点击页面中的 Server 标签页,再点击 Application server 下拉列表框右边的 Configure 按钮,配置服务器。

第三步:配置服务器

第四步:创建配置文件

前面几步只是使用 IDEA 的 Template of Tomcat Server 进行服务器集成的相关配置,最后你要把配置信息创建成一份配置文件才能使用。


IntelliJ IDEA 启动 tomcat

IntelliJ IDEA 部署项目




这里特别强调下,只有点击 deploy 后,IDEA 才会根据你选择的部署方式生成对应的文件,所以下图所示的文件以及部署动作都是在点击 deploy 后由 IDEA 自动完成的。

本地电脑中的 IDEA 工作空间中的项目目录结构截图:

IntelliJ IDEA 自动部署项目

你添加了要部署的 Artifacts(工件/产品/成品)后,服务器启动时会自动完成已选 Artifacts 的部署工作。

也就是下图所示的步骤你完成了,那么重启服务器会自动完成项目的部署。

在 Deployment 标签页中添加了 Artifacts,其实并不是部署项目,这里只是选择项目的部署方式而已,服务器启动后或者你在底部的服务器窗格中选择服务器,点击右键的【deploy】才会真正的部署项目。

如何理解部署这个动作,请参阅《部署应用程序到服务器到底是什么意思?部署到底在干什么事情?》。

IntelliJ IDEA 热部署

热部署就是正在运行状态的应用,修改源码之后,在不重新启动服务器(包含 JVM)的情况下能够自动把增量内容部署到服务器上,使得修改立即生效。

热部署为了解决的问题有两个, 一是在开发的时候,修改代码后不需要重启服务器就能看到效果,大大提升开发效率;二是生产环境上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用。

热部署/热插拔/热替换(HotSwap)是在不重启服务器(包含 JVM) 的前提下,能自动侦测到 class 文件的变化,更新发布包中的 class 文件以及已经加载入内存中处于运行时的 class 的行为,所以热部署不仅要替换 class 文件,还要更新已经加载到 Java 虚拟机内存中的正在运行的 class。

手动触发 Update 动作时需要 IDEA 做什么

以下截图指明了 On 'Update' action 配置的位置:

On ‘Update’ action:手动触发 Update 动作时需要 IDEA 做什么?

所谓手动触发 Update 动作是指你主动点击下图所示的按钮去更新 tomcat 应用程序。

但你点击这个更新按钮时会弹出如下所示的小窗口,你会发现你在 On 'Update' action 的下拉列表框中选择的是什么,那么这个小窗口就默认选中的是什么。

其实 On 'Update' action 这个设置是有点多余了,因为仅仅是设置手动触发 update 按钮时默认的行为是什么,你依旧需要手动去点击 update 按钮,再点击【确定】按钮,IDEA 才会去做什么,没有减少用户操作的步骤。

具体行为选项的含义:

选项 含义
Update resources 更新资源,意思就是你手动触发 Update 动作,IDEA 会更新 js/html/css/xml 等静态的资源文件,不过上文提到了,你依旧需要点击【确定】按钮,IDEA 才会执行
Update classes and resources 更新字节码文件和资源文件,意思就是你手动触发 Update 动作,IDEA 会更新资源文件以及字节码文件。特别注意:java文件修改后,debug 模式下立即生效。run 模式下不立即生效,需要 redeployed 才可生效。 jsp文件修改后,在运行模式和调试模式下都是立即生效
Redeploy 重新部署。不重启 tomcat,而是把原来项目文件删掉,然后重新发布
Restart server 重启tomcat

如果服务器存在以 war 方式部署的项目,则行为选项如下图所示:


当服务器存在以 war 形式部署的项目时,On Update action 与 On frame deactivation 中的选项没有 Update resources 和 Update classes and resources,取而代之的是 Hot Swap Classes 选项,意思

IDEA 失去焦点时做什么


所谓 IDEA 失去焦点或者失活,是指你最小化 IDEA 窗口或者切换到其它应用程序了,例如你在编码的时候按 ⌘ + tab 切换到浏览器去查询东西的时候,当前 IDEA 程序就失去焦点了。

On frame deactivation 建议选择 Do nothing,因为暂时离开 IDEA 的情况非常频繁,如果每次离开都要重新 Build Project(即编译项目) 、更新发布包中的文件(不仅要更新发布包中的文件,还要更新已经加载进内存中 class,这些动作对于 tomcat 而言叫作 reload),计算机性能、IDEA 的使用体验会大打折扣。

热部署总结

On Update action 设置为 Update classes and resources,On frame deactivation 设置为 Do nothing。

通常的使用情况是:当更新完 Java 代码或 JSP 或静态资源文件后,手动点击下图所示的更新按钮,当出现下图所示的绿色背景的提示框,则更新完成,即热部署完成。

如果每次点击的时候不希望出现下图所示的弹框:

你可以把下图所示的复选框取消打勾:


新建 Java 文件不可以通过热部署方式完成自动部署更新,需要重新部署或重启服务器;但新建的静态资源文件可以采用热部署方式自动部署更新。

IntelliJ IDEA 运行 tomcat 的选项说明

Run:启动 tomcat,快捷键 ⌃ + R,在 tomcat 已经运行中时按快捷键 ⌃ + R 会弹出对话窗口,让你选择操作项目;而快捷键 ⌃ + ⇧ + R 则是快速重启 tomcat,没有对话弹窗

Rerun:重启 tomcat,也就是 Restart Server

Run comcat with Coverage:
Run tomcat with CPU Profiler:
Run tomcat with Allocation Profiler:
Run tomcat with Java Flight Recorder:

IntelliJ IDEA 对 tomcat 的配置

上面的配置信息保存在哪里?

其实 IntelliJ IDEA 会把每一份tomcat配置文件的信息保存在下面的目录下:

/Users/liaowenxiong/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/

我的tomcat的配置文件保存在下面的目录:

/Users/liaowenxiong/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/0e0b39f5-0ff8-4713-ab72-81b276953084

如果有多份配置文件,则会在 /Users/liaowenxiong/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/ 目录下随机生成多个目录,把配置信息保存到这些目录下。

[~/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/0e0b39f5-0ff8-4713-ab72-81b276953084/conf]$ ls
Catalina              catalina.properties   context.xml           jaspic-providers.xsd  server.xml            tomcat-users.xml      web.xml
catalina.policy       catalina.properties.0 jaspic-providers.xml  logging.properties    server.xml.0          tomcat-users.xsd      web.xml.0

我一直好奇下图所示的虚拟目录保存在哪里?


原来是在 …conf/Catalina/localhost 目录下创建同名的 xml 文件,以这样的方式部署项目。

[~/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/0e0b39f5-0ff8-4713-ab72-81b276953084/conf/Catalina/localhost]$ ls
web_demo_03.xml

查看下 web_demo_03.xml:

[~/Library/Caches/JetBrains/IntelliJIdea2020.3/tomcat/0e0b39f5-0ff8-4713-ab72-81b276953084/conf/Catalina/localhost]$ cat web_demo_03.xml
<Context path="/web_demo_03" docBase="/Users/liaowenxiong/Documents/IdeaProjects/java-exercises/web-demo-03/target/web-demo-03-1.0-SNAPSHOT" />%

怎么找到这个目录的?
在 tomcat 控制台看 Catalina.log 日志内容,如下图所示:


如果是 windows 操作系统,如下图所示:

web 应用程序如何调试

1.在类的源码文件中添加断点

2.以 debug 模式启动 tomcat

3.浏览器地址栏输入请求资源路径,访问 web 服务

4.查看调试详情

macOS下载、安装、使用tomcat服务器及IntelliJ IDEA for Mac 如何集成、配置、运行tomcat相关推荐

  1. macOS下载安装Java步骤

    macOS下载安装Java步骤 安装JDK(Java Development Kit) SE 13步骤 下载和安装 下载链接: https://www.oracle.com/technetwork/j ...

  2. JDK1.8 MacOS下载安装

    MacOS JDK 下载安装 可能你第一次拿到Mac电脑,很盲目到处找不到JDK的下载和安装.搭建自己开发环境. JDK资源下载路径 找到官网https://www.oracle.com/index. ...

  3. 启动Tomcat服务器报错:Several ports (8005, 8080, 8009) required by Tomcat v9.0 Server at localhost are alrea

    启动Tomcat服务器turret遇到的问题: Several ports (8005, 8080, 8009) required by Tomcat v9.0 Server at localhost ...

  4. Tomcat 服务器server.xml,web.xml的关键参数配置

    Tomcat 服务器server.xml的关键参数配置 说明:以下文字均以tomcat5.0.30为例进行. 1,配置tomcat服务器访问端口,只需配置Connector的port端口即可.Tomc ...

  5. Tomcat的Maven插件使用方法(在idea里面运行Tomcat)

    目录 一.概述 二.下载和导入插件 三.测试使用方式 四.总结 一.概述 使用这个插件可以快速的运行Tomcat,比在本地配置快得多. 二.下载和导入插件 1.下载插件Maven Helper ps: ...

  6. 关闭无限局域网配置服务器,无线局域网无线控制器MAC地址过滤配置实例-Cisco.PDF...

    无线局域网无线控制器MAC地址过滤配置实例-Cisco 无线局域网无线控制器MAC 地址过滤配置实例 简介2 先决条件2 要求2 组件使用2 无线控制器上的MAC 地址过滤(MAC 认证)2 在无线控 ...

  7. webStrom2018 版 下载 安装,license server破解 IntelliJ IDEA

    webStrom每次装都要找好久的破解方法,特此记录下 下载地址: https://www.jetbrains.com/webstorm/ 直接官网下载.点击download. 下载完成, 安装: 点 ...

  8. 【图文教程】MacOS 下载/安装 我的世界 Minecraft + 宝可梦 Pixelmon Modpack

    Install Java8 传送门:https://www.oracle.com/java/technologies/downloads/#java8-mac PS:若已安装过Java其他版本,sho ...

  9. [2023最新]美少妇Metasploit(MSF)下载安装及使用详解,永久免费使用,环境配置和使用技巧指南

    模块含义 auxiliary:主要包含渗透测试中一些辅助性脚本,这些脚本功能有扫描,嗅探,破解,注入,漏洞挖掘等. encoders:编码工具,用于躲过入侵检测和过滤系统. exploit:主要包括了 ...

最新文章

  1. 编写 DockerFile
  2. SQL2K数据库开发八之表操作创建主键
  3. python读取大文件-Python如何读取、拆分大文件
  4. Leetcode-184. 部门工资最高的员工
  5. 【docker】linux系统centOS 7上安装docker
  6. httpcline转发_如何实现Http请求报头的自动转发[应用篇]
  7. python 动漫卡通人物图片大全_用Python把人物头像动漫化,不同的表情给你不同的惊喜...
  8. Linux源码Kconfig文件语法分析
  9. Linux Shell通过fifo实现多进程并发以及并发数控制
  10. mac 电脑连接不上github_Mac电脑使用终端连接服务器及传输文件
  11. LuaForUnity7.1:Lua“类与对象”
  12. 小强的HTML5移动开发之路(14)——Video标签详解
  13. 亿级流量架构服务降级,写得太好了!
  14. 基于SSM的疫情数据统计分析系统
  15. bat脚本积累(三)—— bat的注释
  16. 基于python flask的网上商城源码 mysql数据库
  17. 离线安装CDH5集群及相关软件
  18. 坚定不移地做自己认为正确的事情
  19. 安卓开发:Password verification failed
  20. linux怎样编译安装pidgin,如何在Ubuntu中通过编译源码包安装软件Pidgin

热门文章

  1. 朝着理想坚实迈进_坚实原则:开放/封闭原则
  2. javaserver_什么是JavaServer Faces(JSF)
  3. jdeps_JDeps入门–分析项目的依赖关系
  4. css阴影属性_第三场阴影场与属性访问器接口
  5. undertow ssl_SSL与WildFly 8和Undertow
  6. apache mesos_在Twitter上使用Apache Mesos和Apache Aurora进行资源调度和任务启动
  7. 如何在Java中使用Lombok删除样板安装程序获取器
  8. junit测试方法_JUnit测试方法订购
  9. zip和unzip上的Java要点
  10. javaee 设计模式_JavaEE重新审视设计模式:装饰器