【Spring Boot实战与进阶】Controller的使用及获取请求参数的示例

简介: Controller的使用及获取请求参数的示例
Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用。这个专栏将对Spring Boot框架从浅入深,从实战到进阶,不但我们要懂得如何去使用,还要去剖析框架源码,学习其优秀的设计思想。

汇总目录链接:【Spring Boot实战与进阶】学习目录

注解 释义
@Controller 处理http请求
@RestController 返回json,相当于@Controller+@ResponseBody
@RequestMapping 配置URL映射
@GetMapping 组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写
@PostMapping 组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写
@PathVariable 获取URL中的数据
@RequestParam 获取请求参数的值

示例一:返回Json字符串或者跳转到页面

  取决于是否有@ResponseBody,示例使用的类都用注解@RestController,因此包含@ResponseBody,故返回Json字符串。

@RequestMapping(value="/demo/java")
public String java() {
    return "java";
}

在这里插入图片描述

示例二:不传参

@RequestMapping(value="/demo/json")
public Map<String, Object> json() {
    Map<String, Object> map = new HashMap<>();
    map.put("sex", "男");
    map.put("name", Arrays.asList("tom","bob","tony"));

    return map;
}

在这里插入图片描述

示例三:传参

@RequestMapping(value="/demo/getId")
public Map<String, Object> getId(Integer id) {
    Map<String, Object> map = new HashMap<>();
    map.put("id", id);
    
    return map;
}

在这里插入图片描述

示例四:参数设置

name:请求传递的字段,映射到方法参数。
required:必输设置,默认true。
defaultValue:默认值

@RequestMapping(value="/demo/login")
public Map<String, Object> login(
        @RequestParam(name = "user", required = false, defaultValue = "admin") String account,
        @RequestParam(name = "pass", required = false, defaultValue = "123456") String password) {
    Map<String, Object> map = new HashMap<>();
    map.put("account", account);
    map.put("password", password);

    return map;
}

在这里插入图片描述

示例五:传递对象

@RequestMapping(value="/demo/bean")
public Map<String, Object> bean(User user) {
    Map<String, Object> map = new HashMap<>();
    map.put("account", user.getAccount());
    map.put("password", user.getPassword());

    return map;
}

在这里插入图片描述

示例六:把参数作为URL地址的一部分

@GetMapping("/user/{id}")
public void getUser(@PathVariable int id) {
    System.out.println("查询到了id="+id);
}

发送请求:http://localhost:8080/user/1
控制台输出:

查询到了id=1

示例七:Model数据模型

  SpringMVC在内部使用了一个Model接口存储数据模型,它的功能类似java.util.Map,但是比Map容易使用。

@PostMapping("/user")
public void saveUser(User user, Model model) {
    System.out.println(model);
    System.out.println("添加用户信息 user:"+ user);
}

发送请求:http://localhost:8080/user?account=yunfan&password=123456
控制台输出:

{user=User{account='yunfan', password='123456'}, org.springframework.validation.BindingResult.user=org.springframework.validation.BeanPropertyBindingResult: 0 errors}
添加用户信息 user:User{account='yunfan', password='123456'}

示例八:Json请求

@PostMapping("/updUser")
public void updateUser(@RequestBody User user) {
    System.out.println("修改用户信息"+user);
}

发送请求:http://localhost:8080/updUser
使用post工具发送Json请求,先设置下Headers参数。
在这里插入图片描述
在这里插入图片描述
控制台输出:

修改用户信息User{account='yunfan', password='123456'}
相关文章
|
3天前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
4天前
|
Java
Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
这篇文章是Spring5框架的实战教程,深入讲解了AOP的基本概念、如何利用动态代理实现AOP,特别是通过JDK动态代理机制在不修改源代码的情况下为业务逻辑添加新功能,降低代码耦合度,并通过具体代码示例演示了JDK动态代理的实现过程。
Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
|
4天前
|
SQL 数据库
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
这篇文章是Spring5框架的实战教程,深入讲解了如何使用JdbcTemplate进行数据库的批量操作,包括批量添加、批量修改和批量删除的具体代码实现和测试过程,并通过完整的项目案例展示了如何在实际开发中应用这些技术。
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
|
4天前
|
XML Java 数据格式
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
这篇文章是Spring5框架的AOP切面编程教程,通过XML配置方式,详细讲解了如何创建被增强类和增强类,如何在Spring配置文件中定义切入点和切面,以及如何将增强逻辑应用到具体方法上。文章通过具体的代码示例和测试结果,展示了使用XML配置实现AOP的过程,并强调了虽然注解开发更为便捷,但掌握XML配置也是非常重要的。
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
|
3天前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
3天前
|
XML Java 数据库
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
这篇文章是Spring5框架的实战教程,详细介绍了事务的概念、ACID特性、事务操作的场景,并通过实际的银行转账示例,演示了Spring框架中声明式事务管理的实现,包括使用注解和XML配置两种方式,以及如何配置事务参数来控制事务的行为。
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
|
3天前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
4天前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
|
4天前
|
XML Java 数据格式
Spring5入门到实战------8、IOC容器-Bean管理注解方式
这篇文章详细介绍了Spring5框架中使用注解进行Bean管理的方法,包括创建Bean的注解、自动装配和属性注入的注解,以及如何用配置类替代XML配置文件实现完全注解开发。
Spring5入门到实战------8、IOC容器-Bean管理注解方式
|
4天前
|
XML Java 数据库
Spring5入门到实战------10、操作术语解释--Aspectj注解开发实例。AOP切面编程的实际应用
这篇文章是Spring5框架的实战教程,详细解释了AOP的关键术语,包括连接点、切入点、通知、切面,并展示了如何使用AspectJ注解来开发AOP实例,包括切入点表达式的编写、增强方法的配置、代理对象的创建和优先级设置,以及如何通过注解方式实现完全的AOP配置。