前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

@PathVariable 映射 URL 绑定的占位符

  • 带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义
  • 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。

实例: 
SpringMVCTest.java

//@PathVariable可以用来映射URL中的占位符到目标方法的参数中
@RequestMapping("/testPathVariable/{id}")public String testPathVariable(@PathVariable("id") Integer id){System.out.println("testPathVariable:"+id);return SUCCESS;}

index.jsp

<a href="springmvc/testPathVariable/1">testPathVariable</a>

REST

  • REST:即 Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用
  • 资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的 URI 。要获取这个资源,访问它的URI就可以,因此 URI 即为每一个资源的独一无二的识别符。
  • 表现层(Representation):把资源具体呈现出来的形式,叫做它的表现层(Representation)。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、XML 格式、JSON 格式表现,甚至可以采用二进制格式。
  • 状态转化(State Transfer):每发出一个请求,就代表了客户端和服务器的一次交互过程。HTTP协议,是一个无状态协议,即所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生状态转化State Transfer)。而这种转化是建立在表现层之上的,所以就是 表现层状态转化。具体说,就是 HTTP 协议里面,四个表示操作方式的动词:GETPOSTPUTDELETE。它们分别对应四种基本操作:GET 用来获取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源。

示例: 
- /order/1 HTTP GET :得到 id = 1 的 order 
- /order/1 HTTP DELETE:删除 id = 1的 order 
- /order/1 HTTP PUT:更新id = 1的 order 
- /order HTTP POST:新增 order

HiddenHttpMethodFilter:浏览器 form 表单只支持 GET与 POST 请求,而DELETE、PUT 等 method 并不支持,Spring3.0 添加了一个过滤器,可以将这些请求转换为标准的 http 方法,使得支持 GET、POST、PUT 与DELETE 请求。

--------------------------------------------------------------------------------------------------------------

在web.xml中配置HiddenHttpMethodFilter

web.xml

<!--配置org.springframework.web.filter.HiddenHttpMethodFilter:可以把POST请求转换成DELETE或者POST请求--><filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter>   <filter-mapping><filter-name>HiddenHttpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

在SpringMVCTest中测试相应的方法

SpringMVCTest.java

/** 如何发送PUT和DELETE请求* 1.需要配置HiddenHttpMethodFilter* 2.需要发送POST请求* 3.需要发送POST请求时携带一个name="_method"的隐藏域,value值为DELETE或者PUT* * 在springmvc框架中通过@PathVariable注解来获取id值* *///get请求@RequestMapping(value="/testRest/{id}",method=RequestMethod.GET)public String testRest(@PathVariable Integer id){System.out.println("testRest Get"+id);return SUCCESS;}//post请求@RequestMapping(value="/testRest",method=RequestMethod.POST)public String testRest(){System.out.println("testRest POST");return SUCCESS;}//delete请求@RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)public String testRestDelete(@PathVariable Integer id){System.out.println("testRest DELETE"+id);return SUCCESS;}//delete请求@RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT)public String testRestPut(@PathVariable Integer id){System.out.println("testRest PUT"+id);return SUCCESS;}

index.jsp中的写法

index.jsp

  <a href="springmvc/testRest/1">Test Rest Get</a><br/><form action="springmvc/testRest" method="post"><input type="submit" value="TestRest Post"/></form><br/><form action="springmvc/testRest/1" method="post"><input type="hidden" name="_method" value="DELETE"/><input type="submit" value="TestRest DELETE"/></form><br/><form action="springmvc/testRest/1" method="post"><input type="hidden" name="_method" value="PUT"/><input type="submit" value="TestRest PUT"/></form><br/>

@PathVariable 注解 说明相关推荐

  1. springmvc @PathVariable注解进行传参操作

    springmvc传入参数加@PathVariable注解

  2. rest风格使用两个变量_REST风格,@PathVariable注解

    REST(Representational State Transfer,表述性状态转移)是一种软件风格.所谓的REST风格可以简单理解为:使用url表示资源时,每个资源都用一个独一无二的url来表示 ...

  3. REST风格,@PathVariable注解

    REST(Representational State Transfer,表述性状态转移)是一种软件风格.所谓的REST风格可以简单理解为:使用url表示资源时,每个资源都用一个独一无二的url来表示 ...

  4. java path 注解_@PathVariable注解的使用和@Requestparam

    一. @PathVariable @PathVariable这是一个路径映射格式的书写方式注解,在类映射路径的后加上/{对应方法参数中属性@PathVariable("code") ...

  5. @RequestParam,@RequestBody,@PathVariable注解还分不清吗?

    前言 在使用 SpringMVC 开发时,经常遇到前端传递的各种参数,比如 form 表单,JSON 数据,String[] 数组,再或者是最常见的 String 字符串等等,总之大部分场景都是在标题 ...

  6. @PathVariable注解使用

    @PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值 语法: @PathVariable("xxx") 通过 @PathVariable 可以将UR ...

  7. Springboot@PathVariable注解使用--请求路径占位符

    常用请求方式:http://localhost:10003/railway-api/base/stEstimate/info?id=1 rest请求方式: 传统@RequestParam是从reque ...

  8. @PathVariable注解

    功能:接收请求路径中占位符的值 用法: /***占位符映射* @param username* @param realname* @return*/ @RequestMapping("hel ...

  9. @RequestParam @RequestBody @PathVariable 等参数绑定注解详解

    文章主要讲解request 数据到handler method 参数数据的绑定所用到的注解和什么情形下使用. 简介: handler method 参数绑定常用的注解,我们根据他们处理的Request ...

最新文章

  1. videoview全屏播放
  2. 区块链软件公司:区块链运用在金融上运用的优点有哪些?
  3. 绝地求生自定义服务器租一天多少钱,绝地求生自定义服务器怎么样?绝地求生自定义服务器使用攻略...
  4. java ML回归预测_ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值...
  5. 分布式事务之底层原理揭秘
  6. ubuntu18.10安装linuxqq2.0
  7. ajax提交加载loading图标遮罩层不显示
  8. Latex学习记录2
  9. Ubuntu 18.04环境下Django的安装配置图文详解
  10. 10款Mac上程序员装机必备的开发工具推荐和下载
  11. mike21换成计算机名称,mike21
  12. 深度学习入门学习路线及好课推荐
  13. mtk android mt6573项目 root升级包制作
  14. 记大三第一学期10-1出游宜昌
  15. 办公效率该怎么提高呢?五个高效办公小技巧分享给你,职场的你必备的神器。
  16. 所以,你知道你为什么要读书了吗?
  17. 强化学习系列7:无模型的蒙特卡洛法
  18. 网站推荐:检索全球范围内有趣实用的网站【持续更新】
  19. selenium3.0模拟键盘、鼠标操作
  20. 文件下载:从服务器上下载,自动给下载的PDF添加水印(一)

热门文章

  1. 电脑屏保在哪里设置_手机屏保调成绿色能护眼?真的吗?
  2. Qt: QTableView如何获取(行)选中、行切换信息
  3. 【Python CheckiO 题解】Create Intervals
  4. CCIE-LAB-第一篇-教学导入环境
  5. Processing 闪烁的圆 动画效果
  6. 【PTA天梯赛CCCC -2017决赛L2-3】图着色问题 (25 分)(图染色)
  7. 【CodeForces - 144D】Missile Silos(单源最短路,枚举中间边,枚举情况可能性)
  8. Idea自带的工具打jar包和Maven打Jar包(SpringBoot工程)
  9. java 制作快捷键,Java快捷键制作
  10. 简述linux系统的安全性,Linux操作系统的安全性有哪些过人之处