当前位置: 首页 > article >正文

【鱼皮-用户中心】笔记

任务:完整了解做项目的思路,接触一些企业及的开发技术

title

    • 企业做项目流程
      • 需求分析
      • 技术选型
    • 计划一
      • 一、前端初始化
        • 1. **下载node.js**
        • 2. **安装yarn**
        • 3. **初始化 Ant Design Pro 脚⼿架(关于更多可进入官网了解)**
        • 4. **开启Umi UI插件(可帮助我们快速开发完整的界面)**
        • 5. **项目瘦身**
      • 二、后端初始化
        • 1. **初始化MySQL**
        • 2. **三种方式创建 SpringBoot 项目的方式:**
        • 3. **这里使用在 IDEA 中创建 SpringBoot 项目**
        • 4. **导入Junit**
        • 5. **引入 MyBatis-Plus**
    • notes
      • 一个项目所需要的依赖
      • 用户表字段
    • 计划二
      • 后端-注册功能
        • 1.规整项目目录
        • 2. 实现基本数据库操作
        • 3. 完成注册业务层代码
    • notes
  • 多环境开发

企业做项目流程

  • 需求分析 => 设计(概要设计、详细设计)=> 技术选型 => 初始化 / 引用需要的技术 => 写Demo => 写代码(实现业务逻辑) => 测试(单元测试)=> 代码提交 => 部署发布

需求分析

  1. 登陆、注册
  2. 用户管理(仅管理员可见)
  3. 用户校验(仅星球用户)

技术选型

前端:三件套 + React + 组件库Ant Design + Umi + Ant Design Pro (现成的管理系统)
后端: java + spring + springmvc + mybatis + mybatis-plus + springboot + mysql
部署: 服务器 容器

  1. 学会前后端企业主流开发技术的应用
  2. 了解做项目的完整流程,能够独立开发及上线项目
  3. 学到系统设计的方法和经验
  4. 学到一些实际的编码技巧,比如开发工具、快捷键、插件的使用
  5. 学到代码的优化技巧,比如抽象、封装、提高系统性能、节约资源的方法
  6. 学习登录态、代理、多环境、容器、跨域等重要的开发知识
  7. 学到一些源码阅读的技巧
  8. 提升自主解决问题的能力

计划一

一、前端初始化

1. 下载node.js
  • 官网下载:https://nodejs.org/en/
  • 最好使用大于等于14的版本,12版本有点老
  • 安装后进行换源
npm config get registry  #get命令查看registry
npm config set registry http://registry.npm.taobao.org   #用set换为阿里镜像
2. 安装yarn
  1. 尽量不使用npm命令安装,推荐使用msi安装包安装,下载地址:msi安装包
  2. 安装 yarn 后需要检查环境配置和安装路径是否相同,否则会报错,找不到该命令
  3. 通过 yarn -v 验证安装是否成功
  4. 安装好后还需要进⾏最后⼀步:改变镜像 运行下面的命令即可
yarn config set registry https://registry.npm.taobao.org -g
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass-g
3. 初始化 Ant Design Pro 脚⼿架(关于更多可进入官网了解)

Ant design pro 官网

  1. 创建项目目录,在该目录下打开 cmd ,运行以下命令:(由于 Ant Design Pro 更新 旧版命令可能会有错误,要根据官网初始化步骤进行初始化)
  • 提供 create umi 来快速的初始化脚手架 ANT DESIGN PRO
npm i @ant-design/pro-cli -g
pro create myapp
  1. 选择 umi 的版本 一定要选择umi@3

  2. 选择选择简单的(Simple)脚手架

  3. 使用 WebStorm 打开项目

  4. 执行左下角提示的 npm install/在终端运行 yarn

  5. 依赖下载完成之后即可运行

