有关spring,springboot项目的知识点

文章目录

  • 1.Spring基本介绍
    • 1.1Spring官网
    • 1.2Spring的发展
  • 2.SpringBoot
    • 2.1SpringBoot快速入门
      • 2.1.1创建SpringBoot工程,并勾选web开发相关依赖
      • 2.1.2定义HelloController类,并添加方法helllo,且添加注解
      • 2.1.3运行测试
  • 3.HTTP协议
    • 3.1HTTP协议的概念
      • 3.1.1HTTP的特点
    • 3.2HTTP-请求协议
      • 3.2.1常见的请求头
      • 3.2.2请求体
      • 3.1.3请求方式
    • 3.2HTTP-响应协议
      • 3.2.1常见响应码
      • 3.2.2常见的响应头
  • 4.Web服务器-Tomcat
    • 4.1Tomcat服务器的官网
    • 4.2Tomcat的使用
      • 4.2.1启动Tomcat服务器
      • 4.2.2暂停Tomcat服务器
      • 4.2.3访问Tomcat
      • 4.2.4部署项目
      • 4.2.5起步依赖

1.Spring基本介绍

1.1Spring官网

Spring官网的网址:Spring | Home

1.2Spring的发展

spring到今天形成一种开发生态圈,Spting提供了若干个子项目,每个项目用于完成特定的功能

2.SpringBoot

2.1SpringBoot快速入门

需求:使用SpringBoot开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~"
实现步骤:

  1. 创建SpringBoot工程,并勾选web开发相关依赖
  2. 定义HelloController类,添加方法hello,并添加注解
  3. 运行测试

2.1.1创建SpringBoot工程,并勾选web开发相关依赖

![[Pasted image 20241017170728.png]]

![[Pasted image 20241017202220.png]]

![[Pasted image 20241017203216.png]]

2.1.2定义HelloController类,并添加方法helllo,且添加注解

注意:

  1. 要添加注解@RestController证明类是请求处理类
  2. 使用标签@RequestMapping注明浏览器需要处理的指令
    ![[Pasted image 20241017204202.png]]

2.1.3运行测试

![[Pasted image 20241017204508.png]]!
[[Pasted image 20241017205147.png]]

![[Pasted image 20241017205502.png]]

3.HTTP协议

3.1HTTP协议的概念

3.1.1HTTP的特点

  1. 基于TCP协议:面向连接,安全
  2. 基于请求-响应模型的:一次请求对应一次响应
  3. HTTP协议是无状态的协议:对事务处理没有记忆能力,每次请求-响应都是独立的
  • 缺点:多次请求间不能共享数据
  • 优点:速度快
    概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
    ![[Pasted image 20241018101316.png]]

3.2HTTP-请求协议

原始数据

  1. 第一行:请求行
  2. 第二行起:请求头(请求头的变量名+请求头的值)
    ![[Pasted image 20241018104906.png]]

3.2.1常见的请求头

  1. Host:请求的主机名
  2. User-Agent;浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0…Chrome/79,IE浏览器的标识类似Mozilla/5.0(WindowsNT…) like Gecko
  3. Accept:表示浏览器能接收的资源类型,如text/*(文本),image/*((文件)或者*/*(所有)
  4. Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页
  5. Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip,deflate等。
  6. Content-Type:请求主体的数据类型。
  7. Content-Length:请求主体的大小(单位:字节)

3.2.2请求体

POST请求特有的
用于存放请求参数

3.1.3请求方式

![[Pasted image 20241018120104.png]]

  1. 请求方式GET:请求参数在请求行中,没有请求体,GET请求大小是有限制的。
    ![[Pasted image 20241018115414.png]]

  2. 请求方式POST:请求参数在请求体中,POST请求大小是没有限制的
    在这里插入图片描述

3.2HTTP-响应协议

响应协议的内容包括响应头,响应行,响应体

  1. 响应行:响应数据第一行(协议,状态码,描述状态码的状态)
  2. 响应头:从第二行开始,格式key:value
  3. 响应体:最后一部分,存放响应数据

3.2.1常见响应码

  1. 1xx:响应中-临时状态码,表示请求已经接收,告诉客户端应该继续请求或者如果它已经完成则忽略它。
  2. 2xx:成功-表示请求已经被成功接收,处理已完成。
  3. 3xx:重定向-重定向到其他地方;让客户端再发起一次请求以完成整个处理。
  4. 4xx:客户端错误-处理发生错误,责任在客户端。如:请求了不存在的资源、客户端未被授权、禁止访问等。
  5. 5xx:服务器错误-处理发生错误,责任在服务端。如:程序抛出异常等。
  1. 200-英文描述:OK-客户端请求成功,即处理成功,这是我们最想看到的状态码
  2. 302-英文描述:Found-指示所请求的资源已移动到由Location响应头给定的URL,浏览器会自动重新访问到这个页面
  3. 304-英文描述:Not Modified-告诉客户端,你请求的资源至上次取得后,服务端并未更改,你直接用你本地缓存吧。隐式重定向
  4. 400-英文描述:Bad Request-客户端请求有语法错误,不能被服务器所理解
  5. 403-英文描述:Forbidden-服务器收到请求,但是拒绝提供服务,比如:没有权限访问相关资源
  6. 404-英文描述:Not Found-请求资源不存在,一般是URL输入有误,或者网站资源被册除了
  7. 500-英文描述:Internal server Error-服务器发生不可预期的错误。服务器出异常了
    响应码的网址:HTTP - 状态 | Status - 403 Forbidden - 开发者手册 - 腾讯云开发者社区-腾讯云
    以404状态码为例
    ![[Pasted image 20241022200138.png]]

