一篇文章带你掌握主流服务层框架——SpringMVC( 四 )


一篇文章带你掌握主流服务层框架——SpringMVC

文章插图
  1. 下方的数据传递可以更换类型 , 例如更换为body体的raw来书写JSON格式
【一篇文章带你掌握主流服务层框架——SpringMVC】
一篇文章带你掌握主流服务层框架——SpringMVC

文章插图
  1. 书写后保存到相应列表并标注名称

一篇文章带你掌握主流服务层框架——SpringMVC

文章插图
到这里 , 我们Postman的基本使用基本就结束了,到后面我们会对具体内容做具体补充~
SpringMVC设置请求与响应SpringMVC和Servlet同属于服务层的工具,那么必不可少的就是请求与响应的反馈问题
接下来我们将一一介绍请求与响应的相关知识
请求映射路径设置首先我们先来想一想我们之前的路径设置是否有那么一点点缺陷?
// Book的服务层package com.itheima.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class BookController {//请求路径映射@RequestMapping("/save")@ResponseBodypublic String save(){System.out.println("book save ...");return "{'module':'book save'}";}}// User的服务层package com.itheima.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class UserController {//请求路径映射@RequestMapping("/save")@ResponseBodypublic String save(){System.out.println("user save ...");return "{'module':'user save'}";}//请求路径映射@RequestMapping("/delete")@ResponseBodypublic String delete(){System.out.println("user delete ...");return "{'module':'user delete'}";}}我们可以注意到我们的单个项目中不可能只包括有一个服务层
但我们的请求映射路径却只是简单设计为相同的名称 , 就会导致我们访问该页面时,系统无法匹配
所以我们需要给他们采用不同的映射路径,我们常有的操作是直接在前面加上一层该类的路径名:
package com.itheima.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class BookController {//请求路径映射@RequestMapping("/book/save")@ResponseBodypublic String save(){System.out.println("book save ...");return "{'module':'book save'}";}}但当项目逐渐增多,我们多次书写路径名就有可能导致错误,所以我们采用类注解@RequestMapping来解决:
package com.itheima.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;@Controller//类上方配置的请求映射与方法上面配置的请求映射连接在一起,形成完整的请求映射路径@RequestMapping("/user")public class UserController {//请求路径映射@RequestMapping("/save")@ResponseBodypublic String save(){System.out.println("user save ...");return "{'module':'user save'}";}//请求路径映射@RequestMapping("/delete")@ResponseBodypublic String delete(){System.out.println("user delete ...");return "{'module':'user delete'}";}}
注意:@RequestMapping不仅仅可以用于方法表示映射,也可以用于整个Bean类中表示映射前缀
参数传递问题关于参数传递我们从三个方面来讲解:
  • 传递方式
  • 传递参数类型
  • 特殊参数类型
按传递方式我们的传递方式通常采用GET或者POST方式
但在前面的学习中我们可以知道我们的传递方式是有不同的,我们在Postman的书写形式也是不同的
例如我们先给出一个简单的参数传递函数
package com.itheima.controller;import com.itheima.domain.User;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import java.util.Arrays;import java.util.Date;import java.util.List;//请求参数@Controllerpublic class UserController {//普通参数:请求参数与形参名称对应即可完成参数传递@RequestMapping("/commonParam")@ResponseBodypublic String commonParam(String name ,int age){System.out.println("普通参数传递 name ==> "+name);System.out.println("普通参数传递 age ==> "+age);return "{'module':'common param'}";}}

推荐阅读