【小白可懂】SpringBootWeb入门

news2024/11/18 8:39:36

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)

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

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

相关文章

静态分析-RIPS-源码解析记录-03

既然有源码可以debug,那么直接跑测试用例,来跟踪处理逻辑感觉比直接看代码理逻辑更快一些,尤其是涉及到了扫描阶段,不然不容易弄清某刻某个变量的取值。 对于所有漏洞而言,都是由sink点到source点检测是否有过滤函数&…

创作纪念日(一周年)

机缘 我进入CSDN成为创作者是去年2023年的五月份,当时是在学校报名了蓝桥杯单片机组的比赛,觉得单片机方面有许多精妙之处,并且自学初学单片机实在有许多奇巧的设计点,有许多编程与硬件实际运行需要磨合的地方,这些惊…

idea中使用git拉取代码详细操作

注意:解决 Git拉取代码和本地代码丢失问题请点这里查看 以textGit文件为例: 下图:本地刚拉取远程的代码 git上的代码 1、在本地对代码进行修改 2、在git上对代码进行修改,模拟其他人对此文件的提交修改 3、拉取远程代码 4、合并自…

栈实现队列

一、分析 栈的特点是先出再入,而队列的特点为先入先出,所以我们创造两个栈,一个用来存放数据,一个用来实现其它功能此时栈顶为队尾;当要找队头数据时将前n-1个数据移入到另一个栈中,此时剩余那个数据为队头…

多模态CLIP和BLIP

一、CLIP 全称为Contrastive Language-Image Pre-Training用于做图-文匹配,部署在预训练阶段,最终理解为图像分类器。 1.背景 以前进行分类模型时,存在类别固定和训练时要进行标注。因此面对这两个问题提出CLIP,通过这个预训练…

制造业如何选择合适的项目管理软件?(内含软件推荐)

近期,收到很多小伙伴的提问:“想了解制造行业如何选择到合适的项目管理软件?”在竞争激烈的市场环境中,有效的项目管理对于制造业的发展至关重要,而项目管理软件则是重要支撑,能帮助企业更好地规划和跟踪项…

ITMS-91053: Missing API declaration

1. 添加PrivacyInfo.xcprivacy File → New → File → App Privacy 2. 格式 3. 已知对应关系 NSPrivacyAccessedAPICategoryFileTimestamp 3B52.1: Files provided to app by user, per documentation:File Timestamp NSPrivacyAccessedAPICategoryDiskSpace …

BW4HANA混合建模 用ADSO的哪个视图?

写日志的ADSO除了1,2,3表之外。还会有6,7,8view。8view是上了BW4HANA2.0之后激活ADSO就会生成的。如果旧版本没有8,那就RSDG_ADSO_ACTIVATE激活一下。 如果勾了外部HANA视图,那就等于说还有一个HANA view。 首先咱知道ADSO是BW里面用来物理存储&#xf…

Web前端一套全部清晰 ⑦ day4 CSS.2 复合选择器、CSS特性、背景属性、标签的显示模式

别人的议论,那是别人的,你的人生,才是你的 —— 24.5.7 一、复合选择器 定义:由两个或多个基础选择器,通过不同的方式组合而成 作用:更准确、更高效的选择目标元素(标签) 1.后代选择…

选购洗地机有哪些技巧?2024洗地机全面解析,618洗地机综合对比

洗地机作为人们生活中智能清洁工具的代表,它自带清/污水箱,不用手洗滚刷,既可以吸尘也可以自动识别并清洗地板上的干湿垃圾和顽固污渍,它以多功能一体化的设计改善了家务清洁的效率和体验。那么如何在众多洗地机品牌中&#xff0c…

1016: 插入排序算法实现

解法&#xff1a; /* 插入排序 */ void insertionSort(vector<int>& nums) {// 外循环&#xff1a;已排序区间为 [0, i-1]for (int i 1; i < nums.size(); i) {int base nums[i], j i - 1;// 内循环&#xff1a;将 base 插入到已排序区间 [0, i-1] 中的正确位置…

VBA_MF系列技术资料1-605

MF系列VBA技术资料1-605 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-0…

iOS 安装cocoapds

注意 CocoaPods安装是基于ruby环境的&#xff0c;所以要安装CocoaPods先要安装Ruby环境&#xff0c;国内不能直接安装&#xff0c;只能通过VPN或淘宝的Ruby镜像来访问。 安装过程 gem sources --remove https://rubygems.org/ ** (注意是两个“-”&#xff0c;否则会移除失败) …

看马斯克与OpenAI的爱恨情仇,AGI之路会走向何方?

揭秘马斯克与OpenAI的决裂&#xff1a;AI的未来将何去何从&#xff1f; ©作者|Steven 来源|神州问学 引言 2024 年 3 月 1 日&#xff0c;时任OpenAI联合创始人的Elon Musk(下文简称&#xff1a;马斯克)将现任 CEO、创始人Sam Altman(下文简称&#xff1a;阿尔特曼)告上…

【C语言】—— 动态内存管理

【C语言】——动态内存管理 一、动态内存管理概述1.1、动态内存的概念1.2、动态内存的必要性 二、 m a l l o c malloc malloc 函数2.1、函数介绍2.2、应用举例 三、 c a l l o c calloc calloc 函数四、 f r e e free free 函数4.1、函数介绍4.2、应用举例 五、 r e a l l o …

如何将Hyper-V转VMware?反之亦可

为何要在Hyper-V和VMware之间进行转换呢&#xff1f; 尽管VMware和Microsoft Hyper-V都是当前流行的一类虚拟机监控程序&#xff0c;但它们并不相互兼容。VMware产品使用VMDK格式创建虚拟磁盘&#xff0c;而Hyper-V则使用VHD或VHDX格式创建虚拟磁盘。 有时您可能需要进行这种转…

【Qt-CMake】QT中cmak编译出现CMake Error: The source.. does not match the soused

QT中cmak编译出现CMake Error: The source… does not match the soused 分析 前提是该项目是从另一个路径的项目复制过来的&#xff0c;编写代码时发现无论怎样修改代码&#xff0c;运行后都没有任何变化&#xff0c;以为是qtbug&#xff0c;重构重启都没用&#xff0c;最后…

fatal: fetch-pack: invalid index-pack output

解决方案&#xff1a;git clone --depth1 要克隆的git地址 下载最近一次提交的代码 其他分支的内容都不下载 这样整体下载体量就变小了 执行命令&#xff1a;git clone --depth 1 https://gitlab.scm321.com/ufx/xxxx.git

论文解读--Resolving Target Ambiguities in Automotive Radar Using DDMA Techniques

使用DDMA技术解决汽车雷达中的目标模糊 摘要 多普勒分多址(DDMA)是一种慢时相位编码技术&#xff0c;可以使用传统相控阵硬件实现多输入多输出(MIMO)雷达。然而&#xff0c;众所周知&#xff0c;DDMA会在接收到的多普勒频谱中引起模糊。虽然非对称DDMA已经被提出来缓解目标模糊…

XMind 2023 v23.05.2660软件安装教程(附软件下载地址)

软件简介&#xff1a; 软件【下载地址】获取方式见文末。注&#xff1a;推荐使用&#xff0c;更贴合此安装方法&#xff01; XMind 2023 v23.05.2660被视为顶尖思维导图软件&#xff0c;其界面简洁清爽&#xff0c;功能布局直观简单&#xff0c;摒弃繁复不实。尽管体积小巧&a…