【springboot基础】如何搭建一个web项目?

正在学习springboot,还是小白,今天分享一下如何搭建一个简单的springboot的web项目,只要写一个类就能实现最基础的前后端交互,实现web版helloworld ,哈哈,虽然十分简陋,但也希望对你理解web运作原理有所帮助。

—————————————————————

下面将展示在springboot框架下搭建一个基础的web项目

预期功能:

能够使web项目运行在本地tomcat服务器上,可以响应用户的GET/POST请求并将响应信息返回到浏览器上。

开发环境:

IDEA 2023、java17、Maven 3.9.6

关于开发工具和环境可参考下面链接:

http://t.csdnimg.cn/dfE11

—————————————————————

创建springboot项目

选择Spring Initializr快速搭建springboot项目,填写好一些工程项目信息

新项目创建如下

Maven设置,有关Maven的下载和配置请可参考我之前的文章

文章链接:

http://t.csdnimg.cn/brbdx

—————————————————————

添加web的起步依赖

在pom.xml文件中添加web的起步依赖

依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>3.2.0</version>
</dependency>

补充:依赖不会写咋办?去搜!

下面网站可以搜到各种你想用的依赖。

网站:https://mvnrepository.com/

搜spring-boot-starter-web (其实输入一个web也可以找到)


你可能发现依赖报红了,这是常有的事,说明你的maven工具的依赖库中还没有这个依赖

:找到右上角的Maven标志,点击刷新按钮,等待程序自动下载对应依赖即可

下载完成报红就消失了

这时候你点击上方的程序运行按钮,会发现程序将会一直运行,因为springboot的内置服务器tomcat启动了

理论上现在已经可以在浏览器上访问服务器了,但因为没有还没有URL映射,所以会提示错误信息

—————————————————————

写一个控制类

现在该怎么办?当然是写一个类来响应请求喽!

在HelloController类上添加@RestController注解,使之成为控制类,同时定义一个函数,这个函数将会响应GET请求,其中@GetMapping注解实现了URL映射,将URL地址(/hello)与控制类中相应的函数进行关联。

如下图

代码:

package com.kc.springbootweb.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@GetMapping("/hello")public String hello(){return "hello World!";}
}

注:用@RestController或@Controller注解修饰的类将成为控制类,可以用于响应HTTP请求

测试:

控制类写好了,重启一下程序,直接在地址栏输入localhost:8080/hello,不出意外的话浏览器上会显示后端返回的字符串

—————————————————————

如何获取用户请求中的参数?

在很多情况下后端要获取前端传入的数据,下面将演示一下如何获取用户传入的参数

再写一个函数如下

@GetMapping("/hello2")
public String hello2(String name){return "你好"+name;
}

重启程序,在浏览器中进行测试

用户传入的参数会自动传入到对应方法的参数中,"?"后面是参数名和值,且url中的参数名必须要与函数的参数名一致

—————————————————————

如何响应post请求?

除了get请求,后端也会接收到大量post请求

一般post请求会用到表单,但这里暂不涉及前端内容,下面我将借助软件ApiPost来向服务器发送一个post请求

软件下载地址:https://www.apipost.cn/?utm_source=10040

添加函数如下:

@PostMapping("/hello3")
public String hello3(String username,String password){return "用户名:"+username+" 密码:"+password;
}

发送POST请求

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

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

相关文章

网络新手如何上手水牛社软件?我的建议与看法

水牛社是一款专为电脑用户设计的软件&#xff0c;拥有明确的著作权&#xff0c;其核心功能在于发布和整合各类网络活动任务资源、教程等&#xff0c;内容多元且不设固定分类。其靠谱程度取决于你对软件的了解程度和个人需求的适配性。 软件内部包含五个主要栏目&#xff0c;大…

(八)JSP教程——application对象

application对象是一个比较重要的对象&#xff0c;服务器在启动后就会产生这个application对象&#xff0c;所有连接到服务器的客户端application对象都是相同的&#xff0c;所有的客户端共享这个内置的application对象&#xff0c;直到服务器关闭为止。 可以使用application对…

