杂谈---Tomcat与idea的爱恨情仇

2024-02-24 03:18
文章标签 idea tomcat 杂谈 情仇 爱恨

本文主要是介绍杂谈---Tomcat与idea的爱恨情仇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

拖延症变严重了,本来两天前就像讲一讲Tomcat与idea的,但是一直拖到现在。

Tomcat

什么是Tomcat?

web应用服务器,是向外部发送资源的软件

我们把web资源部署在服务器上,当用户向服务器发送请求,服务器则会响应请求,即把web资源发送给客户端
其拥有三种模式:

  • 阻塞式I/O操作bio,一个线程处理一个请求
  • 基于缓冲区、并能提供非阻塞I/O操作nio。利用 Java 的异步请求 IO 处理,可以通过少量的线程处理大量的请求。
  • apr模式,从操作系统层面解决IO阻塞问题。

在这里插入图片描述

为什么要用Tomcat?
免费、开源的不香吗

在这里插入图片描述
其只支持JAVAEE的部分规范

Tomcat的目录结构
bin:脚本目录
conf:配置目录
lib:依赖的jar包目录
logs:日志目录
temp:临时文件目录
webapps:项目发布目录
work:处理jsp的工作目录
Tomcat工作流程

在搞懂流程之前,我们先搞清楚Tomcat的顶层结构,下图是从网上找到的资源。
在这里插入图片描述
有几点需要注意的是

  • Tomcat最顶层容器为Service服务,且只有一个Service服务,但是Service里面可以嵌套多个Service服务。
  • Service服务里最重要的是Connector组件(只有一个)和Container组件(可多个)
  • Connector用于处理连接相关的事情,并提供Socket与Request和Response相关的转化;Container用于封装和管理Servlet,以及具体处理Request请求。

在这里插入图片描述
假象A Web Poge是客户端,Tomcat是一台服务器

  1. 客户端发送请求,服务器8080端口接收到请求。Coyote HTTP/1.1 Connecto监听到请求事件

  2. Connector把该请求移交给它所在的Service的Engine(Container)来处理,并等待Engine的回应

  3. Engine获得请求部署的Web资源,匹配所有的虚拟主机Host

  4. Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机),名为localhost的Host获得请求Web资源,匹配它所拥有的所有Context。Host匹配到路径为项目路径t的Context(如果匹配不到就把该请求交给路径名为“ ”的Context去处理);

  5. .path=“项目路径”的Context获得请求Web资源,在它的mapping table中寻找出对应的Servlet。Context匹配到URL Pattern为*.jsp的Servlet,对应于JspServlet类;

  6. 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet()或doPost(),执行业务逻辑、数据存储等;

  7. Context把执行完之后的HttpServletResponse对象返回给Host;

  8. Host把HttpServletResponse对象返回给Engine;

  9. Engine把HttpServletResponse对象返回Connector;

  10. Connector把HttpServletResponse对象返回给客户Browser。

当一个请求发送到Tomcat之后,首先经过Service然后会交给Connector,Connector用于接收请求并将接收的请求封装为Request和Response来具体处理,Request和Response封装完之后再交由Container进行处理,Container处理完请求之后再返回给Connector,最后在由Connector通过Socket将处理的结果返回给客户端

四个容器的作用:

 (1)Engine:引擎,用来管理多个站点,一个Service最多只能有一个Engine;
(2)Host:代表一个站点,也可以叫虚拟主机,通过配置Host就可以添加站点;
(3)Context:代表一个应用程序,对应着平时开发的一套程序,或者一个WEB-INF目录以及下面的web.xml文件;
(4)Wrapper:每一Wrapper封装着一个Servlet;

idea

首先要明确idea是不同于esclipe:

  • esclipe是将web项目部署到Tomcat的安装目录下webapps
  • idea则是在C盘下新建目录(下图中的Using CARLINA_BASE就是新建的路径)

在这里插入图片描述

通过新建文件里面配置文件conf里面能够找到*war_.xml的文件,通过打开这个配置的文件
在这里插入图片描述
这个路径事实上指向把web项目打包成war发布在tomcat上的路径,这些是idea的工作
在这里插入图片描述

这篇关于杂谈---Tomcat与idea的爱恨情仇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/740788

相关文章

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

如何将Tomcat容器替换为Jetty容器

《如何将Tomcat容器替换为Jetty容器》:本文主要介绍如何将Tomcat容器替换为Jetty容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat容器替换为Jetty容器修改Maven依赖配置文件调整(可选)重新构建和运行总结Tomcat容器替

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

IDEA连接达梦数据库的详细配置指南

《IDEA连接达梦数据库的详细配置指南》达梦数据库(DMDatabase)作为国产关系型数据库的代表,广泛应用于企业级系统开发,本文将详细介绍如何在IntelliJIDEA中配置并连接达梦数据库,助力... 目录准备工作1. 下载达梦JDBC驱动配置步骤1. 将驱动添加到IDEA2. 创建数据库连接连接参数

Tomcat的下载安装与使用教程

《Tomcat的下载安装与使用教程》本文介绍了Tomcat的下载、安装和使用方法,包括在本机和云服务器上部署Tomcat的过程,以及解决启动失败问题的方法... 目录Tomcat的下载安装与使用Tomcat的下载与安装Tomcat在本机运行使用Tomcat在php云服务器上的使用总结Tomcat的下载安装与

IDEA接入Deepseek的图文教程

《IDEA接入Deepseek的图文教程》在本篇文章中,我们将详细介绍如何在JetBrainsIDEA中使用Continue插件接入DeepSeek,让你的AI编程助手更智能,提高开发效率,感兴趣的小... 目录一、前置准备二、安装 Continue 插件三、配置 Continue 连接 DeepSeek四

IDEA与JDK、Maven安装配置完整步骤解析

《IDEA与JDK、Maven安装配置完整步骤解析》:本文主要介绍如何安装和配置IDE(IntelliJIDEA),包括IDE的安装步骤、JDK的下载与配置、Maven的安装与配置,以及如何在I... 目录1. IDE安装步骤2.配置操作步骤3. JDK配置下载JDK配置JDK环境变量4. Maven配置下