正在学习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请求