建立連接
將用戶(瀏覽器)和java程序連接起來,也就是訪問一個地址能夠調用到我們的Spring程序。在 Spring MVC 中使用 @RequestMapping來實現URL 路由映射,也就是瀏覽器連接程序的作用。
1.@RequestMapping注解介紹
- @RequestMapping :它是用來注冊接口的路由映射的注解。當用戶訪問一個URL時,將用戶的請求對應到程序中某個類的某個方法的過程就叫路由映射。
- @RestController:與@RequestMapping 一起使用。 ?個項目中, 會有很多類, 每個類可能有很多的方法, Spring程序怎么知道要執行哪個方法呢?Spring會對所有的類進行掃描, 如果類加了注解@RestController, Spring才會去看這個類里面的方法有沒有加 @RequestMapping 這個注解。如果不寫@RestController會出下如下報錯:
2.@RequestMapping注解使用
訪問方法:類路徑 + 方法路徑
- 訪問地址:http://127.0.0.1:8080/user/sayHi
@RequestMapping("/user")
@RestController
public class UserController {@RequestMapping("/sayHi")public String sayHi(){return "hello,Spring MVC";}
}
- 訪問地址:http://127.0.0.1:8080/user/m1/say/hi
(RequestMapping 的URL路徑也可以是多層路徑 依然是 類路徑 + 方法路徑)
@RequestMapping("/user/m1")
@RestController
public class UserController {@RequestMapping("/say/hi")public String sayHi(){return "hello,Spring MVC";}
}
- 注1:@RequestMapping 的URL 路徑最前面加不加 / (斜杠)都可以, Spring程序啟動時, 會進行判斷, 如果前面沒有加 / , Spring會拼接上?個 /? (通常情況下, 我們加上 /)
@RequestMapping("user")
@RestController
public class UserController {@RequestMapping("sayHi")public String sayHi(){return "hello,Spring MVC";}
}
3. @RequestMapping 既支持Get請求, 又支持Post請求
-
可顯示的指定@RequestMapping 來接收POST請求
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;@RestController
public class UserController {@RequestMapping(value = "/getRequest",method= RequestMethod.POST)public String sayHi(){return "get request...";}
}
-
可顯示的指定@RequestMapping 來接收GET請求
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;@RestController
public class UserController {@RequestMapping(value = "/getRequest",method= RequestMethod.GET)public String sayHi(){return "get request...";}
}
4.GetMapping
和@RequestMapping相同用法,但專門支持Get請求
5.PostMapping
和@RequestMapping相同用法,但專門支持Post請求
注意:客戶端(瀏覽器)傳過來的數據會自動進行類型轉換(但不一定成功)