zoukankan      html  css  js  c++  java
  • SpringMvc快速入门之使用篇

    文章是为了结合工作需求来介绍springmvc,本文章只是切合实际的开发的场景对springmvc进行快速的入门介绍。

      本篇文章不会对原理进行讲解。因为个人觉得有些对于新技术方面可以分为一下几个层次。

        1.如何去使用这门技术

        2.它的原理是什么

        3.在理解原理的基础上,如何去模仿,

          4.如何去进一步演化

      所以本篇文章只是停留在第一阶段而已。本人看过许多的springmvc入门的文章,当然很多很好的,但是并不是我想要的,我要的想要的效果是,你一看文章就知道怎么去使用,在会使用的基础上,我再和你说这些原理。

      

      一.RestFul风格

       我在第一次看到这个名次的时候,第一反应是,这是什么,会不会很难。后来了解的才明白,其实你可以理解为这个是以前通过ajax请求方式。因为现在前端(包含客户端)越来越成熟。所以现在都是使用前后端分离比较多。这样子的话职责就清晰来。后端只负责将前端想要的数据通过json方式返回给前端就行。mvc只要添加@RestController注解,就以为当前控制器使用的是restful风格,意味着返回值如果是对象会自动转化为json返回前端

       1.GET请求

    //声明是restful风格
    @RestController
    public class RestFulController {
    
        @GetMapping("/get")
        public String getRequest(String name, int age ){
    
            return name+ "的年龄是"+age;
        }
    }
    

      

      访问链接如红圈所示,返回值(即前端拿到的值如图所示)Tz的年龄是10

      当然我们实际工作中大部分都是返回json使用。 

      

      @GetMapping("/get/responseJson")
        public Object getRequestAndresponseJson(String name){
            Map<String,Object> data = new HashMap();
            Map<String,Object> result = new HashMap();
    
            data.put("name", "TzSteady");
            data.put("age", "25");
            data.put("hobby", "hiphop");
    
            result.put("code","0");
            result.put("success","成功");
            result.put("data", data);
    return result; }

      上面我们最后返回来一个对象,并不是一个JSON。但我们请求的时候会你就会发现

      前端收到的返回值是一个json,这就是@RestController注解的其中一个魅力。

      

      2.POST请求

        在实际业务中我们经常会使用表单提交或者json提交,下面这种是表单提交

        2.1 表单提交

        @PostMapping("/post")
        public Object postRequest(String name, int age, String hobby){
            
            return name+"的年龄是"+age+", 他的兴趣是"+hobby;
        }
    

     

        2.2 json 提交

          在实际生产中,经常会使用到json提交,我们会将提交的参数包装一个参数类来接收前端提交的值,并使用@RequestBody将json请求转化为指定的bean

      @PostMapping("/post/json")
        public Object postRequestByJson(@RequestBody User user){
    
            return user.getName()+"的年龄是"+user.getAge()+", 他的兴趣是"+ user.getHobby();
        }
    

        前端使用的方式为

        

        这里值得一说的是,如果是使用json提交的话,前端需要设置头部的内容类型为json类型,也就是将Content-Type设置为application/json 

        当然如果是需要返回json的话,和上面get请求一样就行。

      3.delete请求

        我个人挺喜欢restful风格将请求都具体话,比如delete请求,很明显的让人知道,这个请求是删除行为的请求。

      

      @DeleteMapping("/delete")
        public Object deleteRequest(int userId){
            Map<String, Object> result = new HashMap<>();
    
            result.put("code", "0");
            result.put("mesaage", "删除成功");
    
            return result;
        }
    

      

      不过这种请求方式前端就会很纳闷了,因为前端所知道的只有get和post请求,那么前端如何发起一个delete请求呢

      其实就是data:{_method:"DELETE", userId: 1}在传参中再加一个_method参数即可。所以可以看出delete请求其实也是基于get/post请求。只不过是相当于有个必传参数_method并值为delete

      

      4.put请求

      除了以上几种方式,还经常用到得是put请求,put请求使用的场景大部分为update行为

      

        @PutMapping("/put")
        public Object putRequestByJson(@RequestBody User user){
    
            return user.getName()+"的年龄是"+user.getAge()+", 他的兴趣是"+ user.getHobby();
        }
    

      

    以上是springmvc在网络请求方面经常使用到的。但愿大家看到这篇文章后知道怎么使用。至于原理以及详细的讲解,在下篇再详细讲吧

  • 相关阅读:
    在使用npm打包时报错 Tip: built files are meant to be served over an HTTP server. Opening index.html over file:// won't work.
    Vue报错:Property or method "XXX" is not defined on the instance but referenced during render. Make sure that this property is reactive...
    Vue(一)
    使用transform属性和animation属性制作跳动的心
    CSS选择器(通配符选择器、标签选择器、类选择器、id选择器、群组选择器、后代选择器、子元素选择器和相邻元素选择器)
    bootstrap之响应式布局
    Object 对象(对象的分类、属性(属性名和属性值)、基本数据类型与引用数据类型区别)
    HTML5的新变化
    主流浏览器内核(IE、Chrome、Firefox、Safari、Opera)
    语句:if语句、do-while语句、while语句、for语句、for-in语句、with语句、label语句、switch语句以及break和continue语句;
  • 原文地址:https://www.cnblogs.com/TzSteady/p/10967792.html
Copyright © 2011-2022 走看看