目录
这个注解既是类注解也是方法注解?
这个注解主要来实现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 List<String> fun3(@RequestParam List<String> list) {
return list;
}
@RequestMapping("/fun3")
public List<String> fun3(List<String> list) {
return list;
}
@RequestMapping("/fun3")
public List<String> fun3(@RequestParam("list") List<String> a) {
return a;
}
此时形参username的名字就可以随意更改了。
被@RequestParam修饰的参数默认为必传参数。
@RequestMapping("/fun3")
public List<String> fun3(@RequestParam(value = "list", required = false) List<String> 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";
}
}