Java旅游动吧项目讲解_springboot动吧项目

3345f5688aa0411322c7e876bb7cde3d.png

架构分析

bVbPaYy

页面流程

bVbPaYA

业务分析:客户端向服务端发送一个请求,发向了Tomcat,如果Tomcat只有一个线程是不可能处理多个请求的,所以就需要一个多个线程的池资源,然后线程用I/O读取请求中的数据,然后服务器从http协议中拿到数据,然后把数据封装到request对象中,进行过滤,过滤之后交给springmvc,之后就是springmvc的流程了

在return "starter"处加一个断点,刷新页面debug运行如下

bVbPa0W

然后走到dispatcherServlet(mvc中的c),当客户端传了一个url以后,c会基于url找到一个处理器,会找到requestmapping,而r里面就相当于有一个map,map里有key和value,当传来的url是key,基于k找v,而v就是后面的collection方法,做了一个映射,collection严格来讲就是一个请求处理器,那那么多处理器怎么找到呢,中间得对应一个映射,而映射就是r,(这个r可以通过点击boot dashboard,再点项目 选择上面的show properties 再点request mapping的path对应的source去查看),找到之后dispatcherServlet就开始基于url的映射,去反射调用controller,然后9在调用方法,方法返回给dispatcherServlet一个view的名字,dispatcherServlet拿到名字以后,当方法的返回值是view的时候,要解析这个view,这个方法谁调用就返回给谁,所以dispatcherServlet拿到了名字,dispatcherServlet拿到名字之后会交给视图解析器解析这个名字,我们默认使用的解析器是thymeleafViewResolver,所以模板放到了templates下面,这样才可以解析,解析之后加上前缀和后缀,假如还有一部分model数据,还有把model的数据放到view上去

当输入localhost/doIndexUI这个地址的时候,是由DNS服务器解析的域名,拿到一个ip地址(是网络中计算机的唯一标识),基于ip找到网络中的主机,找到服务器,然后会通过端口号(是程序的唯一标识)找到程序,找到了Tomcat,一旦找到了Tomcat就会有了上树的过程

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

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

相关文章

java并发-内存模型与volatile

JMM的关键技术点都是围绕着多线程的原子性、可见性和有序性来建立的。因此,我们首先必须了解这些概念 1,原子性 原子性是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰&#xf…

Notepad++使用教程

Notepad 快捷键 大全CtrlC 复制CtrlX 剪切CtrlV 粘贴CtrlZ 撤消CtrlY 恢复CtrlA 全选CtrlF 键查找对话框启动CtrlH 查找/替换对话框CtrlD 复制并粘贴当行CtrlL 删除当前行CtrlT 当行向上移动一行F3 查找下一个ShiftF3 查找上一个CtrlShiftF 组合在文件中查找CtrlF3 查找&#x…

安卓手机刷软路由_华为路由AX3 Pro上手测评:用过最方便的路由器,没有之一...

都说"科技改变生活",但我总觉着,现如今的人们似乎被数码产品"奴役"了。比如说:之前买过某品牌路由器,设置过程之繁琐,直接让当时是数码小白的我崩溃了。自打那之后,我选购数码产品的标…

ECharts.js学习(二)动态数据绑定

Echarts 数据绑定 简单的统计表已经可以生成,不过之前图标数据都是直接写在参数里面的,而实际使用中,我们的数据一般都是异步读取的。EChart.js对于数据异步读取这块提供了异步加载的方法。 绑定多组数据 很多时候需要展示的数据不单单是一组…

黑苹果2k屏_一加手机屏幕新特性:120Hz、2K+ OLED、10bit

在发布了旗下的首款概念手机Concept One后,再次有消息显示一加将在1月13日也就是今天举办“屏幕技术沟通会”。而在发布会正式到来前,一加CEO刘作虎则在微博表示,一加已经完成了120Hz屏幕的研发。沟通会上还会聊一聊一加90Hz 流体屏引领行业后…

Java哈利波特死亡圣器下_如果编程语言是《哈利波特》中的人物

如果编程语言是《哈利波特》中的人物,本文是作者的一些观点,如果你有不同的看法,欢迎在留言中告诉我们。C语言每个人都在说,C语言已经死了至少十年以上了。人们对它嗤之以鼻。当然它也曾不可一世,肆虐横行,…

序列每天从0开始_【算法打卡】分割数组为连续子序列

难度:中等题目:给你一个按升序排序的整数数组 num(可能包含重复数字),请你将它们分割成一个或多个长度为 3 的子序列,其中每个子序列都由连续整数组成。如果可以完成上述分割,则返回 true ;否则&#xff0c…

