SpringWeb是什么东西?

在这里插入图片描述

SpringWeb是个什么东西?SpringWeb是一个Java开发Web项目时的Web层框架。所谓Web层,就是直接和用户打交道的框架,用户(User)也就是顾客,顾客就是上帝,我们说是Web项目,通常也就是说B/S架构的项目,User通常也就是电脑或者手机中的浏览器之类的软件,或者说浏览器是真实用户、或者说上帝的化身吧。

上帝很厉害,用户的要求,通常都得满足。所以,SpringWeb在整个框架的架构中,就弄了一个东西,来专门负责和上帝打交道,这个东西就叫DispatcherServlet,通常我们称这个东西叫前端控制器。

DispatcherServlet:前端控制器

为什么叫控制器呢?因为负责整体的,用户或者上帝提出要求,接收请求的是它,对用户或上帝最终进行响应的,也是它。上帝很厉害,和上帝打交道的,必然也是厉害的角色,也就是它的权力或者说作用很大,或者说地位很高吧。

具体怎么讲呢?具体我们可以从SpringWeb的这个前端控制器的名称,也就是DispatcherServlet这个名称上可以看出来,DispatcherServlet的本质主要有两个,一个是它是基于Servlet实现的,另一个是它充当的具体身份或者角色,是一个Dispatcher,也就是调度员的角色,而所谓调度员,我们可以从企业经营或工厂生产的角度来理解,Dispatcher(调度员)通常相当于是公司领导或工厂领导的实际化身,是一种权力的象征,具体就是负责各种任务分配或生产调度的,是不是很厉害呀,人家是专门派任务的。

我们都知道,领导通常是不干实事的,Dispatcher这个东西,通常也是不干实事的,它就是派单、派任务的,具体的事实都是由别人来做,它只要结果,从某种意义上讲,它就是领导,就是上帝的化身。所以,Dispatcher也类似一个有钱人、一个富豪,什么事情都不自己干,都外包,它出钱,要干的事情出钱外包掉,他只要结果,当然,在这里DispatcherServlet,不是富豪,我们把它看成是一个权力的代表者,它不需要出钱,它只需要动用权力就可以了,而这个权力来自SpringWeb框架设计给它的定位。

现在,我们以一个具体的场景或需求来说一下DispatcherServlet这个Dispatcher,它是如何将任务外包出去的,是如何分派各种任务的,并是终接收各种结果,最终对用户(通常也就是浏览器)进行响应的。

上帝说,我缺个老婆,SpringWeb,你给我一个老婆吧。服务器这端的SpringWeb,就会找到DispatcherServlet来负责整件事情,DispatcherServlet作为领导或者说调度员,对于上帝提出的这种无理的要求(上帝怎么会缺老婆呢),但它必须满足,满足上帝的要求,但DispatcherServlet好歹也是一领导或领导的化身调度员,对不对?DispatcherServlet不可能去手搓一个花姑娘给上帝,他不可能亲自干这种体力活,对不对?那么办呢?

对于上帝的老婆,DispatcherServlet自己不会弄,他就得找手下弄,找专门生产花姑娘的工厂去生产,可是这么大一个领导(可能是集团公司哦),到底公司下面哪一个分公司或哪家工厂能干这件事情呢?DispatcherServlet并不清楚,于是DispatcherServlet会找来他的秘书,说秘书啊,我现在头疼,上帝要一老婆, 我现在好难呀,我们整个集团公司,哪个子公司或者下面哪个工厂能造一个机器人老婆给上帝啊,然后秘书就会告诉他找谁谁谁,这个DispatcherServlet的秘书,在整个SpringWeb架构中,就叫处理器映射器(HandlerMapping),而那个具体生产机器人老婆的工厂,就叫处理器(Handler),所以,DispatcherServlet听秘书(处理器映射器,HandlerMapping),一吨聒噪后,大体就知道找谁或哪个下面的子公司或工厂做老婆型机器人了,但通常,DispatcherServlet在联系下面做事情的时候,电话会先打到下面公司的管理层或生产部,最终具体是哪个工厂或车间去生产机器人,DispatcherServlet是不会管的,这个下面公司或子公司的管理层或生产部,在SpringWeb的整个架构中就叫处理器适配器(HandlerAdapter),而真正实质上执行老婆型机器人生产的工厂或车间,在SpringWeb中就是前面所说处理器(Handler)。