4. 开启Umi UI插件(可帮助我们快速开发完整的界面)
1. 安装 Umi UI,控制台运行下面的命令:
```bash
yarn add @umijs/preset-ui -D #在项目文件夹中运行!
#或
npm install --save-dev @umijs/preset-ui
```
- Umi UI 区块无法预览解决方式:在 hosts 里加 151.101.64.133 raw.githubusercontent.com
- 这个 ip 指向的是美国,其实也不影响功能
5. 项目瘦身
1. 移除国际化- package.json 已经定义好了移除国际化的命令:
`"i18n-remove": "pro i18n-remove --locale=zh-CN --write"`
- 运行该脚本- 删除 src 下的 locales 文件夹2. 删除无用的文件- 如果删除后无法运行,全局搜索查看哪里引用了该文件,删除该引用即可

二、后端初始化

1. 初始化MySQL
  1. 老师使用的是MySQL5.7版本,但是其他的版本已经不兼容,于是我是用的是
    mysql8.0 + springboot3x
  2. 验证 MySQL是否安装成功 - 使用 IDEA 连接
2. 三种方式创建 SpringBoot 项目的方式:
  1. 在 GitHub 拉取现成的模板:SpringBoot-Templates(不建议从零开始写一个项目或在企业中做项目的情况下使用)
  2. SpringBoot 官方的模板生成器
  3. 直接在 IDEA 开发工具中生成 ⭐

注意:在这里的pom.xml导入中有一个大坑❗

为了和mysql 8.0 java17 版本匹对,所以需要引入 springboot3.0 版本,但是启动会发生报错,原因是mapper接口和其他问题,最后检查过后发现是版本问题。

  • 一般来说的导入:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
  • 但是应该是:
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.6</version>
</dependency>
3. 这里使用在 IDEA 中创建 SpringBoot 项目
  1. new => project => Spring Initializr => 填写项目的相关信息(本项目使用 Java8 版本)

  2. 勾选 Dependencies

4. 导入Junit
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope>
</dependency>
5. 引入 MyBatis-Plus
  1. 导入依赖
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.2</version>
</dependency>
  1. 在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹
@SpringBootApplication
@MapperScan("com.mark.usercenter.mapper")
public class UserCenterApplication {public static void main(String[] args) {SpringApplication.run(UserCenterApplication.class, args);}
}
  1. 创建数据库
DROP TABLE IF EXISTS user;CREATE TABLE user
(id BIGINT(20) NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT(11) NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id)
);INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
  1. 配置数据源
spring:application:name: user-centerdatasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/universeusername: rootpassword: 123456
  1. model 包下创建实体类User.java
@Data
public class User {private Long id;private String name;private Integer age;private String email;
}
  1. 编写 Mapper 包下的 UserMapper接口
public interface UserMapper extends BaseMapper<User> {}
  1. 测试 MyBatis-Plus 导入成功:
@SpringBootTest
//这里使用的@Test注解与SpirngBoot并无联系,因此此处需要加RunWith注解
@RunWith(SpringRunner.class)
public class SampleTest {@Resourceprivate UserMapper userMapper;@Testpublic void testSelect() {System.out.println(("----- selectAll method test ------"));//调用Mapper方法,查询条件为空,即查询所有List<User> userList = userMapper.selectList(null);//断言——预期结果 对比5与查询结果是否相同Assert.assertEquals(5, userList.size());//输出userList.forEach(System.out::println);}	

notes

一个项目所需要的依赖

在这里插入图片描述

  • .prettierrc.js 美化代码工具
项目解释
Lombok默认
Spring Boot DevTools改代码自动重启
Spring Configuration Processor自动获取get set函数
MySQL Driver驱动
Spring Web增加外部访问能力
MyBatis Framework数据访问层理框架

后端技术介绍:

  • spring : 依赖注入框架,帮助管理java对象,集成一些其他内容

  • springmvc : web框架,提供接口访问、restful接口等能力

  • mybatis : java操作数据库的框架,持久层框架

  • mybatis-plus : 对mybatis增强,一个为简化开发的数据库工具

  • springboot : 不用自己管理spring配置,不用整合框架,快速启动

  • junit : 单元测试库

