从tomcat说起全面理解Java web开发原理

这篇具有很好参考价值的文章主要介绍了从tomcat说起全面理解Java web开发原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

从tomcat说起全面理解Java web开发原理       

        简介:Java开发分为Java ME,Java SE,Java EE。回顾过去这些的开发工作基本上都是围绕着Java EE的,在开发经历中分别经历了Java EE开发框架从jsp servlet一路经历了ssh, ssm, springboot mybatis ,spring cloud演化,但是Java web开发过程中web容器却是一路相随tomcat,本篇文章将从tomcat的角度介绍一下http请求的整个链路。

从tomcat说起全面理解Java web开发原理

一、servlet

        无论是最初的jsp + servlet方式还是现如今的spring boot,web系统都需要基于web服务器才能处理用户请求,Tomcat 是一个免费的、开源的、轻量级的Java Web 应用服务器,Java为了web系统定义了一套servlet规范,tomcat就是遵守servlet规范的servlet容器。

        百科的介绍:Servlet是在服务器上运行的小程序。一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的Servlet程序。一般由web容器(例如tomcat)来管理servlet的生命周期。

Servlet定义了如下的规范:

从tomcat说起全面理解Java web开发原理

 从tomcat说起全面理解Java web开发原理

 Servlet生命周期:

1.调用 init() 方法初始化
2.调用 service() 方法来处理客户端的请求
3.调用 destroy() 方法释放资源,标记自身为可回收
4.被垃圾回收器回收

二、tomcat

       核心功能:分别是负责接收和反馈外部请求的连接器 Connector,和负责处理请求的容器 Container。其中连接器和容器相辅相成,一起构成了基本的 web 服务 Service。每个 Tomcat 服务器可以管理多个 Service。

        Tomcat 作为Servlet容器,负责处理客户端请求,把请求传送给Servlet,并将Servlet的响应传送回给客户。Servlet不能独立运行,它必须被部署到Servlet容器中,由容器来实例化和调用 Servlet的方法(如doGet()和doPost()),由Servlet容器管理Servlet的生命周期。

Tomcat处理请求的过程如下:

  1. 浏览器在请求一个Servlet时,会按照HTTP协议构造一个HTTP请求,通过Socket连接发送给Tomcat
  2. Tomcat通过不同的IO模型都可以接收到Socket的字节流数据
  3. 接收到数据后,按HTTP协议解析字节流,得到HttpServletRequest对象
  4. 再通过HttpServletRequest对象,也就是请求信息,找到该请求对应的Host、Context、Wrapper
  5. 然后将请求交给Engine层处理
  6. Engine层处理完,就会将请求交给Host层处理
  7. Host层处理完,就会将请求交给Context层处理
  8. Context层处理完,就会将请求交给Wrapper层处理
  9. Wrapper层在拿到一个请求后,就会生成一个请求所要访问的Servlet实例对象
  10. 调用Servlet实例对象的service()方法,并把HttpServletRequest对象当做入参
  11. 从而就调用到Servlet所定义的逻辑

Tomcat核心组件如下图所示;

从tomcat说起全面理解Java web开发原理

三、spring MVC

         之前写过一篇【三】SpringMVC-执行流程_张狂年少的博客-CSDN博客,这里将重点讲解一下在spring boot微服务架构的方案下http请求是如何到达dispatcherServlet,mvc框架有Struts1,Struts2,spring mvc等,这些框架实际都是一个Servlet,由于spring mvc和spring框架能够无缝集成,并且伴随着spring 不断发展,所以目前spring mvc逐渐替代了其他的产品。

        首先我们看一下spring mvc的核心结构图:

从tomcat说起全面理解Java web开发原理

 没有spring boot之前我们都需要配置一下web.xml,如下所示:

 <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
现在在spring boot项目中没有web.xml文件,那我们如何去配置一个DispatcherServlet?

这个大家可以去了解一下spring boot的自动装配原理。

spring boot 内置了tomcat,开发web系统需要引入如下包:

从tomcat说起全面理解Java web开发原理

可以看到该starter引入了如下包:

从tomcat说起全面理解Java web开发原理

        当项目启动之后tomcat开始处理请求,由上文介绍的Tomcat处理请求的过程可知,tomcat负责管理servlet。Frameworkservlet 重写 service方法:

从tomcat说起全面理解Java web开发原理

 这里关注一下

this.processRequest(request, response);

在这个方法里面调用了

this.doService(request, response);

同时DispatcherServlet中实现了doService方法,由此我们找到了http请求是如何到达dispatcherServlet的方式。