当工厂车间——也就是处理器(Handler),真正把机器人生产出来之后,其实是由生产部或车间的公司上层,也就是处理器适配器负责反馈给DispatcherServlet的,DispatcherServlet拿到老婆型机器人之后,一看,我靠,这机器人功能不错呀(想想能做老婆的机器人,功能自然很强大吧),但再一细思,这不对呀,这不行呀,这机器人就是几条棍棍加在一起呀,实在自己看着都难受,上帝会要这么个玩意当老婆?上帝应当是要一个花姑娘吧?所以,新的任务产生了,那就是把老婆型机器人再给包装包装、打扮打扮,最后发货回应给上帝后,自己才能睡个安稳觉吧,是于他又把这个任务,派给了自己下面的包装公司,这个包装公司,在SpringWeb架构中,就叫视图解析器(View Resolver)。

在这里插入图片描述

总之,SpringWeb相当于是一个星型结构的架构形式,类似于中央集权吧,权力中心的那个角色,就是DispatcherServlet,它被称为前端控制器,所以,它是个领导,是务虚的,人家专家负责给下面的人或子公司、机构分配或分派任务的,下面的人或机构,才是干实事的,就以上帝要老婆这个案例来说,其实最终真正干实事、负责核心业务的处理器(Handler),这个处理器(Handler)在实际的编程实践中,通常被命名为Controller,也就是控制器,所以,这个处理器(Handler)通常被称为SpringWeb的后端控制器。

当然,故事并没有就此结束,后来上帝说,这个机器人老婆不错,不过你们包装来包装去,就是给机器人披上几件漂亮的衣服而已,这件事情你们不用做了,你们给我个老婆型裸机器人就行,你们以为上帝的老婆还会缺几件漂亮的衣服不成?所以,后来就有了前后端彻底分离这么件事,SpringWeb基本也就不再干视图解析、数据渲染——给机器人化妆穿衣服这种事情了,因为上帝不需要了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/93593.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/93593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker+nginx+keepalived+openappsec+web ui+crowdsec部署安全代理

docker+nginx+keepalived+openappsec+web ui+crowdsec部署安全代理 一、环境介绍 二、基础环境安装 1、优化系统参数 2、安装docker 3、创建容器网络 4、安装测试容器(可选) 三、安装nginx 1、拉取镜像 2、创建映射目录 3、准备默认配置文件 4、证书文件准备 5、启动nginx容器…

自动驾驶中安全相关机器学习功能的可靠性定义方法

摘要当前标准无法涵盖高自动化驾驶中基于机器学习功能的安全需求。由于神经网络的不透明性,一些自动驾驶功能无法按照 V 模型进行开发。这些功能需要对标准进行扩展。本文聚焦这一空白,为这类功能定义了功能可靠性,以帮助未来的标准控制基于机…

css实现圆角+边框渐变+背景半透明

ui小姐姐经常搞一些花里胡哨的东西,圆角边框渐变背景半透明,虽然每个都可以弄,但是合在一起真的不好弄,主要是因为通过border–image设置的边框渐变,无法使用圆角,下面是自己搜索整理的一些可以的方案。 方…

tree组件(几种不同分叉树Vue3)

效果图&#xff1a; 基础树组件&#xff08;本人博客里面有&#xff09; https://blog.csdn.net/xfy991127/article/details/140346861?spm1001.2014.3001.5501 下面是工作需求改造后 父组件 <template><div class"go-JJTree" id"tree-scroll&quo…

百度智能云x中科大脑:「城市智能体」如何让城市更会思考

近日&#xff0c;2025中关村论坛系列活动——中关村人工智能与未来城市论坛在中关村国家自主创新示范区展示中心举办。论坛上&#xff0c;发布了应用范式创新升级成果、智能体产品、可信数据空间成果等。 中科大脑联合百度智能云等伙伴共同打造并发布21个智能体产品&#xff0c…

在职老D渗透日记day16:sqli-labs靶场通关(第24关)二次注入 sqlmap自动注入没跑出来。。。

5.24.2.sqlmap自动注入第一个&#xff1a;登录页面&#xff08;1&#xff09;pb抓取http头POST /sqli-labs/Less-24/login.php HTTP/1.1 Host: 192.168.10.106 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:141.0) Gecko/20100101 Firefox/141.0 Accept: text/ht…

Fanuc机器人EtherCAT通讯配置详解

1、EtherCAT简介EtherCAT&#xff0c;这一基于以太网的现场总线系统&#xff0c;以其开放架构和高速性能著称。CAT代表的是控制自动化技术&#xff08;Control Automation Technology&#xff09;的缩写&#xff0c;彰显了其在工业自动化领域的核心地位。作为确定性的工业以太网…

超酷炫的Three.js示例

今天写一个超级酷炫的Three.js示例&#xff0c;以下是文件源代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-sca…

从零开始大模型之实现GPT模型

从零开始大模型之从头实现GPT模型1.大语言模型整体架构2 大语言的Transformer模块2.1 层归一化2.2 GELU激活函数2.3 前馈神经网络2.4 快捷连接3 附录3.1 anacondapython环境搭建1.数据预处理&#xff1a;原始数据进行词元化&#xff0c;以及通过&#xff0c;依据词汇表生成ID编…