  • 对于要引入java的包,可以去maven中心仓库查找 (http://mvnrepository.com/)点我跳转

用户表字段

id 主键 bigint
username 昵称 varchar
userAccount 登录账号 varchar
avatarUrl 头像 varchar
gender 性别 tinyint
userPassword 密码 varchar
phone 电话 varchar
email 邮箱 varchar
userStatus 用户状态 int 0表示正常
userRole 用户角色 int 0 -> 普通用户 1 -> 管理员


createTime 创建时间(数据插入时间) datetime
updateTime 更新时间(数据更新时间) datetime
isDelete 是否删除(逻辑删除) tinyint

创建表
使用 IDEA 傻瓜式生成数据表

updateTime 和 createTime 需要手动指定,生成并手动修改的 DDL 如下


-- auto-generated definition
create table user
(id           bigint auto_increment comment '主键id'primary key,username     varchar(256)                       null comment '用户昵称',userAccount  varchar(256)                       null comment '登录账号',avatarUrl    varchar(1024)                      null comment '用户头像',gender       tinyint                            null comment '性别',userPassword varchar(512)                       not null comment '密码',phone        varchar(128)                       null comment '电话',email        varchar(512)                       null comment '邮箱',userStatus   int      default 0                 not null comment '用户状态 0 - 正常',createTime   datetime default CURRENT_TIMESTAMP null comment '创建时间',updateTime   datetime default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间',isDelete     tinyint  default 0                 not null comment '是否删除'
)comment '用户';

计划二

后端-注册功能

1.规整项目目录
  • 项目的请求层,业务层
    在这里插入图片描述
  • 静态文件和页面模板文件
    在这里插入图片描述
  • 整体后端框架
    在这里插入图片描述
2. 实现基本数据库操作

1)模型 user 对象 => 和数据库的字段关联
如果mysql实体类过多,那么就需要自动生成

  • 使用 MyBatisX 插件自动生成 domain 实体对象、mapper (操作数据库对象) 、mapper.xml (定义了mapper对象和数据库关联,可以在里面自己写 SQL )、service(包含常用的增删改查)、serviceImpl( service 实现类)
  • 右键表 => MyBatisX-Generator => Next => 勾选 MyBatis-Plus3 => 勾选 Comment(注释)、Actual Column(每一个列的实际列名)、 Model(生成 domain ) 、 Lombok(使用 Lombok 注解) => 勾选 mybatis-plus3 => Finish

在这里插入图片描述

  • 这里就是自动生成的 generator 文件
    数据库实体
操作数据库对象
接口和实现类

  • 一键生成对象所有set方法
    在这里插入图片描述

  • 生成所有的set方法并且赋予默认值
    在这里插入图片描述

3. 完成注册业务层代码

一、注册逻辑

  1. 用户子啊前端输入账户和密码,遗迹校验码(todo)
  2. 校验用户的账号、密码、校验密码是否符合要求
    • 账号不小于4位
    • 密码不小于8位
    • 其他的校验 账户不能重复
    • 账户不包含特殊字符
    • 密码和校验密码相同
  3. 对密码进行加密 (密码千万不要直接存储到数据库中)
  4. 向数据库插入用户数据

由于一个一个校验是非常麻烦的,所以需要引入一个java库
在这里插入图片描述
注册功能 | 后端 - 接口逻辑开发 5.44

  • QueryWrapper
QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.eq("userAccount",userAccount);long count = this.count(queryWrapper);if(count > 0){return -1;}

QueryWrapper<User> queryWrapper = new QueryWrapper<>();

⭕创建了一个查询包装器对象,用于构建查询条件
表示这个查询是针对User实体类的

queryWrapper.eq("userAccount",userAccount);

⭕设置查询条件:查询userAccount字段等于给定userAccount值的记录
eq()方法表示"equals",即等于条件

  • 检验账户名特殊字符的正则表达式
	public static String romveSpecialChar(String str) {String regEx = "\\pP|\\pS|\\s+";str = Pattern.compile(regEx).matcher(str).replaceAll("").trim();return str;}

notes

