@RequestParam和@PathVariable这两者之间区别不大,主要是请求的URL不一样

用@RequestParam请求接口时,URL是:http://www.test.com/user/getUserById?userId=1

用@PathVariable请求接口时,URL是:http://www.test.com/user/getUserById/2

(1)@PathVariable示例:

    @GetMapping(value="getUserById/{userId}",produces="application/json;charset=utf-8")
public Object getUserById(@PathVariable String userId) { JSONObject json = new JSONObject(); if(!StrUtil.isEmpty(userId)) {
User user = userService.getUserById(userId);
json.put("returnCode", "000000");
json.put("returnMsg", "success");
json.put("user", user);
}else {
json.put("returnCode", "111111");
json.put("returnMsg", "error");
}
return json; }

主要应用场景是:不少应用为了实现RestFul的风格,采用@PathVariable这种方式。

例如CSDN:

当然了,有些时候也不是为了RestFul风格而采用这种方式,有些时候觉得?userId=1&&status=1等参数传递方式不是特别好看或者是看着不爽。

(2)@RequestParam示例:

    @GetMapping(value="getUserById",produces="application/json;charset=utf-8")
public Object getUserById(@RequestParam String userId) { JSONObject json = new JSONObject(); if(!StrUtil.isEmpty(userId)) {
User user = userService.getUserById(userId);
json.put("returnCode", "000000");
json.put("returnMsg", "success");
json.put("user", user);
}else {
json.put("returnCode", "111111");
json.put("returnMsg", "error");
}
return json; }

应用场景:这种方式应用也非常广,像CSDN或者是博客园都在用它,这里就不贴图了,经常浏览博客和新闻都能看到。

最后,你如果问我哪种方式比较好,我的回答是,根据业务场景的需求决定使用其中一种或者是结合使用。不过它们都有一个共同点,那就是都是可见。

@RequestParam和@PathVariable的区别及其应用场景的更多相关文章

  1. @RequestParam 和 @ PathVariable 的区别

    @RequestParam 和 @ PathVariable 的区别http://localhost:8080/Springmvc/user/page.do?pageSize=3&pageNo ...

  2. @RequestParam与@PathVariable的区别

    在spring MVC中,两者的作用都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,URL写法不同. 使用@RequestParam时,URL是这样的:http://h ...

  3. springMVC的注解@RequestParam与@PathVariable的区别

    1.在SpringMVC后台控制层获取参数的方式主要有两种, 一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取. ...

  4. springMVC中的注解@RequestParam与@PathVariable的区别

    1.@PathVariable @PathVariable绑定URI模板变量值 @PathVariable是用来获得请求url中的动态参数的 @PathVariable用于将请求URL中的模板变量映射 ...

  5. SpringMVC 中的注解@RequestParam与@PathVariable的区别

    @PathVariable绑定URI模板变量值 @PathVariable是用来获得请求url中的动态参数的 @PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上.//配置 ...

  6. @RequestParam和@PathVariable的区别

    一:@RequestParam @RequestParam是传递参数的. @RequestParam用于将请求参数区数据映射到功能处理方法的参数上. public Object Login(@Requ ...

  7. @RequestParam,@PathVariable等注解区别

    一.@RequestParam和@PathVariable的区别 1.@RequestParam是从uri中request后面的参数串来取得参数的 2.@PathVariable是从uri模板中取得参 ...

  8. 浅谈 @RequestParam 和@PathVariable

    版权声明:本文为博主原创文章,如果对你有用,敬请带走! https://blog.csdn.net/chuck_kui/article/details/55506723 首先 上两个地址: 地址①ht ...

  9. list set map区别及适用场景

    list与Set.Map区别及适用场景   1.List,Set都是继承自Collection接口,Map则不是 2.List特点:元素有放入顺序,元素可重复 ,Set特点:元素无放入顺序,元素不可重 ...

随机推荐

  1. .NET Unity IOC框架使用实例

    1.IOC简介 IOC(Inversion of Control), 控制反转 DI (Dependency Injection),依赖注入 IOC的基本概念是:不创建对象,但是描述创建它们的方式.在 ...

  2. 阿里Java开发电话面试经历--惨败

    近期准备跳槽,想试试知名大企业--阿里.经过boss直聘上一些内部人员的内推,有幸获得了一次电话面试的机会.(虽然在面试开始之前就大概知道结果是如何,但是也总得试试自己个有多水,哈哈哈...) 跟大家 ...

  3. K2P刷机教程转自恩山磨人的小妖精

    K2P刷机指南说明 K2P MTK版发布之初用的是22.5.7.85, 这个版本官改和高恪K2P固件都可以从斐讯固件基础上直接升级, 是所谓直刷.但好景不长, 之后的版本比如22.5.17.33就改了 ...

  4. struts2 国际化语言转换

    学习struts2,了解了使用struts2的配置文件可以走向国际化,实现页面的语言转换.我已中文和英文为例,简单的实现登录页面的国际化 废话不多说,上代码 一,login.jsp页面 使用s标签&l ...

  5. CSS3之盒模型

    1. 什么是盒模型? css中的每个元素都是一个盒模型, 包括html body元素, 浏览器解析css的时候也会把每个元素看成一个盒子来解析. 盒模型具备的属性(存在的特点)有: content ( ...

  6. HighChart利用servlet导出中文PNG图片乱码问题解决

    最近用到HighChart作图,在图片导出时,出现了图片中中文乱码的问题,在网络上找了很多资料,但都没有解决,最后才发现了最容易被忽略的问题.具体见下. 由于之前有同事使用过HighChart,所以毫 ...

  7. Python log 模块介绍

    刚用Python log模块写了一个例子,记录一下. import logging import logging.handlers import os from datetime import dat ...

  8. python 替换指定目录下,所有文本字符串

    网页保存后,会把js文件起名为.下载,html里面的引用也会有,很不美观,解决方案:用python替换字符串 import os import re """将当前目录下所 ...

  9. TcpListener、TcpClient

    1.TcpClient using System; using System.Text; using System.Net.Sockets; namespace tcpclient { class t ...

  10. Idea中Git的使用和两种类型的冲突解决

    一.Git冲突解决 在idea开发工具中使用Git时,主要用到的快捷按钮如下五个:   这五个按钮的使用说明及在idea中如何配置和使用git可参考https://github.com/DayThin ...