【小白可懂】SpringBootWeb入门

web开发需要的技术栈:

  • 前端web开发:

    • html

    • css

    • javascript

    • Vue

    • Element

    • Nginx

  • 后端web开发:

    • Maven

    • SpringBoot Web 基础篇

    • MySOL

    • SpringBoot Mybatis

    • SpringBoot Web开发篇

    • SpringBoot web进阶篇

什么是spring?

  • 官网:Spring | Home

  • Spring发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能。

  • SpringBoot可以帮我们尽可能快的去构建应用(简化了配置,快速开发)官方推荐、企业主流

SpringBootWeb入门

  • 需求:使用SpringBoot开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串“Hello World~”

  • 步骤:

第二步:定义HelloController类,添加方法 hello,并添加注解

在com.itheima这个包下创建一个类

连包带类一起创建请求处理类

建立一个简单的方法,设置返回值类型,和返回值

加上请求注解---请求处理类,指定处理的方法和路径

第三步:运行测试

        启动刚刚创建项目自动创建的启动类即可

        程序运行会自动占用一个端口号8080,打开浏览器输入网址:localhost:8080/hello,回车即可,如果控制台和浏览器都返回了hello world即是成功了

    1. 第一步:创建springboot工程并勾选web开发相关依赖。

      next下一步

      Finish联网构建项目

      构建项目的进度条等待下载即可

      为了方便学习观看,可以帮面几个文件和文件夹删除

      看起来清爽很多

      在src/main/java/com.itheima/的目录下有一个SpringbootWebQuickstartApplication启动类(用来启动springboot工程)


HTTP协议

响应码大全:https://cloud.tencent.com/developer/chapter/13553

  • localhost:8080/hello输入到浏览器地址栏回车时候,会自动在前面加上http://,http://就是HTTP协议,全称:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

    • 特点:

      • 基于TCP协议:面向连接,安全

      • 基于请求-响应模型的:一次请求对应一次响应

      • HTTP是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的

        • 优缺点:速度快但是多次请求之间不能共享数据

  • HTTP-请求协议

    • 请求方式:

      • GET(没有请求体,数据在请求头上传输,请求大小有限制)、

      • POST(有请求体(和请求头空一行),存放请求参数,请求大小没有限制)

    • 请求行:请求数据的第一行:(请求方式+资源路径+协议)

    • 请求头:格式key:value

      • Host请求的主机名
        User-Aget浏览器版本
        Accept表示浏览器能接收的资源类型
        Accept-Langage表示浏览器偏好的语言,服务器可以据此返回不同语言的网页
        Accept-Encoding表示浏览器可以支持的压缩类型
        Content-Type请求体的数据类型
        Content-Length请求体的大小(单位:字节)
  • HTTP-响应协议

    • 响应行+响应头+响应体

    • 响应状态码

    • 常见响应码

    • 常见响应头

  • HTTP-协议解析

    • 自定义服务器(通过java网络编程的技术+多线程,通过输入流来获取数据,通过输出流来响应数据)运行服务端程序,然后通过浏览器访问即可(很繁琐,代码量很多)

    • web服务器软件

      演示一下 Tomcat服务器怎么部署项目:

      • 第一步:安装tomcat软件(是一个压缩文件,找一个地方解压放置即可),官方网站:Apache Tomcat® - 欢迎!

      • 第二步:部署demo项目到web服务器

      • 将demo文件夹复制一份,复制到tomcat的webapps目录下

      • 第三步:启动服务器,浏览器可以访问,同时别人的电脑输入服务器的ip地址也可以访问到这个静态网页

Tomcat简介

  • 概念: Tomcat是Apache 软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/jSP少量JavaEE规范

  • javaEE:Java Enterprise Edition,Java企业版。指ava企业级开发的技术规范总和。包含13项技术规范:JDBC、JNDI、EIB、RMI、JSP、Servlet、XML、JMS、java IDL、JTS、JTA、JavaMail、JAF

  • Tomcat 也被称为 Web容器、Servlet容器。Servlet程序需要依赖于Tomcat才能运行

  • 官网:https://tomcat.apache.org/

