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

news2024/12/28 18:01:40

正在学习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.coloradmin.cn/o/1657934.html

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

相关文章

车载测试系列:车载蓝牙测试(三)

HFP测试内容与测试方法 2.3 接听来电&#xff1a;测试手机来电时&#xff0c;能否从车载蓝牙设备和手机侧正常接听】拒接、通话是否正常。 1、预置条件&#xff1a;待测手机与车载车载设备处于连接状态 2、测试步骤&#xff1a; 1&#xff09;用辅助测试机拨打待测手机&…

【JavaWeb】Servlet+JSP+EL表达式+JSTL标签库+Filter过滤器+Listener监听器

需要提前准备了哪些技术&#xff0c;接下来的课才能听懂&#xff1f; JavaSE&#xff08;Java语言的标准版&#xff0c;Java提供的最基本的类库&#xff09; Java的开发环境搭建Java的基础语法Java的面向对象数组常用类异常集合多线程IO流反射机制注解Annotation… MySQL&…

CUDA流和事件

CUDA通过流来实现网格级并发。 流和事件 CUDA流是一系列异步的CUDA操作&#xff0c;这些操作按照主机代码确定的顺序在设备上执行。流可以封装这些操作&#xff0c;保持操作的顺序&#xff0c;允许操作在流中排队&#xff0c;并使他们在先前的所有操作之后执行。 这些操作包…

【Linux】在Linux中执行命令ifconfig, 报错-bash:ifconfig: command not found解决方案

一、报错信息 ifconfig 报错-bash:ifconfig: command not found 同时&#xff0c;通过ip addr查看&#xff0c;也看不到IP信息 二、解决方案 找到ifcfg-ens0文件&#xff0c;此文件的目录在/etc/sysconfig/network-scripts目录下 命令&#xff1a;cd /etc/sysconfig/network…

Windows系统本地部署DrawDB数据库设计工具并实现无公网IP远程访问

文章目录 1. Windows本地部署DrawDB2. 安装Cpolar内网穿透3. 实现公网访问DrawDB4. 固定DrawDB公网地址 开发中很多时候都会使用到数据库&#xff0c;所以选择一个好用的数据库设计工具会让工作效率翻倍。在当今数字化时代&#xff0c;数据库管理是许多企业和个人项目的核心。设…

buuctf-misc题目练习二

ningen 打开题目后是一张图片&#xff0c;放进winhex里面 发现PK&#xff0c;PK是压缩包ZIP 文件的文件头&#xff0c;下一步是想办法进行分离 Foremost可以依据文件内的文件头和文件尾对一个文件进行分离&#xff0c;或者识别当前的文件是什么文件。比如拓展名被删除、被附加…

Spring - 9 ( 10000 字 Spring 入门级教程 )

一&#xff1a; MyBatis XML 配置文件 Mybatis 的开发有两种方式&#xff1a; 注解XML 我们已经学习了注解的方式, 接下来我们学习 XML 的方式 MyBatis XML 的方式需要以下两步: 配置数据库连接字符串和 MyBatis写持久层代码 1.1 配置连接字符串和 MyBatis 此步骤需要进…

【经验分享】企业网站建设,不收录的原因有哪些

今天来聊一聊我们做好网站&#xff0c;但是网站排名不高&#xff0c;各大搜索引擎不收录网站的原因&#xff1a; 1.网站结构问题&#xff1a; 公司网站的结构是搜索引擎判断网站内容的关键因素之一。如果网站结构混乱、不清晰&#xff0c;搜索引擎可能难以准确抓取和理解网站的…

汇编--栈和寄存器

栈 栈是一种运算受限的线性表&#xff0c;其限定仅在表尾进行插入和删除操作的线性表&#xff0c;表尾也被叫做栈顶。简单概括就是我们对于元素的操作只能够在栈顶进行&#xff0c;也造就了其先进后出的结构特性。 栈 这种内存空间其实本质上有两种操作&#xff1a;将数据放入…

新款iPad Pro引领AI新纪元:M4芯片揭幕,每秒38万亿次运算惊艳业界

