软件园学生在线

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

登录与注册

后端一 姚宇涛

  • yyt
  • 2023-10-29
  • 0

后端一 姚宇涛

ps:本文纯属虚构,如有雷同纯属巧合

1.使用说明

本次的作业运用了Spring Boot这个不大熟悉的架构,由于本人才疏学浅,故尽量回避(bushi),而重点关注如何使用

在网页上使用:

首先我们找到那个含有主方法的Activity的java文件,找到启动的按钮,当看到控制面板上正常出现一些"INFO"的时候,就说明编译通过,正常运行

之后我们在地址栏里输入URL,localhost代表本机,自己当服务器(应该是这样吧),8080为端口号,接下来根据要执行的操作添加对应的路由,如果是get方式,就要加上对应的参数,比如:

@GetMapping("/add")
    public double add(@RequestParam double a, @RequestParam double b){

        return mainService.add(a,b);
    }
  ```
#### 此处的代码用来实现加法功能,对应路由函数为/add,所需参数为a,b两个实数
#### URL可写成localhost:8080/add?a=23.6&b=-96.3
#### 此处路由和参数用?连接,多个参数之间用&连接,这样可以实现get方式的参数传递,但是post传递则需要网页上制作表单再获取,由于个人原因暂时无法实现
### 在Postman上使用
#### get方式与网页类似,但是post形式可以在这里用表单的形式录入
#### 在左侧collections中新建项目,根据导入数据的方式选择Post或get,如果选择post方式,只需要输入到路由即可,如减法操作:
```java
@PostMapping("/reduce")
    public double reduce(@RequestParam double a,@RequestParam double b){

        return mainService.reduce(a,b);
    }

这里采用了post方式,别的格式都是一样,只是在输入数据时有所差异

对应URL为localhost:8080/reduce,不用附加参数,防止泄露

这时候在下面选择Body中的www那个选项,就可以按标识将将a,b输入了,之后即可正常运行并输出结果

2.一些特殊情况的说明

主要是执行除法时可能会有一些特殊情况,比如,如果输入的除数b是0,就会出现错误,为了防止这种情况出现,做了以下改动:

public String rid( double a, double b){
        String judge;

        if (b == 0) {
            judge="illegal";
            return judge;
        }
        else{
            double tmp=a/b;
            judge=Double.toString(tmp);
            return judge;
        }
    }

主要做了两方面的改动:一是判断了是否有除数为0的情况,而是将返回值类型改为了String(实数型难以传递逻辑错误的信息),因此也要将获得的实数型重新转化为字符串输出

3.简要的学习历程

本次的学习主要来源于模仿学长的代码,同时自己适当创新,同时也遇到了很多问题,如:

文件夹位置建错,没有建在src目录下,导致虽然编译通过却无法在网页上显示;

postman中以post形式输入时输错表单;

…………(太多了)

最后把代码奉上:

控制器端:

package com.example.demo.service;

import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Service//不需要再创建对象
public class MainService {
    public double add( double a,  double b){

        return a+b;
    }

    public double reduce( double a, double b){
        return a-b;
    }
    public double multiply( double a, double b){
        return a*b;
    }
    public String rid( double a, double b){
        String judge;

        if (b == 0) {//判断是否为非法表达式
            judge="illegal";
            return judge;
        }
        else{
            double tmp=a/b;
            judge=Double.toString(tmp);
            return judge;
        }
    }
}

打工人端

package com.example.demo.controller;
import com.example.demo.course.Course;
import com.example.demo.service.MainService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
public class Controller {
    @Autowired
    MainService mainService;//相当于新建对象

    @GetMapping("/add")
    public double add(@RequestParam double a, @RequestParam double b) {

        return mainService.add(a, b);
    }

    @PostMapping("/reduce")
    public double reduce(@RequestParam double a, @RequestParam double b) {

        return mainService.reduce(a, b);
    }

    @GetMapping("/multiply")
    public double multiply(@RequestParam double a, @RequestParam double b) {

        return mainService.multiply(a, b);
    }

    @PostMapping("rid")
    public String rid(@RequestParam double a, @RequestParam double b) {

        return mainService.rid(a, b);
    }
}

依旧非常的水(其实是本人比较菜)

yyt
yyt
© 2025 软件园学生在线
Theme by Wing