GPT 告诉你请求到达 Tomcat 是怎么处理的

news/2024/11/25 19:09:46/

tomcat如何监听请求到达

在这里插入图片描述

没有SpringMVC,tomcat 如何处理请求

在这里插入图片描述

Tomcat 线程池的作用是什么主要任务是什么?

如何配置tomcat 线程池

tomcat 线程池的主要任务是处理连接请求

在这里插入图片描述

tomcat线程池是怎么实现的

到这里可以看出来,tomcat线程池的实现方式也是通过ThreadPoolExecutor 实现

在这里插入图片描述

如何根据请求url 找到对应的servlet

通过在xml 文件中配置servlet 与 url 的映射关系 找到对应的servlet 处理请求。找到servlet之后需要交给servlet中的service方法,service中会根据get 方法,还是post 方法调用doget/dopost 方法,当然也可以自己指定方法(doget,或者dopost 方法)调用。

在这里插入图片描述
配置方式示例:

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class HelloServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();out.println("<html>");out.println("<head>");out.println("<title>Hello Servlet</title>");out.println("</head>");out.println("<body>");out.println("<h1>Hello World</h1>");out.println("</body>");out.println("</html>");}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"id="WebApp_ID" version="4.0"><display-name>HelloServletExample</display-name><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>com.example.HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping>
</web-app>

到这里差不多tomcat 处理请求的相关问题已经理清楚了,其中还有过滤器监听器等组件没有使用,应该差不多,先不问了😀。那么接下来看一下Spring MVC 来了应该又是什么的流程。

SpringMVC 处理请求的详细流程

从这里可以看出,主要就是通过DispatcherServlet处理请求。那么又和tomcat 是怎么配合的呢?

在这里插入图片描述

SpringMVC 是怎样和tomcat 配合的

在这里插入图片描述

到这里我们可以完整的理解到请求到大服务器是怎样一步步处理并返回的,其中还有很多细节问题可以提问,可以评论区讨论?


http://www.ppmy.cn/news/61050.html

相关文章

深入源码理解redis数据结构(一)

文章目录 一. 动态字符串SDS二. IntSet三. Dict 一. 动态字符串SDS 我们都知道Redis中保存的Key是字符串&#xff0c;value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。不过Redis没有直接使用C语言的字符串&#xff0c;因为C语言字符串存在着很多…

OSI七层网络参考模型

七层模型的诞生 深夜中&#xff0c;在一家美国酒吧坐着几个正在谈论迪斯尼电影里的7个小矮人&#xff0c;他们把小矮人的名字写在餐巾纸上&#xff0c;有人开玩笑说7对于网络分层是个好数字&#xff0c;这几个人就是制定OSI标准小组的成员&#xff0c;后来OSI真的就设计成了七…

设计模式之适配器模式

目录 1、什么是适配器模式 2、为什么用适配器模式 3、适配器模式的结构 4、类适配器模式代码实现 4.1 思想 4.2 代码实现 4.3 问题分析 5、对象适配器模式代码实现 5.1 思想 5.2 代码实现 6、适配器模式应用场景 1、什么是适配器模式 适配器模式&#xff08;Adapter…

实在智能出席第六届数字中国建设峰会,入围2022年信息技术应用创新优秀解决方案榜单

最美榕城四月天&#xff0c;山海之间尽显数字澎湃。这一周来&#xff0c;实在智能来到了“有福之州”&#xff0c;为数字中国建设增添实在色彩。 4月25日&#xff0c;实在华夏行抵达福州站&#xff0c;与众多生态合作伙伴携手共话数字发展新未来&#xff1b; 4月26日&#xff…

Android 11 WebView无法加载libwebviewchromium.so

概述 Android WebView 是 Google 提供的一个预安装系统组件&#xff0c;用以支持 Android 应用显示网页内容。 如果您希望在客户端应用中提供 Web 应用&#xff08;或只是网页&#xff09;&#xff0c;则可以使用 WebView 执行该操作。WebView 类是 Android 的 View 类的扩展&a…

要么转型升级,要么躺平出局,IT人如何找到理想职场?

‍ ‍某位哲学家曾说&#xff1a;“工作的最高意义在于它应该是人类的仆人&#xff0c;而非主人”&#xff0c;但是在今年的就业环境下&#xff0c;大部分打工人嘴上喊着躺平&#xff0c;身体却很诚实地在行动上打鸡血。 但是卷起来就安全了吗&#xff1f;35岁之前走上管理岗就…

SpringBoot整合Mybatis实现商品评分

前言 当今的电商平台越来越依赖于用户评分&#xff0c;以确定一个商品在市场中的竞争力和口碑&#xff0c;而SpringBoot整合Mybatis-plus是非常适用于这一功能的框架。本文将介绍在SpringBoot应用中整合Mybatis-plus框架&#xff0c;实现对商品进行评分功能的实现过程。同时&a…

Db2 hardcode一个CTE

环境 DB2 v11.5.0.0 CTE &#xff08;Common Table Expression&#xff09; 基本用法 例如&#xff1a; with temp1 as (select * from t1 where c1 > 1) select * from temp1 where c2 < 100可见&#xff0c;定义好CTE之后&#xff0c;就可以当成table一样直接用了…