新款iPad Pro搭载了强大的M4芯片&#xff0c;拥有每秒高达38万亿次运算的神经处理单元&#xff0c;AI性能超越当今的AI PC。其外观设计更加接近笔记本电脑&#xff0c;展示了苹果对AI技术的全面拥抱。此次发布不仅是对iPad Pro的一次重大更新&#xff0c;更是为下个月的WWDC发布…

00后抛弃新氧、上游抗议低价,金星又被打脸了

作为“颜值焦虑”的受益者&#xff0c;新氧也面临自己的焦虑。 据新氧最近发布的年报&#xff0c;2023年营收14.98亿元&#xff0c;同比增长19.1%&#xff1b;净利2130万元&#xff0c;同比扭亏为盈。但是&#xff0c;这仅是源于2022年公司业绩的低基数对比&#xff0c;并不能…

Faiss核心解析:提升推荐系统的利器【AI写作免费】

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

QT---day4事件

1、思维导图 2、 头文件 #ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> #include<QIcon> //图标类 #include<QLabel> //标签类 #include<QMovie> //动图类 #include<QLineEdit> //行编辑器类 #include<QPushButton> //按钮…

MATLAB 自定义实现点云随机抽稀方法(66)

MATLAB 自定义实现点云随机抽稀方法(66) 一、算法介绍二、算法实现1.代码2.结果三、数据链接一、算法介绍 MATLAB虽然提供了点云随机抽稀的内置函数,但是我们也可以自己实现这个功能,有助于理解,下面是具体的实现效果和代码(直接复制粘贴即可使用): 使用提供的数据直接…

企业计算机服务器中了rmallox勒索病毒怎么破解,rmallox勒索病毒解密工具步骤

科技技术的发展&#xff0c;为企业的生产运营注入了新的活力&#xff0c;越来越多的企业利用网络走向了数字化办公模式&#xff0c;网络也极大地方便了企业的生产运营&#xff0c;大大提高了企业的生产效率&#xff0c;加快了企业发展的步伐。但是网络数据安全问题一直是企业关…

图片公式识别@文档公式识别@表格识别@在线和离线OCR工具

文章目录 abstract普通文字识别本地软件识别公式扩展插件下载小结 在线识别网站/API&#x1f47a;Quicker整合(推荐)可视化编辑和识别公式其他多模态大模型识别图片中的公式排版 开源模型 abstract 本文介绍免费图片文本识别(OCR)工具,包括普通文字识别,公式识别,甚至是手写公…

vue使用screenfull实现全屏模式

vue实现全屏模式可以通过第三方依赖screenfull完成效果。 实现效果&#xff1a;查看源码 首先需要安装第三方依赖 // npm npm install screenfull//yarn yarn add screenfull// pnpm pnpm install screenfull代码实现&#xff1a; <div class"flex-center w100 h…

go导入包时提示no required module provides package解决方法

原因&#xff0c;这个包在你的本机没有安装 如redis包的提示为 could not import github.com/gomodule/redigo/redis (no required module provides package "github.com/gomodule/redigo/redis")解决方法&#xff1a; go get github.com/gomodule/redigo/redis

无人机+光电吊舱:四光(可见光+红外热成像+广角+激光测距)吊舱设计技术详解

无人机与光电吊舱的结合&#xff0c;特别是四光吊舱&#xff08;包含可见光、红外热成像、广角和激光测距技术&#xff09;的应用&#xff0c;为无人机提供了强大的侦察和测量能力。以下是对四光吊舱设计技术的详解&#xff1a; 1. 可见光技术&#xff1a;可见光相机是吊舱中最…

C++:编程界的王者,引领未来的创新之路

在编程语言的浩瀚星空中&#xff0c;C犹如一颗耀眼的恒星&#xff0c;以其卓越的性能、深厚的底蕴和广泛的应用领域&#xff0c;持续引领着编程界的发展。它不仅在当下拥有无可替代的地位&#xff0c;更在未来展现出无限的潜力和可能性。 一、C&#xff1a;编程界的王者风范 …