restFul理解

一.基本概念:

REST,即表述性状态转移。它包括以下五个概念:

资源 Resource:服务器上获取到的东西,

资源的表述 Representation:资源的格式,如HTML、XML、JSON、纯文本、图片等,

状态转移 State Transfer:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述,

统一接口 Uniform Interface:通过统一的接口对资源进行操作,

超文本驱动 Hypertext Driven:资源之间通过超链接相互关联。

 

二.SpringMVC中RESTful的应用

1.基本规则:

- Spring MVC 对 RESTful应用提供了以下支持

- 利用@RequestMapping指定要处理请求的URI模板和HTTP请求的动作类型

- 利用@PathVariable讲URI请求模板中的变量映射到处理方法参数上

- 利用Ajax,在客户端发出PUT、DELETE动作的请求

- 采用HTTP协议规定的GET、POST、PUT、DELETE动作处理资源的增删该查操作

如:

@RequestMapping(value = "/select/{id}",method = RequestMethod.GET)

public String select(@PathVariable("id") Integer id, Model model) {}

@RequestMapping(value = "/insert",method = RequestMethod.POST)

       publicString insert(@RequestParam(“user”)User user, Model model){}

@RequestMapping(value = "/update",method = RequestMethod.PUT)

       publicString insert(@RequestParam(“user”)User user, Model model){}

@RequestMapping(value = "/delete/{id}",method = RequestMethod.DELETE)

       publicString delete(@PathVariable("id") Integer id, Model model){}


2.注意事项:

1).@Controller和@RestController的区别

使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return里的内容,比较适合返回JSON,XML或自定义mediaType内容到页面。

如果需要返回到指定页面,则需要用@Controller配合视图解析器InternalResourceViewResolver才行,即@RestController= @Controller + @ResponseBody。

使用@RequestMapping注解为控制器指定可以处理哪些URL请求,加在类上表示初步的请求映射信息,相对于Web应用的根目录,加再方法上提供进一步的细分映射信息,相对于类定义处的URL。若类定义处未标注@RequestMapping注解,则方法处标记的 URL 相对于Web应用的根目录。

 

2).@RequestParam与@PathVariable区别

@RequestParam注解是获取静态URL传入的参数,@PathVariable是获取请求路径中的变量作为参数。一般restful风格的参数都是跟在请求路径之后,因此需要使用@PathVariable来获取。只是注意,当发生POST请求时,参数不需要挂在请求路径下,直接在方法中声明对应类型的参数即可获取,不需@PathVariable。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值