博客
关于我
SpringMVC学习笔记4-----RestFul风格简单解读
阅读量:726 次
发布时间:2019-03-21

本文共 1986 字,大约阅读时间需要 6 分钟。

RestFul风格的优势与实际应用

1. RestFul风格的优势

RestFul风格在现代应用开发中逐渐成为主流,主要原因包括以下几个方面:

  • 简化路径:通过将路径参数与请求方法细粒化,实现路径变得更为简洁直观。无需通过查询参数(如?a=1&b=2)传递数据,所有参数都可以通过路径直接表达。

  • 类型安全:RestFul风格的路径参数自动由框架进行类型转换,并基于路径变量的类型进行约束。例如,如果定义的路径中包含数字,系统会拒绝字符串类型的传入请求,从而确保数据的安全性。

  • 增强安全性:通过将所有参数附着在路径中而非查询字符串,减少了数据在传输过程中的泄露风险。

2. 原始的查询参数传参问题

传统的查询参数传递方式存在以下缺陷:

http://localhost:8080/add?a=1&b=2
  • 查询参数的暴露性在数据传输过程中较高,存在被截获或篡改的风险。
  • 参数类型不易控制,无法通过路径直接传递,导致数据类型混乱。

3. RestFul风格下的参数传递

在RestFul风格中,路径参数的使用为传递参数提供了更灵活的方式。以下是两种典型传递方式的示例:

3.1 传递两个整数参数
http://localhost:8080/add/6/71
  • 方法注解:@RequestMapping路径需包含路径变量。
@RequestMapping("/add/{a}/{b}")public String test2(@PathVariable int a, @PathVariable int b, Model model) {    int result = a + b;    model.addAttribute("msg", "这是restful传参a+b=" + result);    return "test";}
3.2 传递一个整数和一个字符串参数
http://localhost:8080/add/3/wang
  • 方法注解:
@RequestMapping("/add/{a}/{b}")public String test2(@PathVariable int a, @PathVariable String b, Model model) {    String result = a + b;    model.addAttribute("msg", "这是restful传参a+b=" + result);    return "test";}
3.3 多样化的提交方式

RestFul风格支持通过不同的HTTP方法实现相同的路径,例如:

@RequestMapping(value="/add/{a}/{b}", method=RequestMethod.DELETE)public String test3(@PathVariable int a, @PathVariable String b, Model model) {    String result = a + b;    model.addAttribute("msg", "这是restful传参a+b=" + result);    return "test";}
  • 可通过在请求中指定HTTP方法(如DELETEGET)实现不同的调用方式。
  • 需要注意默认请求方法(通常为GET),若指定其他方法需特别配置。
3.4 自定义提交方式

除了使用默认的@RequestMapping注解,还可以通过@GetMapping等更具体的注解来明确请求方式,例如:

@GetMapping("/add/{a}/{b}")public String test4(@PathVariable int a, @PathVariable String b, Model model) {    String result = a + b;    model.addAttribute("msg", "这是restful传参a+b=" + result);    return "test";}

4. 实际应用示例

以下是几个实际应用场景的示例:

  • GET请求

    http://localhost:8080/add/4/as

    会触发test2方法,返回参数拼接结果。

  • 自定义POST提交

    如果使用前端提交,通过POST请求传递参数:

    http://localhost:8080/add/2/as

    会调用test3方法,同样返回拼接结果。

5. 注意事项

  • 在使用不同请求方法时,需要确保路径和方法的匹配性,避免出现405错误。
  • 路径变量的类型严格随路径定义进行约束,不同类型的路径参数自动分隔。

通过RestFul风格的应用,可以显著提升应用的安全性、可读性和维护性,是现代应用开发的重要设计理念。

转载地址:http://latgz.baihongyu.com/

你可能感兴趣的文章
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>
mysql 用户管理和权限设置
查看>>
MySQL 的 varchar 水真的太深了!
查看>>