SpringMVC:
表述層作用:1.接受前端引數[SpringMVC簡化]
2.呼叫業務邏輯
3.響應前端資料[SpringMVC簡化]
SpringMVC元件:
1.DispatcherServlet:處理全部請求
2.handlerMapping:快取handler方法和地址
3.handlerAdapter:介面卡、引數和相應簡化
4.ViewResovler檢視直譯器:查詢檢視頁面、簡化檢視查詢
5.handler:處理器,
SpringMVC接收資料:
1.訪問路徑設定
@RequestMapping:將請求的URL地址和處理請求的方式關聯起來,建立對映
* 1.精準地址/user/log {"地址1","地址2"}
* 2.支援模糊 * 任意一層字串 | **任意層字串
* /user/*
* /user/**
* 3.類上新增@RequestMapping也可以 類下面的方法公共的路徑
* 4.請求方式指定
客戶端 -> http(ger | post | put | delete) -> dispatcherServlet - > handler
預設情況下:@RequestMapping("login)只要地址正確,任何請求方式都可以訪問
指定請求方式:
@RequestMapping(value = "/login",method = RequestMethod.POST)
@RequestMapping(value = "/register",method = {RequestMethod.GET,RequestMethod.POST})
不符合的報405
或者直接在方法上加@GetMapping @PostMapping @PutMapping @DeleteMapping
2.接收引數[重點]
①param和json的引數比較
Param: key=value&key=value
JSON: {key:value,key:value}
②param引數接收
1.直接接收
/param/data?name=root&age=18
//直接接收 引數=形參
@RequestMapping("data")
public String data(String name,int age){
System.out.println("name = " + name + ", age = " + age);
return "name = " + name + ", age = " + age;
}
2.使用@RequestParam
/param/data?account=root&age=18
public String data1(@RequestParam(value = "account") String username , @RequestParam(required = false,defaultValue = "1") int page){
@RequestParam:value:將account指定為username
required = false 指定非必須傳值
defaultValue = "1" 設定預設值
3.特殊場景接收
①一值多收
//一名多值 key=1&key=2 使用集合接收[但要使用@RequestParam]
//param/data2?hbs=吃&hbs=玩&hbs=學習
@GetMapping("data2")
@ResponseBody
public String data2(@RequestParam List<String> hbs){
System.out.println("hbs = " + hbs);
return "ok";
②使用實體物件接值
//使用者註冊(使用者資訊) -》 對應的實體類 -》 插入到資料庫、表
//param/data3?name=二狗子&age=18
// 準備一個對應屬性的ger|set方法的實體類物件即可
// 形參列表
@RequestMapping("data3")
@ResponseBody
public String data3(User user){
System.out.println("user = " + user);
return user.toString();
}
}
4.路徑引數接收
/user/root/123456
//動態路徑設定{key} = * {key}
//接收路徑引數
@RequestMapping("{account}/{password}")
public String login(@PathVariable(value = "account") String username,@PathVariable String password){
System.out.println("username = " + username + ", password = " + password);
return "username = " + username + ", password = " + password;
}