AlphaFold3: Google DeepMind的的新突破

AlphaFold 3的论文今天在Nature期刊发表啦!这可是AI在生物领域最厉害的突破的最新版本。AlphaFold-3的新招就是用扩散模型去"画出"分子的结构。它一开始先从一团模模糊糊的原子云下手,然后慢慢透过去噪把分子变得越来越清楚。 Alphafold3 我们活在一个从Llama和Sora那…

STM32理论 —— μCOS-Ⅲ(新)

文章目录 1. 任务调度器1.1 抢占式调度 μCos-Ⅲ全称是Micro C OS Ⅲ&#xff0c;由Micriμm 公司发布的一个基于C 语言编写的第三代小型实时操作系统(RTOS)&#xff1b; RTOS 与裸机相比最大的优势在于多任务管理与实时性&#xff0c;它提供了多任务管理和任务间通信的功能&a…

如何切换PHP版本

如果服务器上安装了多个php&#xff0c;可能会导致默认的php版本错误&#xff0c;无法启动swoole等服务&#xff0c; 查看命令行的php版本方法&#xff1a;https://q.crmeb.com/thread/9921 解决方法如下&#xff0c;选一个即可&#xff1a; 一、切换命令行php版本&#xff…

Zabbix5.0——安装与部署

目录 一、zabbix-server(192.168.206.134) 监控方 1. 环境准备 2.安装zabbix 2.1 准备zabbix-repo 2.2清理缓存 2.3安装zabbix主包&#xff08;服务器和代理&#xff09; 2.4安装zabbix前端包 3. 数据库安装 3.1 授权zabbix账号 3.2导入数据库&#xff08;初始化zabbix&#x…

震惊,现在面试都加科技与狠货了

震惊&#xff0c;现在面试都加科技与狠货了 生成式AI盛行的现在&#xff0c;程序员找工作变容易了吗我和老痒喝着大酒&#xff0c;吃着他的高升宴&#xff0c;听他说他面试的各种细节&#xff0c;老狗我只恨自己动作慢了一步&#xff0c;不然现在在那侃侃而谈的就是我了。 面试…

Unity 修复Sentinel key not found (h0007)错误

这个问题是第二次遇到了&#xff0c;上次稀里糊涂的解决了&#xff0c;也没当回事&#xff0c;这次又跑出来了&#xff0c;网上找的教程大部分都是出自一个人。 1.删除这个路径下的文件 C:\ProgramData\SafeNet Sentinel&#xff0c;注意ProgramData好像是隐藏文件 2.在Windows…

若依框架dialog弹窗取消点击空白出关闭

如果想全局取消的话就找到main.js在里面加上下面的一行代码&#xff0c;添加完成之后记得清楚浏览器缓存重新加载js文件。 Element.Dialog.props.closeOnClickModal.default false;如果想指定某个弹窗取消点击空白处关闭&#xff0c;那么就找到那个弹窗加上。添加完毕之后刷新…

小程序如何注销

随着移动互联网的深入发展&#xff0c;管控也越来越严格。现在小程序都要求进行ICP备案&#xff0c;不管是新注册的还是以往注册的。很多商家的小程序本身处于无运营状态&#xff0c;现在要求备案&#xff0c;还不如直接注销。下面&#xff0c;将详细介绍小程序注销的步骤和注意…

C++ 直接初始化 和 拷贝初始化 的区别

参考链接&#xff1a;https://www.jb51.net/article/54773.htm这篇文章主要介绍了C直接初始化与复制初始化的区别深入解析,是很多C初学者需要深入了解的重要概念,需要的朋友可以参考下https://www.jb51.net/article/54773.htm

分享开放原子AtomGit开源协作平台评测报告

AtomGit平台的总体介绍 开放原子开源基金会是致力于推动全球开源事业发展的非营利机构&#xff0c;于 2020 年 6 月在北京成立&#xff0c;由阿里巴巴、百度、华为、浪潮、360、腾讯、招商银行等多家龙头科技企业联合发起。目前有三个主要机构设置&#xff0c;技术监督委员会&…