restful风格,restcontroller与controller

简介: 初步接触springmvc的时候,被要求使用restful风格,彼时一头雾水,不懂何谓restful,参阅了很多资料,慢慢的接触的也越来越多,如今spring的况且已基本运用熟练,简单谈一下我的一些看法,当然,只是我自己的浅显粗陋的见解,不对的地方还望指正。

初步接触springmvc的时候,被要求使用restful风格,彼时一头雾水,不懂何谓restful,参阅了很多资料,慢慢的接触的也越来越多,如今spring的况且已基本运用熟练,简单谈一下我的一些看法,当然,只是我自己的浅显粗陋的见解,不对的地方还望指正。

restful风格

简单的理解,restful是一种url风格,或者说是规范,在以前的网址中,假定一个业务,取得数据网址为http://test/get,添加信息的网址为http://test/post,类似这样。 
但是在restful风格中,取得数据和添加数据的网址均应为http://test,方法为get或者post;所以,在restful风格中,一个网址就是一个资源,其形式类似于http://xxx.com/xx/{id}/{id} ,例如某购物网站,产品有很多种类,每种产品下有很多子类型,那么http://shop.com/laptop/lenovo/1103 代表了联想1103型号电脑,而http://shop.com/laptop/hp/1024 代表了2014型号电脑。

在spring mvc中,有@requestparm, @requestbody和@pathvariable 三种注解来获得浏览器端的参数,其中前两者都是由浏览器post提交的参数,而@pathvariable 则是从网址中取得参数;假设代码如下:

@Requestmapping(value="/{category}/{brand}/{id},method=RequestMethod.POST)
public void getbyid(@PathVariable("category") String category
                                     @PathVariable("brand") String brand @PathVariable("id") String id){ //具体代码略 }

在上述代码中,访问http://shop.com/laptop/hp/1024网址时,则,category为“laptop”,brand为”hp”,id为”1024”;所以说,在restful风格中,一个网址即表示了一个资源。

restcontroller与controller

假定一个user对象,对象有很多属性(name,sex,age,birth,address,tel) 
在我的了解中,这二者的区分为:@restcontroller为@controller和@responsebody的结合 
在@controller注解中,返回的是字符串,或者是字符串匹配的模板名称,即直接渲染视图,与html页面配合使用的,
在这种情况下,前后端的配合要求比较高,java后端的代码要结合html的情况进行渲染,使用model对象(或者modelandview)的数据将填充user视图中的相关属性,然后展示到浏览器,这个过程也可以称为渲染; 
java示例代码如下:

@Controller
@RequestMapping(method = RequestMethod.GET, value = "/")
    public String getuser(Model model) throws IOException { model.addAttribute("name",bob); model.addAttribute("sex",boy); return "user";//user是模板名 }

对应视图user.jsp中的html代码:
<html xmlns:th="http://www.thymeleaf.org">
<body> <div> <p>"${name}"</p> <p>"${sex}"</p> </div> </body> </html>

而在@restcontroller中,返回的应该是一个对象,即return一个user对象这时,在没有页面的情况下,也能看到返回的是一个user对象对应的json字符串,而前端的作用是利用返回的json进行解析渲染页面,java后端的代码比较自由。 

java端代码:

@RestController
@RequestMapping(method = RequestMethod.GET, value = "/")
    public User getuser( ) throws IOException { User bob=new User(); bob.setName("bob"); bob.setSex("boy"); return bob; } 

访问网址得到的是json字符串{“name”:”bob”,”sex”:”boy”},前端页面只需要处理这个字符串即可。

http://blog.csdn.net/pinebud55/article/details/52183238?locationNum=12

 

相关文章
|
XML JSON 前端开发
Spring MVC RESTful风格详解(1)
简介: 你好看官,里面请!今天笔者讲的是Spring MVC框架RESTful风格(1)[会继续连载] 不懂可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途.
297 3
Spring MVC RESTful风格详解(1)
|
JSON 前端开发 Java
Restful风格的编程
Restful风格的编程
189 0
Restful风格的编程
|
存储 JSON Java
java小技能:Swagger (RESTful 风格的 Web 服务框架)
后端修改了接口,需要手动维护api文档,加大了开发的工作量和困难,而swagger的出现就是为了解决这一系列的问题。
162 0
java小技能:Swagger (RESTful 风格的 Web 服务框架)
SpringMVC RestFul风格实现
在controller层中定义如下的代码,代码会获取路径上的值并返回a和b的加和: RestFul风格的路径需要使用@PathVariable注解表示变量:
139 0
SpringMVC RestFul风格实现
|
API 数据库 网络架构
【DRF】快速入门,使用DjangoRestFrameWork自动生成Restful风格的增删改查代码和接口文档!
⭐都快2023年了还有人自己写增删改查代码?!?我不允许还不会有人用DRF! ⭐今天教大家使用 Django Rest FrameWork 自动生成Restful风格的增删改查代码和接口文档!
295 0
SpringMVC的Restful风格
一.Restful风格的基本介绍 1.Restful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。主要用于客户端和服务器端交互类的软件,基于这个风格设计的软件可以更加简洁,更有层次,更易于实现缓存机制等。 2.Restful风格的请求使用“url+请求方式”表示一次请求目的,HTTP协议里面四个表示操作方式的动词如下:
|
XML JSON 缓存
|
XML JSON 前端开发
RESTful风格的应用(一)
RESTful风格的应用
123 0
RESTful风格的应用(一)
|
设计模式 前端开发 搜索推荐
【node进阶】深入浅出---MVC设计模式&RESTful风格
【node进阶】深入浅出---MVC设计模式&RESTful风格
【node进阶】深入浅出---MVC设计模式&RESTful风格