大綱:
1.SpringMVC架構以及組件
2.參數綁定
3.高級參數綁定
4.@Requestmapping註解的使用
5.Controller方法返回值
6.SpringMVC中異常處理
7.圖片上傳處理
8.Json數據交互
9.SpringMVC實現Restfull
10.攔截器
1.SpringMVC架構以及組件
架構圖見自己總結
1、 用戶發送請求至前端控制器DispatcherServlet
2、 DispatcherServlet收到請求調用HandlerMapping處理器映射器。
3、 處理器映射器根據請求url找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一併返回 給DispatcherServlet。
4、 DispatcherServlet通過HandlerAdapter處理器適配器調用處理器
5、 執行處理器(Controller,也叫後端控制器)。
6、 Controller執行完成返回ModelAndView
7、 HandlerAdapter將controller執行結果ModelAndView返回給DispatcherServlet
8、 DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器
9、 ViewReslover解析後返回具體View
10、 DispatcherServlet對View進行渲染視圖(即將模型數據填充至視圖中)。
11、 DispatcherServlet響應用戶
核心組件說明:
HandlerMapping:處理器映射器。
HandlAdapter:處理器適配器。
View Resolver:視圖解析器。
說明:在springmvc的各個組件中,處理器映射器、處理器適配器、視圖解析器稱爲springmvc的三大組件。需要用戶開放的組件有handler、view。
配置文件需要配置springmvc.xml以及web.xml中配置前端控制器。
2.參數綁定
默認支持的參數類型:包括:HttpServletRequest、HttpServletResponse、HttpSession、Model四種
基本數據類型:推薦使用包裝類型。
pojo類型:
自動以參數綁定:比如日期類型需要自定義轉換器。
解決get和post亂碼問題件文檔。
3.高級參數綁定
a) 數組類型的參數綁定
b) List類型的綁定
在VO中添加數組或者集合即可。
public class QueryVo {
//商品對象
private Items items;
//訂單對象…
//用戶對象….
//批量刪除使用,使用數組
private Integer[] ids;
//批量刪除使用,使用List
private List<Items> itemsList;
public List<Items> getItemsList() {
return itemsList;
}
public void setItemsList(List<Items> itemsList) {
this.itemsList = itemsList;
}
public Integer[] getIds() {
return ids;
}
public void setIds(Integer[] ids) {
this.ids = ids;
}
public Items getItems() {
return items;
}
public void setItems(Items items) {
this.items = items;
}
}
4.@Requestmapping註解的使用
在類上面添加此註解:窄化請求映射。相當於URl中多了一層目錄。
5.Controller方法返回值
- 返回ModelAndView:對象中可添加model數據、指定view
- 返回字符串:返回view的邏輯視圖名稱。
- 返回void:
3.1、使用request轉向頁面,如下:
request.getRequestDispatcher(“頁面路徑”).forward(request, response);
3.2、也可以通過response頁面重定向:
response.sendRedirect(“url”)
6.SpringMVC中異常處理:全局異常處理
7.圖片上傳處理
8.Json數據交互
@RequestBody:接收http請求的json數據,將json數據轉換爲java對象。
@ResponseBody:將controller方法返回對象轉換爲json響應給客戶端。
注意:如果使用 則不用做其他的額外的配置。
9.SpringMVC實現Restfull
Restfull:Restful就是一個資源定位及資源操作的風格。不是標準也不是協議,只是一種風格,是對http協議的詮釋。要求url中不能有.action,沒有動詞,只有名詞,沒有?傳參。
10.攔截器
多用於權限控制,比如登錄。具體內容及配置見代碼。