3.2.2常见的响应头

  1. Content-Type:表示该响应内容的类型,例如text/html,application/json。
  2. Content-Length:表示该响应内容的长度(字节数)。
  3. Content-Encoding:表示该响应压缩算法,例如gzip。
  4. Cache-Control:指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒。
  5. Set-Cookie:告诉浏览器为当前页面所在的域设置cookie。

4.Web服务器-Tomcat

Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷,主要功能是"提供网上信息浏览服务”。

4.1Tomcat服务器的官网

官网:Apache Tomcat® - Welcome!
[[Pasted image 20241025102739.png]]

4.2Tomcat的使用

4.2.1启动Tomcat服务器

![[Pasted image 20241025103110.png]]

更改最初打开Tomcat服务器中文是乱码的情况
![[Pasted image 20241025104512.png]]

![[Pasted image 20241025105034.png]]

4.2.2暂停Tomcat服务器

  1. 直接x掉运行窗口:强制关闭
  2. bin\shutdown.bat:正常关闭
  3. Ctrl+C:正常关闭(一般电脑可能会加fn做信号-Ctrl+C+fn)

4.2.3访问Tomcat

![[Pasted image 20241025105407.png]]

当Tomcat使用的默认端口其他程序使用的端口冲突了,可以尝试修改Tomcat使用的端口8080
![[Pasted image 20241025110142.png]]

4.2.4部署项目

![[Pasted image 20241025110853.png]]

![[Pasted image 20241025113430.png]]

![[Pasted image 20241025113417.png]]

4.2.5起步依赖

  1. spring-boot-tarter-web:包含了web应用开发所需要的常见依赖。
  2. pring-boot-starter-test:包含了单元测试所需要的常见依赖。
    官方提供的starter:

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

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

相关文章

YOLOv8_ ByteTrack目标跟踪、模型部署

YOLOv8目前支持BoT-SORT和ByteTrack两种多目标跟踪算法,默认的目标跟踪算法为BoT-SORT 如果要使用ByteTrack跟踪算法,可以添加命令行参数trackerbytetrack.yaml 一、 VisDrone2019数据集 VisDrone:无人机目标检测和追踪基准数据集。&#x…

《云原生安全攻防》-- K8s攻击案例:权限维持的攻击手法

在本节课程中,我们将一起深入了解K8s权限维持的攻击手法,通过研究这些攻击手法的技术细节,来更好地认识K8s权限维持所带来的安全风险。 在这个课程中,我们将学习以下内容: K8s权限维持:简单介绍K8s权限维持…

【大模型理论篇】主流大模型的分词器选择及讨论(BPE/BBPE/WordPiece/Unigram)

1. 背景分析 分词是将输入和输出文本拆分成更小单位的过程,使得大模型能够处理。token可以是单词、字符、子词或符号,取决于模型的类型和大小。分词可以帮助模型处理不同的语言、词汇和格式,并降低计算和内存成本。分词还可以通过影响token的…

10-1.idea中的项目结构,辅助快捷键,模块的操作

idea中的项目结构和辅助快捷键 IDEA中项目结构 首先是创建项目,新建的项目中有子项目,我们可以创建模块 然后在模块中我们可以创建包,在包中的SRC中写我们的源代码,也就是类。 VScode写Java项目 如何你电脑比较卡的话&#…

Java中自增自减,赋值,逻辑,三元运算符

自增自减运算符 在某个变量前面或者后面加一--在某个变量前面或者后面减一 可以看见,当a输出时,a是没有变化的,说明如果是在变量后就是先使用再增加,而b输出时,b增加了1,说明如果是在变量前面就是先增加再…

【elkb】linux麒麟v10安装ELKB 8.8.X版本(ARM架构)

下载软件 相关版本信息 elasticsearch:8.8.1kibana:8.8.1logstash:8.8.1filebeat:8.8.1 下载地址 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.1-linux-aarch64.tar.gzhttps://artifacts.elastic…

配置nginx服务通过ip访问多网站

文章目录 第一种方法第二种方法 先关闭防火墙 # systemctl stop firewalld # setenforce 0第一种方法 #mntui 第二种方法 # vim /etc/nginx/conf.d/test_ip.conf # cat /etc/nginx/conf.d/test_ip.conf server {listen 192.168.234.100:80;#server_nameroot /test/100;loca…

