【Java基础】简单参数和springboot方式形参传递法

一、知识点整理

1、Postman

 2、在原始的web程序中获取请求参数需通过HttpServletRequest对象手动获取

二、操作步骤

1、参考链接1下载postman,并创建工作空间。

2、打开idea,新建项目,选择Spring Initializar,依赖库勾选Web下的Spring Web。

3、简单参数法:

1)创建RequestController类

package com.example.controller;

import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 *测试请求参数接收
 */
@RestController
public class RequestController {
    //原始方法
    @RequestMapping("/simpleParam")
    public String simpleParam(HttpServletRequest request){
        //获取请求参数
        String name=request.getParameter("name");
        String ageStr=request.getParameter("age");
        int age=Integer.parseInt(ageStr);
        System.out.println(name+":"+age+"岁");
        return "OK";
    }

}

4、Springboot方式直接形参传递法

@RestController
public class RequestController {
    @RequestMapping("/simpleParam")
    public String simpleParam(String cartoon){
        //获取请求参数
        System.out.println(cartoon);
        return "OK";
    }

如果方法形参名称与请求参数名称不匹配,可以使用@RequestParam完成映射

@RestController
public class RequestController {
    @RequestMapping("/simpleParam")
    public String simpleParam(@RequestParam(name="name")String cartoon){
        //获取请求参数
        System.out.println(cartoon);
        return "OK";
    }

5、启动程序SpringbootWebProject01Application

 6、在Postman中测试,点击发送后

 

三、参考链接

1、postman视频教程

https://www.bilibili.com/video/BV1m84y1w7Tb?p=68&spm_id_from=pageDriver&vd_source=841fee104972680a6cac4dbdbf144b50

2、Tomcat官网

https://tomcat.apache.org/download-90.cgi

四、总结

1)简单参数方法的缺点:繁琐、需手动进行类型转换。

2)Springboot方式直接形参传递法:参数名宇形参变量名相同,定义形参即可接收参数。如果方法形参名称与请求参数名称不匹配,可以使用@RequestParam完成映射。

### Spring Boot 中前后端参数传递的注解及其用 在Spring Boot中,前后端之间的参数传递主要通过控制器层(Controller)中的方法实现。以下是常用的几种注解以及它们的具体使用场景示例。 #### 1. `@RequestParam` 注解 该注解用于绑定HTTP请求中的查询参数到处理器方法形参上。适用于GET或POST请求中的简单键值对形式的数据传递[^2]。 ```java @GetMapping("/example") public String example(@RequestParam("paramName") String paramValue) { return "Received parameter value: " + paramValue; } ``` #### 2. `@PathVariable` 注解 此注解主要用于RESTful风格的URL路径变量映射。它允许从URI模板中提取占位符的值,并将其赋给方法参数。 ```java @GetMapping("/users/{id}") public User getUserById(@PathVariable Long id){ return userService.findById(id); } ``` #### 3. `@RequestBody` 注解 当需要从前端接收JSON格式或其他复杂结构化数据时,可以利用`@RequestBody`来解析整个请求体的内容并转换成Java对象。 ```java @PostMapping("/createUser") public ResponseEntity<String> createUser(@RequestBody User user){ boolean result = userService.save(user); if(result){ return new ResponseEntity<>("Success", HttpStatus.OK); }else{ return new ResponseEntity<>("Failed", HttpStatus.INTERNAL_SERVER_ERROR); } } ``` #### 4. 数据传输对象 (DTO) 的使用 对于复杂的业务逻辑或者多个字段的情况下,推荐创建专门的数据传输类作为载体。这样不仅提高了代码可维护性扩展性,还便于集中管理验证规则。 定义一个简单的DTO: ```java public class CreateUserRequest { @NotBlank(message="姓名不能为空") private String name; @Email(message="邮箱格式不正确") private String email; public String getName() {return this.name;} public void setName(String name){this.name=name;} public String getEmail(){return this.email;} public void setEmail(String email){this.email=email;} } ``` 然后,在controller里调用这个DTO: ```java @PostMapping("/register") public ResponseEntity<?> registerNewAccount(@Validated @RequestBody CreateUserRequest request, BindingResult bindingResult){ if(bindingResult.hasErrors()){ List<FieldError> errors = bindingResult.getFieldErrors(); Map<String,String> errorMap=new HashMap<>(); for(FieldError fieldError :errors ){ errorMap.put(fieldError.getField(),fieldError.getDefaultMessage()); } return new ResponseEntity<>(errorMap,HttpStatus.BAD_REQUEST); } // 处理注册逻辑... return new ResponseEntity<>("success",HttpStatus.CREATED); } ``` 以上展示了如何基于不同需求选用合适的注解完成前端至后台间的信息交换过程。值得注意的是,为了保障系统的健壮性与用户体验度,在实际开发过程中应当充分考虑边界条件下的错误提示机制设计。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林月明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值