[1Prompt1Story] 滑动窗口机制 | 图像生成管线 | VAE变分自编码器 | UNet去噪神经网络

链接&#xff1a;https://github.com/byliutao/1Prompt1Story 这个项目是一个基于单个提示生成一致文本到图像的模型。它在ICLR 2025会议上获得了聚焦论文的地位。该项目提供了生成一致图像的代码、Gradio演示代码以及基准测试代码。 主要功能点: 使用单个提示生成一致的文本…

【GitHub开源AI精选】Sitcom-Crafter:北航联合港中文等高校打造的剧情驱动3D动作生成系统

系列篇章&#x1f4a5; No.文章1【GitHub开源AI精选】LLM 驱动的影视解说工具&#xff1a;Narrato AI 一站式高效创作实践2【GitHub开源AI精选】德国比勒费尔德大学TryOffDiff——高保真服装重建的虚拟试穿技术新突破3【GitHub开源AI精选】哈工大&#xff08;深圳&#xff09;…

智和信通全栈式运维平台落地深圳某学院,赋能运维管理提质提效

深圳某学院校园内信息化设备众多&#xff0c;网络环境复杂&#xff0c;使得网络管理工作面临着诸多难题与挑战。为保障校园网络能够稳定、高效地运行&#xff0c;学院亟须构建一套集高效、智能、协同于一体的网络运维平台。 对运维平台的期望包括&#xff1a; 实现校园内教学…

开疆智能Ethernet转ModbusTCP网关连接测联无纸记录仪配置案例

本案例是通过Ethernet转ModbusTCP网关将记录仪数据传送到欧姆龙PLC&#xff0c;具体操作过程如下。欧姆龙PLC配置首先打开主站组态软件“Sysmac Studio”并新建项目。设置PLC的IP地址点击工具-Ethernet/IP连接设置&#xff0c;在弹出的选个框内选择显示EDS库添加网关eds文件开始…

Eureka故障处理大汇总

#作者&#xff1a;Unstopabler 文章目录1. Eureka 服务启动故障处理1.1 端口占用导致启动失败1.2 配置文件错误导致启动失败1.3 依赖冲突与类加载错误2. 服务注册与发现异常2.1 服务无法注册到 Eureka2.2 Eureka 控制台看不到注册的服务2.3 服务注册后立即被剔除3. Eureka 集群…

基于Transformer的机器翻译——模型篇

1.模型结构 本案例整体采用transformer论文中提出的结构&#xff0c;部分设置做了调整。transformer网络结构介绍可参考博客——入门级别的Transformer模型介绍&#xff0c;这里着重介绍其代码实现。 模型的整体结构&#xff0c;包括词嵌入层&#xff0c;位置编码&#xff0c;…

上位机TCP/IP通信协议层常见问题汇总

以太网 TCP 通信是上位机开发中常用的通信方式&#xff0c;西门子 S7 通信、三菱 MC 通信以及 MQTT、OPC UA、Modbus TCP 等都是其典型应用。为帮助大家更好地理解 TCP 通信&#xff0c;我整理了一套常见问题汇总。一、OSI参考模型与TCP/IP参考模型基于TCP/IP的参考模型将协议分…

搭建ktg-mes

项目地址 该安装事项&#xff0c;基于当前最新版 2025年8月16日 之前的版本 下载地址&#xff1a; 后端JAVA 前端VUE 后端安装&#xff1a; 还原数据表 路径&#xff1a;根目录/sql/ry_20210908.sql、根目录/sql/quartz.sql、根目录/doc/实施文档/ktgmes-202505180846.sql.g…

uniapp纯前端绘制商品分享图

效果如图// useMpCustomShareImage.ts interface MpCustomShareImageData {canvasId: stringprice: stringlinePrice: stringgoodsSpecFirmName: stringimage: string }const CANVAS_WIDTH 500 const CANVAS_HEIGHT 400 const BG_IMAGE https://public-scjuchuang.oss-cn-ch…

醋酸镧:看不见的科技助力

虽然我们每天都在使用各种科技产品&#xff0c;但有些关键的化学物质却鲜为人知。醋酸镧&#xff0c;就是这样一种默默为科技进步贡献力量的“幕后英雄”。它不仅是稀土元素镧的一种化合物&#xff0c;还在许多高科技领域中发挥着重要作用。今天&#xff0c;让我们一起来了解这…

苍穹外卖日记

day 1 windows系统启动nginx报错: The system cannot find the path specified 在启动nginx的时候报错&#xff1a; /temp/client_body_temp" failed (3: The system cannot find the path specified) 解决办法&#xff1a; 1.检查nginx的目录是否存在中文 &#xff0c;路…