zoukankan      html  css  js  c++  java
  • 【SpringMVC】05 RestFul风格

    什么是RestFul风格?

    一个资源定位和资源操作的风格,不是标准,也不是协议,

    基于此风格的路径访问可以隐藏真实的参数传递,以提高网站的安全访问


    以往的请求参数:

    jdbc:mysql://localhost:3306/mybatis?serverTimezone=Aisa/Shanghai

    很明显,每次连接都带有一个问号加上KV对的参数

    如果使用RestFul,我们就会像访问一个资源一样,传递KV参数


    演示案例:

    控制器

    package cn.dai.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * @author ArkD42
     * @file SpringMVC
     * @create 2020 - 05 - 06 - 21:33
     */
    @Controller
    public class RestFulController {
        
        @RequestMapping("/getSum/{a}/{b}")
        public String restful(@PathVariable int a,@PathVariable int b, Model model){
            int sum = a + b;
            model.addAttribute("sum",sum);
            return "rest";
        }
    }

    接受的jsp页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <p>使用RestFul传递参数,并处理: ${sum}</p>
    </body>
    </html>

    访问:

    @PathVariable 路径变量

    被注解的形参变量,就表示映射路径传递的字符

    RestFul表达式【{param}】

    参数必须以大括号修饰,才能被上面的注解映射


    除上面的功能之外,我们还可以配合请求映射进行分别处理

    可以设置请求的方法是哪种的,再来处理,如果不是来自Get方式请求的URL,将不会被处理

    请求方式可以设置为这些

    这个RequestMapping还可以再简写为具体的请求方式注解

    也就是说,对同一URL的路径,请求的方式不一样,都可以实现不同处理

    例如这样:

    另外这么做要注意一点:

    不要设置同样的请求路径的基础上设置同样的请求方式,SpringMVC将会报Mapping歧义异常

    它无法判断你到底是需要这两个方法的哪一种来处理

  • 相关阅读:
    你了解JWT吗?
    链接
    C#读取EXCEL发生错误
    TM1637驱动数码管
    Keil中的Code,RO,RW,ZI分别表示什么
    IE 不支持 promise 解决方法
    JS 时间戳转日期格式
    JS input 输入框只能输入 字母和汉字
    小程序 保存图片失败
    小程序充值,方法步骤
  • 原文地址:https://www.cnblogs.com/mindzone/p/12839221.html
Copyright © 2011-2022 走看看