使用Spring Boot编写的小项目

加法计算器

前端代码

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<form action="return/sum" method="post">
    <h1>计算器</h1>
    数字1:<input name="a" type="text"><br>
    数字2:<input name="b" type="text"><br>
    <input type="submit" value=" 点击相加 ">
</form>
</body>

</html>

后端代码

java 复制代码
    @RequestMapping("/sum")

    public String sum(Integer a , Integer b){
        Integer sum = a + b;
        return  "<h1>计算结果为: "+ sum +" </h1>";
    }

运⾏测试

我们先定义接口

(1) 请求路径:return/sum

(2) 请求方式:get/post

(3) 接口描述"计算两个整数相加

登录案例

分析需求

用户输入账号和密码 后端进行校验是正确

(1)如果不正确前端进行用户告知

(2)如果正确跳转首页显示用户信息

提前准备

将前端文件导入

创建后端代码

定义接口

(1)登录接口

/user/login/username = ? & password = ?

接口返回:校验成功/失败

true密码成功

false密码错误

(2)获取用户的登录信息

/user/getUserInfo

接口返回:当前登录用户的名称

编写后端代码

java 复制代码
package com.example.demo.demos.web.controller;

import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

@RequestMapping("/user")
@RestController
public class UserController {
    @RequestMapping("/login")
    public Boolean login(String username, String password, HttpSession session){
        //校验参数合法性
        //如果username和password的值是null或者长度为0就会返回一个false
        if(!StringUtils.hasLength(username) || !StringUtils.hasLength(password)){
            return false;
        }
        //对用户名和密码进行校验若对就设置session否则就返回false
        if("admin".equals(username) && "admin".equals(password)){
            //设置Session
            session.setAttribute("username","admin");
            return true;
        }
        return false;
                
    }
    @RequestMapping("/getUserIofo")
    public String getUserInfo(HttpServletRequest request){
        //我们要显示用户就需要从session拿到username
        //要拿到session就需要从request中拿到
        HttpSession session = request.getSession();
        String username = null;
        if (session != null){
            username = (String) session.getAttribute("username");
            
        }
        return username;
    }
}

演示:


留言板

输入留言信息 点击提交

页面展示留言信息

接口定义

获取全部留言用List可以用JSON来描述List

请求:

GET/message/getList

使用JSON格式响应

准备工作

导入前端代码

使用lombok工具

lombok是一个java工具库通过添加注解方式简化java开发

使用

lombok通过⼀些注解的⽅式,可以帮助我们消除⼀冗⻓代码,使代码看起来简洁⼀些⽐如之前的Person对象就可以改为

例如一个person类

java 复制代码
package com.example.demo.demos.web;

import lombok.Data;

@Data
public class Person2 {
    public String name;
    public Integer age;
    public Integer id;
}

这里加个注解@Data就等于上面的代码

@Data=@Getter+@Setter+@ToString+@EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor

针对上面lombok也提供更精细粒度的注解可以单独对类的属性使用

里面有很多方法当我们要在这个类增加一个属性的时候tostring方法又要重新写相当麻烦

然后我们使用lombok中的注解就可以解决这个问题

java 复制代码
<dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>

上述引⼊lombok依赖,需要去找lombok的坐标

然后我们也可以使用EditStarter引入依赖重启Idea

在pom.xml⽂件中,单击右键,选择Generate进⼊EditStarters的编辑界⾯,添加对应依赖即可.


留言版服务器代码实现

java 复制代码
package com.example.demo.demos.web.controller;

import com.example.demo.demos.web.MessageInfo;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RequestMapping("/message")
@RestController
public class MessageController {
    private List<MessageInfo> messageInfos = new ArrayList<>();
    @RequestMapping("/getList")
    public List<MessageInfo> getList(){
        return messageInfos;
    }
    @RequestMapping("/publish")
    public boolean publish(MessageInfo messageInfo){
        System.out.println(messageInfo);
        if(StringUtils.hasLength(messageInfo.getFrom())&&
                StringUtils.hasLength(messageInfo.getFrom())&&
                StringUtils.hasLength(messageInfo.getMessage())){
            messageInfos.add(messageInfo);
            return true;
        }
        return false;
    }


}

示例

相关推荐
像少年啦飞驰点、34 分钟前
零基础入门 Spring Boot:从‘Hello World’到可部署微服务的完整学习路径
java·spring boot·web开发·编程入门·后端教程
方安乐40 分钟前
杂记:Quart和Flask比较
后端·python·flask
qq_12498707531 小时前
基于SpringBoot的闪电队篮球俱乐部管理系统的设计与开发(源码+论文+部署+安装)
java·数据库·spring boot·后端·spring·毕业设计·计算机毕业设计
开开心心_Every1 小时前
PDF转图片工具推荐:免费支持批量转换
linux·运维·服务器·spring boot·edge·pdf·powerpoint
猿小羽1 小时前
Spring AI + MCP 实战:构建企业级 Agent 生态的基石
java·spring boot·llm·agent·spring ai·mcp·artificial intelligence
哪里不会点哪里.1 小时前
Spring Boot 自动装配原理深度解析
java·spring boot·后端
是三好1 小时前
javaSE
java·后端·spring
曹轲恒1 小时前
SpringBoot整合SpringMVC(下)
java·spring boot·spring
空空kkk1 小时前
spring boot——配置文件
java·数据库·spring boot
what丶k1 小时前
Spring Boot 3 注解大全(附实战用法)
java·spring boot·后端