建立连接
将用户(浏览器)和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请求
注意:客户端(浏览器)传过来的数据会自动进行类型转换(但不一定成功)