总结:本篇文章主要是从tomcat说起全面理解Java web开发原理,Java web开发技术栈一直在升级迭代,但是web容器一直都没有变,我们只有深入理解web容器的原理才能透彻的理解Java web项目运行的原理。文章来源地址https://www.toymoban.com/news/detail-489830.html

到了这里,关于从tomcat说起全面理解Java web开发原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 深入剖析mmap原理 - 从三个关键问题说起

    深入剖析mmap原理 - 从三个关键问题说起

    作者:招财二师兄 链接:https://www.jianshu.com/p/eece39beee20 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 对于mmap,您是否能从原理上解析以下三个问题: 1:mmap比物理内存+swap空间大情况下,是否有问题? 2:MAP_SHARED,MAP_PRIVATE,MAP_

    2024年02月09日
    浏览(9)
  • 全面理解哈希,哈希的底层原理是如何实现的,哈希题型的做题思路与题目清单(不断更新)

    哈希(Hash)是一种算法,它接受一个输入(或“消息”),并返回一个固定大小的字符串。这个输出字符串的大小通常以字节为单位,输出的内容看起来是随机的且整个过程是单向的。 哈希的一些关键特性包括: 不管你输入的信息有多大,哈希值的大小总是固定的。 即使只

    2024年02月04日
    浏览(11)
  • Tomcat:Java Web

    Tomcat:Java Web

    简介 Apache Tomcat 是 Java Web 应用程序开发中最为常用的服务器之一。作为一个开源、轻量级的 Servlet 容器和 JSP 容器,Tomcat 提供了一个稳定可靠的运行环境,使得开发者可以快速开发、部署和管理 Java Web 应用程序。本文将深入介绍 Tomcat 的特点、优势、安装、配置和基本用法,

    2024年03月23日
    浏览(12)
  • web开发学习笔记(9.Tomcat介绍)

    web开发学习笔记(9.Tomcat介绍)

            1.简介 2.tomcat和nginx等web应用服务器的区别 http://t.csdnimg.cn/OL9Qt 3.tomcat基本使用 4.tomcat更改端口号 5. 部署

    2024年01月21日
    浏览(14)
  • 全面理解java中的构造方法以及this关键字的用法(超详细)

    全面理解java中的构造方法以及this关键字的用法(超详细)

    Hello,各位铁汁们!我是小🐟儿哈!今天我又来更新我的Java基础学习博客了。 本篇主要内容概述: 1、🍚如何用构造方法初始化对象 2、🍚为啥要有this这个 3、🍚this.属性名访问成员变量、成员方法 4、🍚this.方法名 || this.()的用法 目录 初识构造方法  构造方法的使

    2023年04月09日
    浏览(11)
  • Java Web Tomcat 23.7.5

    Java Web Tomcat 23.7.5

    1.1 简介 1.1.1 什么是Web服务器 Web服务器是一个应用程序( 软件 ),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是\\\"提供网上信息浏览服务\\\"。 Web服务器是安装在服务器端的一款软件,将来我们把自己写的Web项目部署到Web To

    2024年02月13日
    浏览(9)
  • Java Web(七)__Tomcat(二)

    Java Web(七)__Tomcat(二)

    Tomcat作为Servlet容器,有以下三种工作模式。 1) 独立的Servlet容器 ,由Java虚拟机进程来运行 Tomcat作为独立的Web服务器来单独运行,Servlet容器组件作为Web服务器中的一部分而存在。 这是Tomcat的默认工作模式。 在这种模式下,Tomcat是一个独立运行的Java程序。和运行其他Java程序

    2024年02月21日
    浏览(8)
  • [JavaWeb]【五】web后端开发-Tomcat && SpringBoot解析

    [JavaWeb]【五】web后端开发-Tomcat && SpringBoot解析

    目录 一 介绍Tomcat  二 基本使用 2.1 解压绿色版 2.2 启动TOMCAT 2.3 关闭TOMCAT 2.4 常见问题  2.5 修改端口号  2.6 部署应用程序 三 SpringBootWeb入门程序解析 前言:tomcat与SpringBoot解析                            

    2024年02月12日
    浏览(9)
  • 理解Web3公链共识算法的原理与机制

    理解Web3公链共识算法的原理与机制

    Web3时代带来了去中心化、透明和安全的数字经济发展,而公链的共识算法是实现这一目标的关键。共识算法确保了公链网络中的节点对交易和状态的一致性达成共识,同时防止了恶意行为和双重支付等问题。本文将深入探讨Web3公链共识算法的核心原理与机制。 1.共识算法的

    2024年02月10日
    浏览(9)
  • Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目

    Tomcat的基本使用,如何用Maven创建Web项目、开发完成部署的Web项目

    Web服务器: Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。 主要功能是“提供网上信息浏览服务”。 Tomcat: Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JS

    2024年02月15日
    浏览(14)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包