SpringMVC的Restful支持

什么是Rest

REST 的意思是表述性状态转换。他是一种软件的架构风格,不是一种标准。只提供了约束

条件和设计原则。基于REST风格设计的 URL 更加的间接、更有层次感,并且更容易实现缓存

等机制。Restful的特性 : 

把互联网上的资源(网络中的实体)以表现层的方式呈现出来。(表述性)

客户端发送请求操作服务器,必须通过一种手段来让服务端的状态转化。(状态转化)

而这种转化是建立在表现层上的,也就是 表现层的状态转化。这种转化对应HTTP协议的四种请求方式: 

GET、PSOT、PUT、DELETE,他们分别对应四种操作,对应的顺序是 查询、新增、修改、删除 .

SpringMVC对RESTful的风格的支持。

用到的注解 @PathVariable 使用这个注解可以解析出URL中变量。

之前的 URL 是

 localhost:8080/ssm-demo/findUser?id=1234&name=张三

 而RESTful风格的URL是 

 localhost:8080/ssm-demo/findUser/1234/张三

Controller 层的方法接受参数的方式也改变了

@RequestMapping("/{id}/{name}")
@ResponseBody
public User findUser(@PathVariable String id, @PathVariable String name) {

    User u = userService.findUser(id, name);
    return u;
}

之前在WEB应用中  @RequestMapping 中一种请求路径(URL)只能放一个否则启动会报异常, 现在可以

通过 设置RequestMapping  的 Method 属性,可以将同一个URL 映射到不同的 Controller 方法中。

比如

//注意 其中 在WEB项目中get请求中如果传输中文的话会出现乱码,比如说是name,因为 tomcat 中 默认 的编
//码是 ISO8859-1, 解决办法有几种
 //   1.  Tomcat 的 server.xml  中的Connector 标签 中添加 URIEncoding= "UTF-8"
 //   2.  获取到参数的时候,可以对他重新编码
 //   String tempName= new   String(name.getBytes("ISO8859-1"),"utf-8") 
@RequestMapping(value ="/{id}/{name}",  method = RequestMethod.GET)
@ResponseBody
public User findUser(@PathVariable String id, @PathVariable String name) {

    name= new   String(name.getBytes("ISO8859-1"),"utf-8") 

    User u = userService.findUser(id, name);
    return u;
}

@RequestMapping(value ="/{id}/{name}",  method = RequestMethod.PUT)
@ResponseBody
public String updateUser(@PathVariable String id, @PathVariable String name) {

    User u = userService.updateUser(id, name);
    return "修改成功";
}

 

也可使用语义化更明显的请求注解 @GetMapping @PostMapping @PutMapping @DeleteMapping

可以通过上面的简单例子看出 一个User 可以多种表现形式。而这也是RESTful服务中的一个重要特性:

一种互联网资源可以有多种表现形式

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值