  1. Mybatis_plus 下划线自动转换成驼峰

多环境开发

同一套项目代码在不同的阶段需要根据实际情况调节配置并部署到不同的机器上

为什么需要?

每个环节互不影响
为了区分不同的阶段:开发、测试、生产
对项目进行优化
本地日志级别
精简依赖(节省项目体积)
项目的环境/参数可以调整,比如JVM参数
针对不同环境做不同的事情。

多环境分类:

本地开发(自己的电脑):localhost(127.0.0.1)
开发环境(远程开发):大家连同一台机器,为了大家开发方便
测试环境(测试):开发/测试/产品人员使用,单元测试/性能测试/功能测试/系统集成测试,独立的数据库、独立的服务器
沙箱环境(实验环境):完全隔离的环境,为了做实验,测试某个功能
预发布环境(类似内测/体验服):基本和正式环境一致,使用正式数据库,更严谨、查出更多问题
正式环境(线上、公开对外访问的项目):尽量不要改动,保证上线前的代码是“完美”运行的


待更新

相关文章:

【鱼皮-用户中心】笔记

任务&#xff1a;完整了解做项目的思路&#xff0c;接触一些企业及的开发技术 title 企业做项目流程需求分析技术选型 计划一一、前端初始化1. **下载node.js**2. **安装yarn**3. **初始化 Ant Design Pro 脚⼿架&#xff08;关于更多可进入官网了解&#xff09;**4. **开启Umi…...

MUX-VLAN基本概述

目录 1&#xff09;技术背景&#xff1a; 2&#xff09;基本概念&#xff1a; 3&#xff09;配置&#xff1a;进vlan视图下键入 1&#xff09;技术背景&#xff1a; 在企业网络中&#xff0c;各个部门之间网络需要相互独立&#xff0c;通常使用VLAN技术可以实现这一要求。如果企…...

Cursor使用最佳实践总结

#作者&#xff1a;曹付江 文章目录 1、需求文档怎么写2. 项目文件夹选择3.技术栈的选择4.最重要&#xff1a;Cursor中的Rules&#xff08;规则&#xff09;5.对话模式与模型选择6. New Chat&#xff08;新建对话&#xff09;7.自动化测试8.前后端细调的方法9、完整Cursor项目模…...

交错推理强化学习方法提升医疗大语言模型推理能力的深度分析

核心概念解析 交错推理:灵活多变的思考方式 交错推理(Interleaved Reasoning)是一种在解决复杂问题时,不严格遵循单一、线性推理路径,而是交替、灵活应用多种推理策略的方法。这种思维方式与人类专家在处理复杂医疗问题时的思考模式更为接近,表现为一种动态、适应性强的…...

SpringBatch+Mysql+hanlp简版智能搜索

资源条件有限&#xff0c;需要支持智搜的数据量也不大&#xff0c;上es搜索有点大材小用了&#xff0c;只好写个简版mysql的智搜&#xff0c;处理全文搜素&#xff0c;支持拼音搜索&#xff0c;中文分词&#xff0c;自定义分词断词&#xff0c;地图范围搜索&#xff0c;周边搜索…...

常见 Web 安全问题

网站在提供便利的同时&#xff0c;也面临着各种安全威胁。一个小小的漏洞可能导致数据泄露、系统瘫痪&#xff0c;甚至带来不可估量的经济损失。本文介绍几种最常见的 Web 安全问题&#xff0c;包括其原理、危害以及防护策略。 一、SQL 注入&#xff08;SQL Injection&#xff…...

spring切面

概念 两个特点&#xff1a; IOC控制反转AOP主要用来处理公共的代码 例如一个案例就是添加用户&#xff0c;重复的代码包含了记录日志、事务提交和事务回滚等&#xff0c;都是重复的&#xff0c;为了简单&#xff0c;交给AOP来做。 即将复杂的需求分解出不同方面&#xff0c…...

go语言基础|slice入门

slice slice介绍 slice中文叫切片&#xff0c;是go官方提供的一个可变数组&#xff0c;是一个轻量级的数据结构&#xff0c;功能上和c的vector&#xff0c;Java的ArrayList差不多。 slice和数组是有一些区别的&#xff0c;是为了弥补数组的一些不足而诞生的数据结构。最大的…...

使用 HTML + JavaScript 实现可拖拽的任务看板系统

本文将介绍如何使用 HTML、CSS 和 JavaScript 创建一个交互式任务看板系统。该系统支持拖拽任务、添加新任务以及动态创建列,适用于任务管理和团队协作场景。 效果演示 页面结构 HTML 部分主要包含三个默认的任务列(待办、进行中、已完成)和一个用于添加新列的按钮。 <…...

LangChain核心之Runnable接口底层实现

导读&#xff1a;作为LangChain框架的核心抽象层&#xff0c;Runnable接口正在重新定义AI应用开发的标准模式。这一统一接口设计将模型调用、数据处理和API集成等功能封装为可复用的逻辑单元&#xff0c;通过简洁的管道符语法实现复杂任务的声明式编排。 对于面临AI应用架构选择…...

软件评测师 案例真题笔记

2009 软件测试质量 软件测试质量管理要素包括&#xff1a; •测试过程&#xff0c;例如技术过程、管理过程、支持过程。 •测试人员及组织。 •测试工作文档&#xff0c;例如测试计划、测试说明、测试用例、测试报告、问题报告。 软件测试质量控制的主要方法包括&#xff1a;…...

RAG架构中用到的模型学习思考

前言 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;架构结合了检索和生成能力&#xff0c;通过引入外部知识库来提升大语言模型&#xff08;LLM&#xff09;的回答准确性和可靠性。以下是RAG架构中常用的模型及其总结&#xff1a; 一、…...

统信 UOS 服务器版离线部署 DeepSeek 攻略

日前&#xff0c;DeepSeek 系列模型因拥有“更低的成本、更强的性能、更好的体验”三大核心优势&#xff0c;在全球范围内备受瞩目。 本次&#xff0c;我们为大家提供了在统信 UOS 服务器版 V20&#xff08;AMD64 或 ARM64 架构&#xff09;上本地离线部署 DeepSeek-R1 模型的…...

美尔斯通携手北京康复辅具技术中心开展公益活动,科技赋能助力银龄健康管理

2025 年 5 月 30 日&#xff0c;北京美尔斯通科技发展股份有限公司携手北京市康复辅具技术中心&#xff0c;在朝阳区核桃园社区开展 “全国助残日公益服务” 系列活动。活动通过科普讲座、健康检测与科技体验&#xff0c;将听力保健与心脏健康服务送至居民家门口&#xff0c;助…...

《前端面试题:前端响应式介绍》

前端响应式设计完全指南&#xff1a;从理论到实战 掌握响应式设计是构建现代网站的核心能力&#xff0c;也是前端面试的必考内容 一、响应式设计&#xff1a;移动优先时代的必备技能 在当今多设备时代&#xff0c;用户通过手机、平板、笔记本、桌面显示器等多种设备访问网站。…...

Redis Stack常见拓展

Redis JSON RedisJSON 是 Redis Stack 提供的模块之一&#xff0c;允许你以 原生 JSON 格式 存储、检索和修改数据。相比传统 Redis Hash&#xff0c;它更适合结构化文档型数据&#xff0c;并支持嵌套结构、高效查询和部分更新。 #设置⼀个JSON数据,其中$表示JSON数据的根节点…...

Linux 驱动之设备树

Linux 驱动之设备树 参考视频地址 【北京迅为】嵌入式学习之Linux驱动&#xff08;第七期_设备树_全新升级&#xff09;_基于RK3568_哔哩哔哩_bilibili 本章总领 1.设备树基本知识 什么是设备树&#xff1f; ​ Linux之父Linus Torvalds在2011年3月17日的ARM Linux邮件列表…...

12、企业应收账款(AR)全流程解析:从发票开具到回款完成

在商业活动中&#xff0c;现金流如同企业的命脉&#xff0c;而应收管理则是维系这条命脉正常运转的重要保障。许多企业由于对应收账款缺乏有效管理&#xff0c;常常面临资金周转困难的问题。实践证明&#xff0c;建立科学的应收管理体系能够显著提升资金回笼效率&#xff0c;为…...

php 各版本下载

https://windows.php.net/downloads/releases/archives/ 参考资料&#xff1a;php5.6.40 在 win10下安装全过程 ( 图文教程、附官方下载链接 )...

【notepad++】如何设置notepad++背景颜色?

如何设置notepad背景颜色&#xff1f; 设置--语言格式设置 勾选使用全局背景色 例如选择护眼色---80&#xff0c;97&#xff0c;205&#xff1b;...

使用 C++/OpenCV 制作跳动的爱心动画

使用 C/OpenCV 制作跳动的爱心动画 本文将引导你如何使用 C 和 OpenCV 库创建一个简单但有趣的跳动爱心动画。我们将通过绘制参数方程定义的爱心形状&#xff0c;并利用正弦函数来模拟心跳的缩放效果。 目录 简介先决条件核心概念 参数方程绘制爱心动画循环模拟心跳效果 代码…...

Go Modules 详解 -《Go语言实战指南》

Go Modules&#xff08;简称 go mod&#xff09;是 Go 官方推出的包依赖管理系统&#xff0c;自 Go 1.11 起引入&#xff0c;Go 1.16 起成为默认方式&#xff0c;取代了旧的 GOPATH 模式。 本章将全面讲解 Go Modules 的基本原理、使用方法以及常见问题处理。 一、Go Modules 简…...

在Oxygen编辑器中使用DeepSeek

罗马尼亚公司研制开发的Oxygen编辑器怎样与国产大模型结合&#xff0c;这是今年我在tcworld大会上给大家的分享&#xff0c;需要ppt的朋友请私信联系 - 1 - Oxygen编辑器中的人工智能助手 Oxygen编辑器是罗马尼亚的Syncro Soft公司开发的一款结构化文档编辑器。 它是用来编写…...

【LeetCode 热题100】BFS/DFS 实战:岛屿数量 腐烂的橘子(力扣200 / 994 )(Go语言版)

&#x1f30a; BFS/DFS 实战&#xff1a;岛屿数量 & 腐烂的橘子&#xff08;LeetCode 200 & 994&#xff09; 两道图论基础题&#xff0c;涉及 BFS 与 DFS 的应用&#xff0c;主要用于掌握二维网格中遍历与标记访问的技巧&#xff1a; &#x1f3dd;️ 200. 岛屿数量…...

一、基础环境配置

一、虚拟机 主&#xff1a;192.168.200.200 从&#xff1a;192.168.200.201 从&#xff1a;192.168.200.202 二、docker docker基础搭建&#xff0c;有不会的自行百度。 1.目录结构 /opt/software&#xff1a;软件包/opt/module&#xff1a;解压包&#xff0c;自定义脚本…...

论文阅读笔记——FLOW MATCHING FOR GENERATIVE MODELING

Flow Matching 论文 扩散模型&#xff1a;根据中心极限定理&#xff0c;对原始图像不断加高斯噪声&#xff0c;最终将原始信号破坏为近似的标准正态分布。这其中每一步都构造为条件高斯分布&#xff0c;形成离散的马尔科夫链。再通过逐步去噪得到原始图像。 Flow matching 采取…...

SQL Views(视图)

目录 Views Declaring Views Example: View Definition Example: Accessing a View Advantages of Views Triggers on Views Interpreting a View Insertion&#xff08;视图插入操作的解释&#xff09; The Trigger Views A view is a relation defined in terms of…...

「卫星百科」“绿色守卫”高分六号

高分六号&#xff08;GF-6&#xff09;是中国高分辨率对地观测系统&#xff08;高分专项&#xff09;的重要组成卫星&#xff0c;于2018年6月2日成功发射。高分六号卫星凭借其高时空分辨率、红边波段、宽覆盖能力&#xff0c;在农业、生态、灾害等领域提供了重要的数据支撑。本…...

秋招Day12 - 计算机网络 - IP

IP协议的定义和作用&#xff1f; IP协议用于在计算机网络中传递数据包&#xff0c;定义了数据包的格式和处理规则&#xff0c;确保数据能够从一个设备传递到另一个设备&#xff0c;中间可能经过多个不同的设备&#xff08;路由器&#xff09;。 IP协议有哪些作用&#xff1f;…...

Servlet 快速入门

文章目录 概念SpringBoot 测试案例执行原理传统 Servlet在 SpringBoot &#xff08;嵌入式 Tomcat Spring MVC&#xff09; 中请求从浏览器到业务代码的完整步骤关键点流程图 参考 概念 运行在服务器端的小程序&#xff0c; Servlet 就是一个接口&#xff0c;定义 Java 类被浏…...