@PathVariable注解的使用 与 Rest 风格的URL

1.@PathVariable 映射 URL 绑定的占位符

  • @PathVariable是spring3.0的一个新功能
  • 通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。

         1.1 占位符映射:url路径下可以写占位符,可以在任意路径下写变量

  •         语法:@RequestMapping("/user/{xxx}") :  {xxx} 占位符 ,可以写任意变量
  •         url:http://localhost:8080/springmvc/user/hah22
  •         使用环境:当访问一个父路径下的某个子路径时,这个子路径不确定,我们可以通过 {xxx} 占位符来表示,传入                                什么参数,该占位符就是什么参数

 

实例:

//需求:访问user路径下的某一个用户  ,用户不确定,用占位符表示{userName}
@RequestMapping("/user/{userName}")
public String method(@PathVariable("userName") String name) {     
    //通过@PathVariable  映射url中的占位符{userName}值 到方法入参中

	System.out.println("用户:"+name);
	return "/WEB-INF/inner/helloWorld.jsp";
}

测试:

浏览器访问:

控制台:

用户:qe231

 

 

2. 占位符的URL 以及 注解@PathVariable获取占位符值 的写法都是  SpringMVC为了去支持 rest 风格的URL。

那么  什么是rest风格的URL呢?
 

 

  2.1先说说常规的URL

    当客户端向服务器发送请求时,意味着客户端要对服务器中的某一个资源做操作,无非就是:增删改查 的操作
    假设客户端要对 user用户做一系列的操作

  • 新增操作:http://localhost:8080/springMvc/addUser
  • 删除操作:http://localhost:8080/springMvc/deleteUser?id=1
  • 修改操作:http://localhost:8080/springMvc/updateUser
  • 查询操作:http://localhost:8080/springMvc/getUser

仅仅是对一个用户资源做增删改查就需要配置 4个url,这样配置也不是不行。
但,随着我们的项目增大、模块增大、业务量增大、问题就出现了,每一个资源都要这样配置,那么就是成千上万个url,
单单是取url名字都要费老半天,这样的url不够简洁,且安全性不高,有些url路径就完全暴露了对服务器发送的请求操作

而 rest风格的URL就是要去解决 如上的问题

 

 2.2rest 风格的URL

先说说Rest请求方式的好处,首先就是面向资源URI,即http请求的路径,Rest规定中要求URI各层只能用名词不用动词,
这样相比传统的get请求有利于传输数据的稳定性,数据的操作流程不会被人轻易看破,也便于团队开发,各种URI一目了然;
再通过固定的请求方式,对URI中的资源进行各种操作。

例如: 对 user 做操作, 向服务器发送URL:http://localhost:8080/springMvc/user

  • GET           >>>        查询操作
  • POST        >>>       新增操作
  • PUT           >>>       修改操作
  • DELETE    >>>       删除操作

不以请求URL路径作为操作依据,而是以请求方式作为操作依据的。符合这种请求方式的url ,叫做rest 风格的url

 

 

 

下面做一个实例来演示 rest  风格URL 请求:

 

1.首先我们编写controller

 

2.接下来编写 jsp页面,来访问 控制器

注: 页面发送  PUT/ DELETE 请求的 处理方法
 
       1.springMVC中有一个自带的过滤器 Filter,可以把普通的请求转换成规定形式的请求
          
        2.怎么发送其他形式的请求
            2.1 创建 一个post请求的form表单
            2.2 表单中携带一个参数: _method
            2.3 这个参数的值就是: 要转换的请求方式  DELETE、PUT   

 

 3.在web.xml 中配置过滤器 转换请求方式

<!-- 配置过滤器HiddenHttpMethodFilter
  	该过滤器是将 form表单的请求方式转换成规定形式的请求方式
-->
<filter>
  <filter-name>RestURL</filter-name>
  <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter>
<filter-mapping>
  <filter-name>RestURL</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>  

 

测试:接下来客户端访问jsp页面

控制台输出:

GET:用户查询操作
PUST:用户新增操作
PUT:用户修改操作
DELETE:用户删除操作

 

部分参考:

  https://blog.csdn.net/qq_34582693/article/details/79981742

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值