目录
@RequestMapping
实现路由映射
限制请求方式
@PathVariable
从url中获取变量的值
@RequestParam
可以传递集合
更改绑定参数的名字
可修改是否为必传参数
@RequestBody
获取请求正文的内容
可修改是否为必传参数
@RequestPart
可以支持上传文件
更改绑定参数的名字
可修改是否为必传参数
@Controller
@CookieValue
获取指定的Cookie值
@SessionAttribute
获取指定的Session值
@RequestHeader
获取请求头中的值
@Controller
返回html页面
@ResponseBody
设置返回类型为数据
这个注解既是类注解也是方法注解
这个注解主要来实现URL路由映射,也就是浏览器连接程序的作用。
url的组成:http://IP:端口号/类注解/方法注解
@RestController public class LoginController { @RequestMapping("/fun1") public String fun1() { return "hahaha"; } }
@RequestMapping("/test") @RestController public class LoginController { @RequestMapping("/fun1")// "/"可写可不写 public String fun1() { return "hahaha"; } }
@RequestMapping("/test") @RestController public class LoginController { @RequestMapping(value = "/fun1", method = RequestMethod.GET)// 只接收GET请求 public String fun1() { return "hahaha"; } }
@RequestMapping("/fun2/{name}") public String fun2(@PathVariable String name) { return "name:"+name; }
此时形参username的名字就可以随意更改了。
如果不加 @RequestParam注释Spring会默认将前端传的集合转换成数组。
@RequestMapping("/fun3") public Listfun3(@RequestParam List list) { return list; }
@RequestMapping("/fun3") public Listfun3(List list) { return list; }
@RequestMapping("/fun3") public Listfun3(@RequestParam("list") List a) { return a; }
此时形参username的名字就可以随意更改了。
被@RequestParam修饰的参数默认为必传参数。
@RequestMapping("/fun3") public Listfun3(@RequestParam(value = "list", required = false) List a) { return a; }
此时如果不传参数就不会报错。
@RequestMapping("/fun4") public String fun4(@RequestBody User user){ return user.toString(); }
被@RequestBody修饰的参数默认为必传参数。
将其设置为非必传参数:
@RequestMapping("/fun4") public String fun4(@RequestBody(required = false) User user){ return user.toString(); }
@RequestMapping("/fun5") public String fun5(@RequestPart MultipartFile file){ return file.getOriginalFilename();//返回文件名 }
@RequestMapping("/fun5") public String fun5(@RequestPart("file") MultipartFile a){ return a.getOriginalFilename(); }
被@RequestPart修饰的参数默认为必传参数。
@RequestMapping("/fun5") //设置参数为非必传 public String fun5(@RequestPart(value = "file", required = false) MultipartFile a){ return a.getOriginalFilename(); }
注:@CookieValue该注释只能获取一个Cookie值。
@RequestMapping("/fun6") //获取Cookie中键为name的值 public String fun6(@CookieValue("name") String value) { return "name:"+value; }
首先在浏览器中创建一个 Cookie
注:只能获取单个Session
//因为Session是服务器端的概念,所以获取之前应该先设置 @RequestMapping("/fun7") public void fun7(HttpSession session) { //设置Session值 session.setAttribute("name", "zhangsan"); } //获取Session值 @RequestMapping("/fun8") public String fun8(@SessionAttribute("name") String name) { return "name:"+name; }
下面这是一段请求头信息
现在获取里面的Host的值
@RequestMapping("/fun9") public String fun9(@RequestHeader("Host") String data) { return "Host:"+data; }
@Controller是一个类注解,它定义⼀个控制器,Spring框架启动时加载,把这个对象交给Spring管理。默认返回的是一个页面。
先创建一个HTML页面login.html
里面只有一行代码:
@Controller @RequestMapping("/test1") public class Test { @RequestMapping("/fun1") public String fun1() { return "/login.html"; } }
注:这个注解既可以修饰类,也可以修饰方法。
被修饰的类或方法都只能返回数据。
@Controller @RequestMapping("/test1") public class Test { @ResponseBody @RequestMapping("/fun1") public String fun1() { return "/login.html"; } }