SpringMvc筆記-對RESTFUL風格的配置

lonecloud發表於2017-04-08

1.@RequestMapping註解可以使用如下引數:

    1,params:例如params={'username',"age!=100"}表示需要usernmame並且age 屬性不能等於100

    2. headers:為請求頭 確定他的請求頭是啥的時候才能訪問headers={"Accept-lanuage=us,ZN"}

2.@PathVariable("id")實現REST風格的一步,可以將目標方法的引數中

1     @GetMapping("/test/{id}")
2     public String test(@PathVariable("id") String id){
3         return null;
4     }

3.REST風格中的POST,GET,DELETE,PUT請求

GET和POST請求自帶有這個功能

主要是DELETE和PUT請求

SpringMVC中在3.0後已經支援了Restful風格了。

具體一下幾步:

1.配置web.xml中的攔截器

1     <!--用於對RESTful風格的攔截器 -->
2     <filter>
3         <filter-name>HiddenHttpMethodFilter</filter-name>
4         <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
5     </filter>
6     <filter-mapping>
7         <filter-name>HiddenHttpMethodFilter</filter-name>
8         <url-pattern>/*</url-pattern>
9     </filter-mapping>

2.編寫對應的請求方式

 

 1 package cn.lonecloud.controller;
 2 
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.web.bind.annotation.PathVariable;
 5 import org.springframework.web.bind.annotation.RequestMapping;
 6 import org.springframework.web.bind.annotation.RequestMethod;
 7 /**
 8  * 對RestFul的支援
 9  * @Title: RestController.java
10  * @Package cn.lonecloud.controller
11  * @Description: 
12  * @author lonecloud
13  * @date 2017年4月9日 上午10:47:47
14  */
15 @RequestMapping("/rest")
16 @Controller
17 public class RestController{
18 
19     @RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE)
20     public String RestDelete(@PathVariable("id")String id){
21         System.out.println("delete"+id);
22         return "list";
23     }
24     @RequestMapping(value="/testRest/{id}",method=RequestMethod.GET)
25     public String RestGET(@PathVariable("id")String id){
26         System.out.println("get"+id);
27         return "list";
28     }
29     @RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT)
30     public String RestPUT(@PathVariable("id")String id){
31         System.out.println("put"+id);
32         return "list";
33     }
34     @RequestMapping(value="/testRest/{id}",method=RequestMethod.POST)
35     public String RestPOST(@PathVariable("id")String id){
36         System.out.println("post"+id);
37         return "list";
38     }
39     @RequestMapping(value="/testRest/",method=RequestMethod.GET)
40     public String RestPOST(){
41         return "list";
42     }
43 }

 

 3.對連結進行POST請求在POST請求中攜帶隱藏域引數name="_method" value="DELETE/PUT"請求的input框即可

 

完整程式碼:

 

  

相關文章