@RequestBody @RequesetParam HttpServletRequst 对象接收 = @ModelAttribute 对象 接收表单提交 @PathVariable

https://www.cnblogs.com/xfeiyun/p/17938484

在Spring中 Controller注解用于指示Spring类的实例是一个控制器,相对于实现Controller接口变得更加简单。而且实现Controller接口只能处理一个单一的请求,而是用@Controller注解可以支持同时处理多个请求动作,更加灵活。

@Controller用于标记一个类,使用他标记的类就是一个SpringMVC Controller对象,即一个控制器类,Spring使用扫描机制查找应用程序中所有基于注解的控制器类。分发处理器会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解的方法才是真正处理请求的处理器。

非JSON方式接收请求参数

普通方式-请求参数名和Controller方法的参数一致

GET请求和POST请求都支持

@Controller
@RequestMapping("/param")
public class TestParamController {

    private static final Logger logger = LoggerFactory.getLogger(TestParamController.class);

    /**
     * 请求参数名和Controller方法的参数一致
     * produces 设置返回参数的编码格式可以设置返回数据的类型以及编码,可以是json或者xml
     * {
     *     @RequestMapping(value="/xxx",produces = {"application/json;charset=UTF-8"})
     *      或
     *     @RequestMapping(value="/xxx",produces = {"application/xml;charset=UTF-8"})
     *      或
     *     @RequestMapping(value="/xxx",produces = "{text/html;charset=utf-8}")
     * }
     * @param name 用户名
     * @param pwd 密码
     * @return
     *
     */
    @RequestMapping(value = "/add", method = RequestMethod.GET, produces = {"application/json;charset=UTF-8"})
    @ResponseBody
    public String addUser(String name, String pwd) {
        logger.debug("name:" + name + ",pwd:" + pwd);
        return "name:" + name + ",pwd:" + pwd;
    }
}

通过访问:GET http://localhost:8080/param/add?name=张三&pwd=123456

https://img2023.cnblogs.com/blog/2443180/202401/2443180-20240101112905253-595370228.png

对象方式-请求参数名和Controller方法中的对象的参数一致

GET请求和POST请求都支持

Employee实体类:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Employee {
    private Integer id;
    private String lastName;
    private Integer gender;
    private String email;
    private Integer dId;
}

controller实现

@RestController
@RequestMapping("/param")
@Slf4j
public class ParamsController {
    @GetMapping("/employee")
    public String addEmployee(Employee employee){
        return "lastName:"+employee.getLastName()+",email:"+employee.getEmail();
    }
}

通过访问:http://127.0.0.1:8080/param/employee?lastName=战三&[email protected]

https://img2023.cnblogs.com/blog/2443180/202401/2443180-20240101113442682-1651777670.png