Tomcat基本使用

  • 下载:官网下载,地址 https://tomcat.apache.org/download-90.cgi

  • 安装:绿色版,直接解压即可

  • 卸载:直接删除目录即可

  • 目录解释:

    • 将部署的文件放置在webapps里面即可

  • 启动:双击:bin\startup.bat

  • 关闭:

    • 直接x掉运行窗口:强制关闭

    • >bin\shutdown.bat:正常关闭

    • Ctrl+C:正常关闭

  • 常见问题:

    • 一闪而过:查看一下自己JAVA_HOME有没有配置成功

    • 检查端口号是不是被占用

      • 配置端口号的修改:在conf/serve.xml下

http协议的默认端口号是80,如果修改的端口号为80,则访问的时候就不需要加上端口号

创建springboot项目时候会自动下载官方模板,内嵌了Tomcat,所以以后Tomcat单独的软件很少使用到,一般都是使用springboot

请求响应

请求:

  1. Postman(功能强大的接口测试工具)(安装忽略)

    1. 当前最主流的开发方式是前后端分离开发,后端开发一个功能就可以用Postman来测试是否正常,Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件,作用:常用于进行接口测试

  2. 简单参数

    1. 原始方式:在原始的web程序中,获取请求参数,需要通过HttpServletRequst对象手动获取

    2. springboot方式来获取请求:简单参数{参数名与形参变量相同,定义形参即可接收参数,}

      如果参数名和形参不一样名字,想接收需要使用@RequestParam完成映射:

    3. 总结:

  3. 实体参数

    1. 简单实体对象:请求参数名和形参对象属性名相同,定义POJO(负责放置实体类的文件夹)接收即可,意思就是请求的参数很多的时候可以打包成一个实体类进行接收,要求:参数的名字必须在类里面的属性一致

    2. 负责实体参数对象:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套的POJO属性参数

  4. 数组集合参数

    1. 数组参数:请求参数名与形参名称相同且请求参数为多个,定义数组类型形参接收参数即可

    2. 集合参数接收:使用@RequestParam绑定参数关系

  5. 日期参数:

    1. 日期参数:使用@DataTimeFormat注解完成日期参数格式转换

  6. Json参数(请求方式需要放在请求体上,所以不能使用get)

    1. 怎么请求:

    2. JSON参数:JSON数据键名与形参对象属性名相同,定义pojo类型形参接收即可,需要使用@RequestBody标识

  7. 路径参数:通过请求URL直接传递参数,使用{...}来标识该路径参数,需要使用@PathVariable获取路径参数

响应数据

@ResponseBody

  1. 类型:方法注解、类注解

  2. 位置:Controller方法上/类上

  3. 作用:将方法返回值作为直接响应,如果返回值类型是 实体对象/集合将会转换为JSPN格式响应

  4. 说明:@RestController= @Controller+@ResponseBody

  5. 不同的返回值类型:不同的格式(不便管理)

  6. 统一响应结果:

响应案例

步骤:

  1. 在pom.xml文件中引入dom4j的依赖,用于解析XML文件

  2. 引入资料中提供的解析XML的工具类XMLParserUtils、对应的实体类Emp、XML文件 emp.xml

  3. 引入资料中提供的静态页面文件,放在resources下的static目录下

  4.   查看更多请关注下方wx公众号,后台留言:SpringbootWeb入门,即可免费查阅权,谢谢支持,辛苦啦,祝大家周末幸福,作者正在备赛蓝桥杯国赛,有感兴趣的,可以随时交流:wx:15692400246)

分层解耦----三层架构

  •  查看更多请关注下方wx公众号,后台留言:SpringbootWeb入门,即可免费查阅权,谢谢支持,辛苦啦,祝大家周末幸福,作者正在备赛蓝桥杯国赛,有感兴趣的,可以随时交流:wx:15692400246)


三层结构编写:

  •    查看更多请关注下方wx公众号,后台留言:SpringbootWeb入门,即可免费查阅权,谢谢支持,辛苦啦,祝大家周末幸福,作者正在备赛蓝桥杯国赛,有感兴趣的,可以随时交流:wx:15692400246)


  • 逻辑实现:

  •    查看更多请关注下方wx公众号,后台留言:SpringbootWeb入门,即可免费查阅权,谢谢支持,辛苦啦,祝大家周末幸福,作者正在备赛蓝桥杯国赛,有感兴趣的,可以随时交流:wx:15692400246)

