【Spring专题-⑤】Spring RESTful风格

声明:

内容源自网络,仅供自己复习用途。

 

RESTful简介

 

/blog/1 HTTP GET =>  得到id = 1的blog
/blog/1 HTTP DELETE => 删除 id = 1的blog
/blog/1 HTTP PUT =>  更新id = 1的blog
/blog   HTTP POST =>  新增BLOG

 

 

 

1,REST架构师一个抽象的概念,目前主要是基于HTTP协议实现,其目的是为了提高系统的可伸缩性,降低应用之间的耦合度,便于框架分布式处理程序。

 

2,REST主要对以下两方面进行了规范

-定位资源的URL风格,例如

 http://baidu.com/admin/1234

 http://baidu.com/admin/1234/10/11

-如何对资源操作

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

 

 

3,什么是RESTful?

 -符合REST约束风格和原则的应用程序或设计就是RESTful.

1>URI: /资源名称/资源标识

2>HTTP请求方式 来区分对资源操作

 普通CRUD(uri来区分操作)RestfulCRUD
查询getEmpemp---GET
添加addEmp?xxxemp--POST
修改updateEmp?id=xxx&xxx=xxemp/{id}--PUT
删除deleteEmp?id=1emp/{id}--DELETE

 eg:  /emp/1  HTTP GET      查询id=1的emp

       /emp/1  HTTP DELETE    删除id=1的emp,实验中直接删除会报405错误,但是采用$.ajax异步删除就没问题

       /emp/1  HTTP PUT    跟新emp

       /emp/add  HTTP POST     新增emp

 

4,Spring对RESTful的支持

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

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

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

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

 

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

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

 

 

 

5,RequestMapping的一般应用格式。

 

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

 

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

 

 @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)   // 因为这个需要Ajax请求,所有返回的是个json

 @ResponseBody

 

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

 

 

 

6,客户端发送PUT,DELETE请求

  可以采用Ajax方式发送PUT和DELETE请求

$.ajax( {  
        type : "DELETE",  
        url : "/spring_crud_restful/emp/deleteEmp/" + id,  
        dataType : "json",  
        success : function(data) {  
            alert(data);  
            location.href = "/spring_crud_restful/emp/listEmp/1";  
        }  
    });

 

7,静态资源访问处理

 

采用RESTful架构后,需要将web.xml中控制器拦截的请求设置为/,这样会将css,js等静态资源进行拦截,发送404错误。

解决方法:

--配置<mvc:resources/> 

 <mvc:resources mapping="请求URI" location="资源位置" />

--配置<mvc:default-servlet-handler/>

 <mvc:default-servlet-handler/>

 

8. 应用举例

->跳转到 类 的 方法 loginForm
@RequestMapping(value={"/loginForm"}, method=RequestMethod.POST)
public ModelAndView loginForm(HttpServletRequest request, HttpSession session){
  ... 
  校验用户名、密码
  ...
  
  return new ModelAndView("redirect:/backIndex");
}


跳转到后台主页
@RequestMapping(value={"/backIndex"}, method=RequestMethod.GET)
public ModelAndView backIndex(HttpServletRequest request) {
……
return new ModelAndView("main/back_index", returnMap);
}
后台主页面 
\src\main\webapp\WEB-INF\views\main\back_index.jsp

 

【参考列表】

http://lydia-fly.iteye.com/blog/2164573

https://my.oschina.net/u/2272916/blog/352297

SpringMVC简单构造restful, 并返回json

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值