SpringMVC学习笔记(二) - RESTful风格(重要)

SpringMVC学习笔记(二) - RESTful风格(重要)

综述

  • 是一种网络资源访问的格式,是一种新的提议方法
    在这里插入图片描述

  • 按照REST风格访问资源时使用行为动作区分对资源进行何种操作(重要)
    在这里插入图片描述

快速入门

请求方法设定

注意:公共部分可以写在控制器类头部

  • 在控制器中的函数内设定http请求动作
    @RequestMapping(value="/users",method=RequestMethod.POST)
    @ResponseBody
    public String save(@RequestBody User user){
    	System.out.println("user save..."+user);
    	return "{'module':'user save'}";
    }
    
    
    @RequestMapping(value="/users",method=RequestMethod.PUT)
    public String update(@RequestBody User user){
    	System.out.println("user update..."+user);
    	return "{'module':'user update'}";
    }
    
  • 设定请求参数(路径变量)
    @RequestMapping(value="/users/{id}",method=RequestMethod.DELETE)
    @ResponseBody
    public String delete(@PathVariable Integer id){
    	System.out.println("user delete..."+id);
    	return "{'module':'user delete'}";
    }
    

请求路径参数

  • 区别:

    • @RequestParam用于接收url地址传参或表单传参
    • @RequestBody用于接收json数据
    • @PathVariable用于接收路径参数,使用{参数名称}描述路径参数
  • 应用:

    • 后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广
    • 如果发送非json格式数据,选用@RequestParam接收请求参数
    • 采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值

快速开发

@RestController

定义在控制器类的上方,设置当前控制器类为RESTful风格,等同于合并@Controller@ResponseBody两个注解的功能

标准请求动作映射(等效替代)

  • @GetMapping

    @RequestMapping(value="/users",method=RequestMethod.GET)
    
  • @PostMapping

    @RequestMapping(value="/users",method=RequestMethod.POST)
    
  • @PutMapping

    @RequestMapping(value="/users",method=RequestMethod.PUT)
    
  • @DeleteMapping

    @RequestMapping(value="/users",method=RequestMethod.DELETE)
    
  • 【小结】:定义在控制器类对应方法上方,设置当前控制器方法请求访问你路径与请求动作,每种对应一个请求动作

基本案例:基于RESTful页面数据交互

初始化工程资料:提取码-6666

后台接口开发

  • 制作SpringMVC控制器,并通过PostMan测试接口功能
    @RestController
    @RequestMapping("/books")
    public class BookController {
    
        @PostMapping
        public String save(@RequestBody Book book){
            System.out.println("book save ==> " + book);
            return "{'module':'book save success'}";
        }
    
    
        @GetMapping
        public List<Book> getAll(){
    
            List<Book> bookList = new ArrayList<Book>();
    
            Book book1 = new Book();
            book1.setType("计算机");
            book1.setName("SpringMVC从入门到入土");
            book1.setType("劝退书籍");
            bookList.add(book1);
    
            Book book2 = new Book();
            book2.setType("计算机");
            book2.setName("SpringCloud微服务实战");
            book2.setType("好书");
            bookList.add(book2);
    
            //模拟数据
            return bookList;
        }
    }
    
  • 在config包下创建一个SpringMvcSupport类,设置对静态资源的访问放行
    @Configuration
    public class SpringMvcSupport extends WebMvcConfigurationSupport {
    
        @Override
        protected void addResourceHandlers(ResourceHandlerRegistry registry) {
            //当访问pages/*时候,走/pages目录下的内容
            registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
            registry.addResourceHandler("/js/**").addResourceLocations("/js/");
            registry.addResourceHandler("/css/**").addResourceLocations("/css/");
            registry.addResourceHandler("/plugins/**").addResourceLocations("/plugins/");
        }
    }
    

页面访问处理

  • /pages/books.html页面下添加页面交互处理逻辑的函数,前端页面通过异步提交访问后台控制器
    //添加
    saveBook () {
        axios.post("/books",this.formData).then((res)=>{
    
        });
    },
    
    //主页列表查询
    getAll() {
        axios.get("/books").then((res)=>{
            this.dataList = res.data;
        });
    },
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值