PostgreSQL使用clickhouse_fdw访问ClickHouse

Postgres postgres版本:16(测试可用)docker 安装 插件安装 clickhouse_fdw: https://github.com/ildus/clickhouse_fdw 安装命令 git clone gitgithub.com:ildus/clickhouse_fdw.git cd clickhouse_fdw mkdir build && cd build…

文件下载漏洞

文件安全 文件下载 常见敏感信息路径 Windows C:\boot.ini //查看系统版本 C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件 C:\Windows\repair\sam //存储系统初次安装的密码 C:\Program Files\mysql\my.ini //Mysql配置 C:\Program Files\mysql\data\mysql\user.…

【目标检测01】真实框、预测框、锚框和交并比IoU

文章目录 1. 任务定义2. 基本概念2.1 边界框(bounding box)2.2 真实框、预测框和锚框2.3 交并比 (IoU)2.4 代码实现 1. 任务定义 目标检测的主要目的是让计算机可以自动识别图片或者视频帧中所有目标的类别,并在该目标周围绘制边界框&#x…

Midjourney上线图像编辑,他们终于知道什么叫开放了。

Midjourney作为文生图领域毋庸置疑的头号选手,之前几乎每次推新都非常惊艳。 前段时间也看到很多消息说Midjourney v7已经训练完毕了,但我左等右等,没等到v7的发布。 却提前等来了可能会更加好玩的一个功能——图像编辑模式。 Midjourney的…

2024-网鼎杯第二次模拟练习-web02

进入做题页面,经过信息搜集和目录扫描,发现只有一个公告是可以利用的 http://0192c74e0f9871c2956795c804c3dde3.8nfp.dg01.wangdingcup.com:43014/OA_announcement.php?id1 这个后面有一个明显的注入点,经过多次刷新和快速刷新后发现&…

Linux中DNS搭建

文章目录 一、DNS介绍1.1、DNS是什么1.2、DNS的工作原理1.3、DNS的域名结构 二、Bind介绍2.1、bind概述2.2、bind主要配置文件 三、DNS安装四、主要配置文件解析(除/etc/named.conf)4.1、/etc/named.rfc1912.zones4.2、/etc/rc.d/init.d/named4.3、/etc/…

批处理操作的优化

原来的代码 Override Transactional(rollbackFor Exception.class) public void batchAddQuestionsToBank(List<Long> questionIdList, Long questionBankId, User loginUser) {// 参数校验ThrowUtils.throwIf(CollUtil.isEmpty(questionIdList), ErrorCode.PARAMS_ERR…

基于neo4j的新冠治疗和新冠患者轨迹的知识图谱问答系统

毕业设计还在苦恼选题&#xff1f;想做一个兼具前沿性和实用性的技术项目&#xff1f;了解下这款基于Neo4j的新冠治疗和患者轨迹的知识图谱问答系统吧&#xff01; 系统可以实现两大功能模块&#xff1a;新冠医疗信息和患者活动轨迹的展示与问答。通过图谱技术&#xff0c;你可…

CLion远程开发Ubuntu,并显示helloworld文字框

1.CLion的介绍以及其在远程开发上的优点 1&#xff09;CLion 是一个由 JetBrains 开发的跨平台 C/C 集成开发环境&#xff08;IDE&#xff09;&#xff0c;功能强大。 2&#xff09;CLion的优点&#xff1a; 远程工具链支持&#xff1a;CLion 支持通过 SSH 连接到远程 Ubuntu…

【AIGC】优化长提示词Prompt:提升ChatGPT输出内容的准确性与实用性

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;长提示词的挑战&#x1f4af;谷歌的优化长提示词技术关键因素分析 &#x1f4af;长提示词的设计原则&#x1f4af;优化长提示词的新框架方法&#x1f4af;实验结果分析不…

解决Github下载速度慢的问题

1. 方式一 先把hosts文件先复制一份到其他文件夹下&#xff0c;以免造成不小心改动出现的后果在C盘的C:\Windows\System32\drivers\etc 下的hosts文件 用编辑器打开后&#xff0c;在末尾处添加访问如下的两个网站所返回的两个IP https://github.com.ipaddress.com/ http://gi…

尝鲜electron --将已有vue/react项目转换为桌面应用

Electron 是一个强大的框架&#xff0c;它允许开发者使用 Web 技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;构建跨平台的桌面应用程序。它结合了 Node.js 和 Chromium&#xff0c;就相当于在桌面程序web和游览器,所以只需要简单的配置就可以转换为桌面应用 注意:无…

IDEA关联Tomcat——最新版本IDEA 2024

1.链接Tomcat到IDEA上 添加Tomcat到IDEA上有两种方式&#xff1a; 第一种&#xff1a; &#xff08;1&#xff09;首先&#xff0c;来到欢迎界面&#xff0c;找到左侧的Customize选项 &#xff08;2&#xff09;然后找到Build、Execution、Deployment选项 &#xff08;3&am…