Springboot中Rest風格請求對映如何開啟並使用

沒有你哪有我發表於2021-07-19

問題引入

因為前端頁面只能請求兩種方式:GET請求和POST請求,所以就需要後臺對其進行處理

解決辦法:通過springmvc中提供的HiddenHttpMethodFilter過濾器來實現

而由於我們springboot中通過OrderedHiddenHttpMethodFilter類去繼承了springmvc中的HiddenHttpMethodFilter類,所以該類就擁有了HiddenHttpMethodFilter的所有功能,而只要我們在springboot啟動時將該元件加入到容器中,那麼該功能就會生效

生效的條件:

檢視HiddenHttpMethodFilter過濾器原始碼

找到其中的 doFilterInternal()方法

編寫程式碼

後臺控制器UserController

 1 package com.lzp.controller;
 2 
 3 import org.springframework.web.bind.annotation.*;
 4 
 5 /**
 6  * @Author LZP
 7  * @Date 2021/7/19 11:18
 8  * @Version 1.0
 9  */
10 @RestController
11 public class UserController {
12 
13     @PostMapping("/user")
14     public String post() {
15         return "POST-USER";
16     }
17 
18     @DeleteMapping("/user")
19     public String delete() {
20         return "DELETE_USER";
21     }
22 
23     @PutMapping("/user")
24     public String put() {
25         return "PUT_USER";
26     }
27 
28     @GetMapping("/user")
29     public String get() {
30         return "GET-USER";
31     }
32 
33 
34 
35 }

HTML頁面程式碼

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <form action="/user" method="get">
 9         <input type="submit" value="GET方法">
10     </form>
11     <form action="/user" method="post">
12         <input type="submit" value="POST方法">
13     </form>
14     <form action="/user" method="post">
15         <input type="hidden" name="_method" value="DELETE">
16         <input type="submit" value="DELETE方法">
17     </form>
18     <form action="/user" method="post">
19         <input type="hidden" name="_method" value="PUT">
20         <input type="submit" value="PUT方法">
21     </form>
22 </body>
23 </html>

開啟過濾器

在springboot全域性配置檔案application.properties中進行配置

前端頁面效果展示

get請求

 

 

post請求

 

 

delete請求

 

 

put請求

 

 

這樣一來,我們就可以使用Rest風格,即使用請求方式來判斷使用者的具體業務操作,避免了原生的請求名稱過長,或不易記、以後也不需要為想名字而煩惱了

相關文章