软件园学生在线

  • {{ item.name }}
  • 2023试用期

登录与注册

后端一 宋煜

  • Eternityⁿ
  • 2023-10-29
  • 0

Springboot 四则运算API

介绍

1.针对四则运算

  • 加法 localhost:8080/add?a=#&b=#
  • 减法 localhost:8080/subtract?a=#&b=#
  • 乘法 localhost:8080/mulitiply?a=#&b=#
  • 除法 localhost:8080/divide?a=#&b=#
    2.处理除数为0时,输出0
    3.使用BigDecimal处理数据溢出。

    问题

    1.未处理数据类型错误
    2.网页中divide异常

    学习历程

    1.@RestController为控制器,会将函数的返回值直接填入HTTP中
    2.@GetMapping属GET请求,从服务器获取数据;@PostMapping属post请求,
    获取数据
    3.@RequestParam用于获取查询参数
    4.@Data读取类的属性
    5.@AllArgsConstuctor提供全参构造器
    6.@NoArgsConstructor提供空参构造器

    代码

    Controller

    package com.example.demo.Controller;
    import com.example.demo.Service.MainService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    import java.math.BigDecimal;
    @RestController
    public class MainController {
    @Autowired
    MainService mainService;
    
    @GetMapping("/hello")
    public String hello() {
        return "Hello,world!";
    }
    
    @GetMapping("/add")
    public BigDecimal add(@RequestParam BigDecimal a, @RequestParam BigDecimal b) {//加法,BigDecimal处理数据溢出
            return mainService.add(a, b);
    }
    
    @GetMapping("/substract")
    public BigDecimal subtract(@RequestParam BigDecimal a, @RequestParam BigDecimal b) {//减法
            return mainService.substract(a, b);
    }
    
    @GetMapping("/multiply")
    public BigDecimal multiply(@RequestParam BigDecimal a, @RequestParam BigDecimal b) {//乘法
            return mainService.multiply(a, b);
    }
    
    @GetMapping("/divide")
    public BigDecimal divide(@RequestParam BigDecimal a, @RequestParam BigDecimal b){//除法
            if (b.equals(BigDecimal.ZERO)) {
                return BigDecimal.ZERO;
            } else {
                return mainService.divide(a, b);
            }
    }
    }

    Service

    
    package com.example.demo.Service;
    import org.springframework.stereotype.Service;
    import java.math.BigDecimal;
    @Service
    public class MainService {
    
    public BigDecimal add(BigDecimal a, BigDecimal b){
        BigDecimal add = a.add(b);
        return add;
    }
    public BigDecimal subtract(BigDecimal a, BigDecimal b)
    {
        BigDecimal subtract = a.subtract(b);
        return subtract;
    }
    public BigDecimal multiply(BigDecimal a, BigDecimal b) {
        BigDecimal multiply =a.multiply(b);
        return multiply;
    }
    public BigDecimal divide(BigDecimal a, BigDecimal b) {
        BigDecimal divide = a.divide(b);
        return divide;
    }
    }
### HTML
```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>四则运算</title>
</head>
<body>
    <h2>hello</h2>
    <form action="http://localhost:8080/hello" method="get">
        <input type="submit" value="hello"></form>
    <h2>加法</h2>
    <form action="http://localhost:8080/add" method="get">
        第一个数字: <input type="BigDecimal" name="a"><br> 第二个数字: <input type="BigDecimal" name="b"><br>
        <input type="submit" value="提交">
    </form>
    <h2>减法</h2>
    <form action="http://localhost:8080/subtract" method="get">
        被减数: <input type="BigDecimal" name="a"><br> 减数: <input type="BigDecimal" name="b"><br>
        <input type="submit" value="提交">
    </form>
    <h2>乘法</h2>
    <form action="http://localhost:8080/multiply" method="get">
        第一个数字: <input type="BigDecimal" name="a"><br> 第二个数字: <input type="BigDecimal" name="b"><br>
        <input type="submit" value="提交">
    </form>
    <h2>除法</h2>
    <form action="http://localhost:8080/divide" method="get">
        被除数: <input type="BigDecimal" name="a"><br> 除数: <input type="BigDecimal" name="b"><br>当除数为0时,输出值为0<br>
        <input type="submit" value="提交">
    </form>
</body>
</html>
Eternityⁿ
Eternityⁿ
© 2025 软件园学生在线
Theme by Wing