【仿写tomcat】一、tomcat工作流程

这篇具有很好参考价值的文章主要介绍了【仿写tomcat】一、tomcat工作流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

作者前不久刚仿写了一个简易的tomcat,在此分享给各位,此篇为对tomcat的简介和流程分析,具体仿写内容后续会贴在这里

扫描java文件,获取带有@WebServlet注解的类

tomcat简介

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

流程分析

首先我们要对tomcat的工作流程有一个大概的认识,写过servlet项目的朋友都知道,在servlet项目中是没有main方法的,都是依托于tomcat运行的。

而一个程序想启动,没有main方法是不可能的,所以tomcat中必然是存在一个主方法的,而且为了保持运行状态,还要有一个死循环。

同时我们在写servlet的时候,并没有在哪里调用这些方法,显然这些都是tomcat来代理完成的。

那tomcat又是如何知道我们有哪些servlet文件呢?没错,就是通过注解。

那么分析到这里就明确了:
首先,tomcat在启动的时候要扫描java文件
并且通过反射获取他的注解信息,判断是否有对应的注解
随后放到一个地方去存储,后续再通过代理的方式调用这些类里的方法
tomcat中要有一个死循环保持运行状态。

这些都不是什么太大的问题,我们在仿写spring中已经做过这些内容了,其实大家也都知道,springboot是内置tomcat的,这些工作本来就是tomcat来做的,只不过通过了spring的一层处理而已。

tomcat是怎么和访问者交互的?

其实tomcat使用的是socket连接,监听本机的端口,当这个端口被访问的时候,socket连接就能够感知,并且可以通过输入输出流的形式做出对应的请求与响应,也就是我们常说的request和response。而这一点也就是我们仿写过程中的主要工作。

流程图

【仿写tomcat】一、tomcat工作流程,源码仿写,tomcat,java,tomcat原理,仿写tomcat,反射,代理,socket文章来源地址https://www.toymoban.com/news/detail-654286.html

到了这里,关于【仿写tomcat】一、tomcat工作流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot核心原理以及工作流程

    1. SpringBoot 概述 SpringBoot 是Spring的一套快速配置脚手架,快速的将一些常用的第三方依赖整合(原理:通过Maven子父工程的方式),简化xml配置,全部采用注解形式,内嵌web应用容器(如:jetty和Tomcat),最终以java应用程序进行执行 2. SpringBoot的启动类入口 2.1 @SpringBootApplicat

    2024年02月01日
    浏览(40)
  • 【PACS源码】认识PACS的架构和工作流程

           PACS系统的基本组成部分包括:数字影像采集、通讯和网络、医学影像存储、医学影像管理、各类工作站五个部分。          而目前PACS系统的软件架构选型上看,主要有C/S和B/S两种形式。        C/S架构,即Client /Server(客户机/服务器)架构,将运算任务合理分配到

    2024年02月11日
    浏览(27)
  • mapreduce 的工作原理以及 hdfs 上传文件的流程

    推荐两篇博文 mapreduce 的工作原理: 图文详解 MapReduce 工作流程_mapreduce工作流程_Shockang的博客-CSDN博客 hdfs 上传文件的流程 HDFS原理 - 知乎

    2024年02月10日
    浏览(33)
  • 前端面试:【浏览器与渲染引擎】工作原理与渲染流程

    嗨,亲爱的读者!你是否曾经好奇过当你在浏览器中输入URL并按下回车时,网页是如何显示在你的屏幕上的?这背后涉及了复杂的浏览器工作原理和渲染流程。本文将带你深入了解浏览器如何工作以及网页如何被渲染出来。 1. 浏览器的工作原理: 当你输入URL并按下回车时,

    2024年02月11日
    浏览(43)
  • React源码解析18(3)------ beginWork的工作流程【mount】

    OK,经过上一篇文章。我们调用了: 生成了FilberRootNode和HostRootFilber。 并且二者之间的对应关系也已经确定。 而下一步我们就需要调用render方法来讲react元素挂载在root上: 所以我们现在要实现ReactDOM.createRoot中返回的render方法。 首先我们思考一下,在React中,除了通过上面的

    2024年02月13日
    浏览(36)
  • React源码解析18(4)------ completeWork的工作流程【mount】

    经过上一章,我们得到的FilberNode已经具有了child和return属性。一颗Filber树的结构已经展现出来了。 那我们最终是想在页面渲染真实的DOM。所以我们现在要在completeWork里,构建出一颗离屏的DOM树。 之前在说FilberNode的属性时,我们提到过一个属性stateNode。它就是用来保存每个

    2024年02月13日
    浏览(28)
  • SpringMvc拦截器和手写模拟SpringMvc工作流程源码详解

    目录 1. SpringMvc简介 1.1 什么是MVC 1.2 什么是SpringMvc 1.3 SpringMvc 能干什么 1.4 SpringMvc 工作流程 2. SpringMvc拦截器和过滤器 2.1 拦截器 2.1.1 拦截器作用 2.1.2 拦截器和过滤器的区别 2.1.3 拦截器方法说明 2.1.4 多个拦截器执行顺序 2.1.5 自定义拦截器 2.2 过滤器(附加) 3. 手写模拟Spri

    2024年02月09日
    浏览(36)
  • LoadRunner(一)(安装、简介、工作原理、测试流程、事务与集合点、思考时间)

    目录 性能测试  安装 LoadRunner简介 Load Generator: LoadRunner工作原理: LoadRounner 测试流程: 事务与集合点     事务的概述:         事务的作用:         使用事务的原因:     事务的添加:     设置事务             集合点的概述: controller组件中实操(可以处置、

    2024年02月03日
    浏览(47)
  • git工作原理、从仓库创建到代码拉取提交整套流程

    1、先看 Git 工作原理图,该图参考 gitee简单使用_gitea新建vue仓库选择什么.gitignore模板-CSDN博客 git 工作原理图理解: (1)Workspace:工作区,也就是我们的代码所在的地方 (2)Index / Stage:暂存区 (3)Repository:仓库区(或本地仓库 .git) (4)Remote:远程仓库 2、创建仓库流程

    2024年03月14日
    浏览(38)
  • LoadRunner入门(一)(安装、简介、工作原理、测试流程、事务与集合点、思考时间)

      目录 性能测试  安装 LoadRunner简介 Load Generator: LoadRunner工作原理: LoadRounner 测试流程: 事务与集合点     事务的概述:         事务的作用:         使用事务的原因:     事务的添加:     设置事务             集合点的概述: controller组件中实操(可以处置

    2024年03月19日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包