IOC & DI 的入门

  •  查看更多请关注下方wx公众号,后台留言:SpringbootWeb入门,即可免费查阅权,谢谢支持,辛苦啦,祝大家周末幸福,作者正在备赛蓝桥杯国赛,有感兴趣的,可以随时交流:wx:15692400246)



  •  

IOC详解:

  •   查看更多请关注下方wx公众号,后台留言:SpringbootWeb入门,即可免费查阅权,谢谢支持,辛苦啦,祝大家周末幸福,作者正在备赛蓝桥杯国赛,有感兴趣的,可以随时交流:wx:15692400246)



  •  

DI详解:

  •  查看更多请关注下方wx公众号,后台留言:SpringbootWeb入门,即可免费查阅权,谢谢支持,辛苦啦,祝大家周末幸福,作者正在备赛蓝桥杯国赛,有感兴趣的,可以随时交流:wx:15692400246)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络爬虫概述与原理

网络爬虫概述与原理 网络爬虫简介狭义上理解功能上理解常见用途总结 网络爬虫分类通用网络爬虫聚焦网络爬虫增量网络爬虫深度网络爬虫 网络爬虫流程网络爬虫采集策略深度有限搜索策略广度优先搜索策略 网络爬虫简介 通过有效地获取网络资源的方式,便是网络爬虫。网…

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二)

基于 LlaMA 3 LangGraph 在windows本地部署大模型 (二) #Options local_llm llama3 llm ChatOllama(modellocal_llm, format"json", temperature0) #embeddings #embeddings OllamaEmbeddings(model"nomic-embed-text") embed…

蛋糕店做配送小程序的作用是什么

蛋糕烘焙除了生日需要,对喜吃之人来说往往复购率较高,除线下实体店经营外,更多的商家选择线上多种方式获客转化、持续提高生意营收,而除了进驻第三方平台外,构建品牌私域自营店铺也同样重要。 运用【雨科】平台搭建蛋…

Excel中实现md5加密

1.注意事项 (1)在Microsoft Excel上操作 (2)使用完,建议修改的配置全部还原,防止有风险。 2.准备MD5宏插件 MD5加密宏插件放置到F盘下(直接F盘下,不用放到具体某一个文件夹下) 提示:文件在文章顶部&…

营业执照OCR识别接口如何对接

营业执照OCR识别接口也叫营业执照文字识别OCR接口,指的是传入营业执照图片,精准识别静态营业执照图像上的文字信息。那么营业执照OCR识别接口如何对接呢? 首先我们找到一家有做营业执照OCR识别接口的服务商,数脉API,然后注册账户…

台阶仪测量膜厚原理及优势

台阶仪,也称为探针式轮廓仪或接触式表面轮廓测量仪,主要用于台阶高、膜层厚度、表面粗糙度等微观形貌参数的测量。 台阶仪的工作原理 台阶仪的核心部件是一个精密的触针或探针,它被安装在一个高度可调的支架上。当触针沿被测表面轻轻滑过时…

【免费】WordPress LskyPro0.1.0版本兰空图床插件无法启用修改代码方法

注:启用插件报错,按提示打开main.php文件找到215行代码,错误原因是函数里多了一个,号,应该是忘记去掉了,把,号去掉就可以了 目录 项目介绍功能计划功能快速入门相关文章: 项目介绍 此项目为通过…

MVC WebAPI

创建项目 创建api控制器 》》》 web api 控制器要继承 ApiController 》》》 数据会自动装配 及自动绑定 》》》》FromBody: Post请求的基础类型的参数和Get请求有点不一样,我们知道Get请求的参数是通过Url来传递的,而Post请求则是通过H…

整除C++

题目&#xff1a; 思路&#xff1a; 循环遍历7(可以被 7 整除的正整数最小为7)~n&#xff0c;如果i%70&#xff0c;就说明i可以被7整除. 代码&#xff1a; #include<iostream> using namespace std; int n;//一个正整数 int main(){scanf("%d",&n);//输入…

SP-01NM7电动机保护器 施耐德 EOCR-SP

EOCR-SP-01NM7电动机保护器品牌:施耐德 名称:电机保护器 型号:EOCRSP-01NF7密集型设计 ■电子式多保护功能 宽的电流调整范围(10:1) EOCR主要产品有电子式电动机保护继电器&#xff0c;电子式过电流继电器&#xff0c;电子式欠电流继电器&#xff0c;电子式欠电压继电器&a…