php会员系统源码_b2b2c商城系统会员预存款架构及源码分享

业务需求可以为预存款充值,在支付订单时使用预存款支付功能当预存款余额>商品订单总金额时,完全抵扣商品订单金额;当预存款余额架构一、 充值二、 数据结构1、会员钱包表(es_member_wallet)2、 后期可能会将会员积分等关于消费抵扣相关信息…

HTML5 规范

在学习编程的时候,每次看到那些整齐规范的代码,心里顿时对这个程序员表示点点好感,有时,比如看到自己和朋友写的代码时,那阅读起来就是苦不堪言,所以,一些基本的开发规范是必须的,是…

JWT.NET的使用

JWT.NET的使用 原文:JWT.NET的使用JWT是什么 JWT全称是Json Web Token,是一种用于双方之间传递安全信息的简洁的、URL安全的表述性声明规范。JWT作为一个开放的标准( RFC 7519 ),定义了一种简洁的,自包含的方法用于通信…

正在搜索需要的文件_【数澜发布-澜寻】智能内容搜索引擎,释放“机器阅读” 潜力...

4月23日,又是一年世界读书日。知识传播的重要性在这一天被无数次提起,记录、阅读成为我们 “理解”这个世界的加速通道,但在科技力量迅猛发展的当下,阅读这件事早已不再局限于人类。人工智能应用到社会中很重要的一步就是模仿人类…

学习笔记(十一)——数据库的索引碎片、计划缓存、统计信息

1.索引碎片 数据库存储本身是无序的,建立了聚集索引,会按照聚集索引物理顺序存入硬盘。既键值的逻辑顺序决定了表中相应行的物理顺序 而且在大多数的情况下,数据库写入频率远低于读取频率,索引的存在为了读取速度牺牲写入速度&…

网络软文发布软件_星浪中合网软文写出爆款汽车营销软文的特点是什么?

在移动互联网快速发展的时代,人们都是使用移动设备来获取外界信息。过去,许多广告汽车公司都专注于线下广告,但是现在他们已经将广告费用投入了移动互联网市场。移动互联网营销方法很多,例如,软文营销是一种非常强大的…

通达oa wbupload.php,关于通达OA上传附件类型限制的设置

关于上传附件类型限制的设置有些用户在使用OA系统的过程中,要求只允许上传比如后缀名为doc,xls,ppt等的附件文件。如何设置才能实现这一点呢?下面简单介绍下设置方法。1、在该路径MYOA\webroot\inc下找到配置文件oa_config.php文件…

ADC应用

数模转换(ADC)的应用笔记 智能时代,数字信号已体现在我们生活的方方面面,A/D,D/A是重要的基础。智能手机触摸信号需要转换为数字信号才能分辨触摸位置、数字去抖;打电话或者麦克风需要将模拟声信号转换为数字信号以便存…

springboot 禁用tomcat_Spring Boot 面试的十个问题

点击左上角蓝字,关注“SpringForAll社区”专注分享Spring周边技术内容用下面这些常见的面试问题为下一次 Spring Boot 面试做准备。在本文中,我们将讨论 Spring boot 中最常见的10个面试问题。现在,在就业市场上,这些问题有点棘手…

go 怎么等待所有的协程完成_理解真实世界中 Go 的并发 BUG

点击上方蓝色“Go语言中文网”关注,回复「电子书」领全套Go资料有几个学生研究归纳了go编程中的并发bugs,发表了一篇(英文)论文:《Understanding Real-World Concurrency Bugs in Go》。为你下载好了 PDF,关注公众号 Go语言中文网…

java地图图表动态亮点,可视化图表行动指南:地表最强解读来了

原标题:可视化图表行动指南:地表最强解读来了身处信息技术高速发展的时代,数据价值日益凸显,然而如何将数据更好的展示,让别人一看就懂且眼前一亮可是一门大学问。此前,小亿在广大数友的强烈要求下结合前人…

ASP.NET MVC 使用Swagger需要注意的问题!!!

之前,一直使用的微软自带的Microsoft.AspNet.WebApi.HelpPage来作为项目的接口文档,但总感觉有些不足,就准备采用Swagger。 在项目中引用Swagger很方便,直接Nuget搜索安装Swashbuckle就可以。但是,在使用的过程中&…

分块试水--CODEVS4927 线段树练习5

模板 1 #include<stdio.h>2 #include<algorithm>3 #include<string.h>4 #include<stdlib.h>5 #include<math.h>6 //#include<bitset>7 //#include<iostream>8 using namespace std;9 10 int n,m,q;11 #define maxn 10001112 #define…