springMVC-RESTful

 

概述

REST:Representational State Transfer(表述性状态转移)

作用:架构约束条件和原则

核心

1、  资源与URI

2、  资源的表述

3、  状态的转移

特点

1、  统一客户端访问资源的接口

2、  有利不同系统之间的资源共享

3、  URL更简洁,易于理解和扩展

REST下的http协议的四种形式

rest:直接跟值,不需要键值对的形式传递

 

get:获取资源-------select用-------@GetMapping

缩写:@RequestMapping(method = RequestMethod.GET)

post:新建资源-------insert用-------@PostMapping

put:修改资源------update用-------@PutMapping

delete:删除资源-------delete用-------@DeleteMapping

在springMVC中使用步骤:

1、将post请求转换为put和delete请求

配置filter

1 <filter>
2     <filter-name>hiddenHttpMethodFilter</filter-name>
3     <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
4 </filter>
5 
6 <filter-mapping>
7     <filter-name>hiddenHttpMethodFilter</filter-name>
8     <url-pattern>/*</url-pattern>
9 </filter-mapping>

在jsp页面设置请求类型

get和post请求在处理时不需要特别处理,但是put和delete在请求时jsp页面没有对应的方法,需要我们手动设置隐藏属性

Put请求

1 <input type="hidden" name="_method" value="PUT"/>

Delete请求

1 <input type="hidden" name="_method" value="DELETE"/>

2、在controller层时,通过mapping映射规定请求类型,只有指定的类型可以进入

 insert:

1 @PostMapping(value = "/add")
2     public String add(Course course){
3         courseDAO.add(course);
4         return "redirect:/getAll";
5     }

update:

1 @PutMapping(value = "/update")
2     public String update(Course course){
3         courseDAO.update(course);
4         return "redirect:/getAll";
5     }

delete:

1 @DeleteMapping(value = "/delete/{id}")
2     public String delete(@PathVariable(value = "id")  int id){
3         courseDAO.deleteById(id);
4         return "redirect:/getAll";
5     }

select:

1 @GetMapping(value = "/getAll")
2     public ModelAndView getAll(){
3         ModelAndView modelAndView = new ModelAndView();
4         modelAndView.setViewName("index");
5         modelAndView.addObject("courses",courseDAO.getAll());
6         return modelAndView;
7     }

猜你喜欢

转载自www.cnblogs.com/thyHome/p/9094963.html
今日推荐