有哪些是618必买的数码好物,这几款千万别错过

备受瞩目的618购物节即将拉开帷幕&#xff0c;身为数码领域的资深发烧友&#xff0c;我迫不及待地要为大家呈现一系列精心挑选的数码产品。无论您是热衷于追求科技尖端的先锋者&#xff0c;还是希望用智能设备为生活增添一抹亮色的品味人士&#xff0c;这里总有一款能让您心动的…

RS3236-ADJ8YF5功能和参数介绍及PDF资料

RS3236-ADJ8YF5功能和参数介绍及PDF资料-公司新闻-配芯易-深圳市亚泰盈科电子有限公司 品牌: RUNIC(润石) 封装: SOT-23-5 描述: 输出电压可调(参考电压0.81V),Iout500mA(Max),Vin7.5V(Max),带过温保护 输出类型: 可调 最大输入电压: 7.5V 输出电压: 810mV~6.6V 最大输出电流…

【高阶数据结构】LRU Cache -- 详解

一、什么是 LRU Cache LRU&#xff08;Least Recently Used&#xff09;&#xff0c;意思是最近最少使用&#xff0c;它是一种 Cache 替换算法。 什么是 Cache&#xff1f; 狭义的 Cache 指的是位于 CPU 和主存间的快速 RAM&#xff0c;通常它不像系统主存那样使用 DRAM 技术&…

物联网SCI期刊,潜力新刊,审稿速度快,收稿范围广泛!

一、期刊名称 Internet of Things 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;物联网 影响因子&#xff1a;5.9 中科院分区&#xff1a;3区 出版方式&#xff1a;订阅模式/开放出版 版面费&#xff1a;选择开放出版需支付$2310 三、期刊征稿范围 I…

企业大文件传输之安全数据传输的重要性

企业数据安全性的维护直接关系到企业的市场竞争力乃至其生存的根基。数据的保护不仅涉及到保护企业的商业秘密&#xff0c;也关乎到客户隐私的保护&#xff0c;更触及到国家安全的敏感层面。因此&#xff0c;保障数据在传输过程中的安全&#xff0c;成为了每个企业和组织必须面…

71.42%沉睡会员被激活,万家乐如何重构会员营销全链路?

​“我们之前是客户到店后先手工登记客户信息&#xff0c;送个小礼品&#xff0c;再让导购做二次跟进。粗略算过&#xff0c;客户体量几十万是有的&#xff0c;但是人工跟进的效率是快是慢&#xff1f;隐性流失了多少客户&#xff1f;就不好说了。”这是在跟企业交流时&#xf…

OpenCV | 项目 | 虚拟绘画

OpenCV | 项目 | 虚拟绘画 捕捉摄像头 如果在虚拟机中运行&#xff0c;请确保虚拟机摄像头打开。 #include<opencv2/opencv.hpp>using namespace cv; using namespace std;int main() {VideoCapture cap(0);Mat img;while(1) {cap.read(img);imshow("Image"…

应用案例 | 商业电气承包商借助Softing NetXpert XG2节省网络验证时间

一家提供全方位服务的电气承包商通过使用Softing NetXpert XG2顺利完成了此次工作任务——简化了故障排查的同时&#xff0c;还在很大程度上减少了不必要的售后回访。 对已经安装好的光纤或铜缆以太网网络进行认证测试可能会面临不同的挑战&#xff0c;这具体取决于网络的规模、…

【八】centos7.6安装chrome和chromedriver并启动selenium

学习来源&#xff1a; 安装chrome和chrome driver -----https://blog.csdn.net/zdlcome/article/details/133813441 安装Python11 -----https://blog.csdn.net/weixin_43741408/article/details/130251102 chromedriver下载地址 -----https://googlechromelabs.github.io/chrom…

ICode国际青少年编程竞赛- Python-4级训练场-嵌套for循环入门

ICode国际青少年编程竞赛- Python-4级训练场-嵌套for循环入门 1、 for i in range(3):Dev.step(3)for j in range(3):Dev.turnLeft()Dev.step(-2)Dev.turnLeft()2、 for i in range(3):Dev.turnLeft()Dev.step(4)Dev.turnRight()Dev.step(2)for i in range(4):Dev.step(2)D…