☆1.參數(shù)綁定:(從請求中接收參數(shù))
1)默認(rèn)支持的類型:Request,Response,Session,Model
2)基本數(shù)據(jù)類型(包含String)
3)Pojo類型
4)Vo類型
5)Converter自定義轉(zhuǎn)換器
6)數(shù)組
7)List
☆2.controller方法返回值(指定返回到哪個頁面, 指定返回到頁面的數(shù)據(jù))
1)ModelAndView
modelAndView.addObject("itemList", list); 指定返回頁面的數(shù)據(jù)
modelAndView.setViewName("itemList"); 指定返回的頁面
2)String(推薦使用)
返回普通字符串,就是頁面去掉擴展名的名稱, 返回給頁面數(shù)據(jù)通過Model來完成
返回的字符串以forward:開頭為請求轉(zhuǎn)發(fā)
返回的字符串以redirect:開頭為重定向
3)返回void(使用它破壞了springMvc的結(jié)構(gòu),所以不建議使用)
可以使用request.setAttribut 來給頁面返回數(shù)據(jù)
可以使用request.getRquestDispatcher().forward()來指定返回的頁面
如果controller返回值為void則不走springMvc的組件,所以要寫頁面的完整路徑名稱
相對路徑:相對于當(dāng)前目錄,也就是在當(dāng)前類的目錄下,這時候可以使用相對路徑跳轉(zhuǎn)
絕對路徑:從項目名后開始.
在springMvc中不管是forward還是redirect后面凡是以/開頭的為絕對路徑,不以/開頭的為相對路徑
例如:forward:/items/itemEdit.action 為絕對路徑
forward:itemEdit.action為相對路徑
3.架構(gòu)級別異常處理:
主要為了防止項目上線后給用戶拋500等異常信息,所以需要在架構(gòu)級別上整體處理.hold住異常
首先自定義全局異常處理器實現(xiàn)HandlerExceptionResolver接口
在spirngMvc.xml中配置生效
4.上傳圖片:
1)在tomcat中配置虛擬圖片服務(wù)器
2)導(dǎo)入fileupload的jar包
3)在springMvc.xml中配置上傳組件
4)在頁面上編寫上傳域,更改form標(biāo)簽的類型
5)在controller方法中可以使用MultiPartFile接口接收上傳的圖片
6)將文件名保存到數(shù)據(jù)庫,將圖片保存到磁盤中
5.Json數(shù)據(jù)交互:
需要加入jackson的jar包
@Requestbody:將頁面?zhèn)鞯絚ontroller中的json格式字符串自動轉(zhuǎn)換成java的pojo對象
@ResponseBody:將java中pojo對象自動轉(zhuǎn)換成json格式字符串返回給頁面
6.RestFul支持:
就是對url的命名標(biāo)準(zhǔn),要求url中只有能名詞,沒有動詞(不嚴(yán)格要求),但是要求url中不能用問號?傳參
傳參數(shù):
頁面:${pageContext.request.contextPath }/items/itemEdit/${item.id}
方法: @RquestMapping("/itemEdit/{id}")
方法: @PathVariable("id") Integer idd
7.攔截器:
作用:攔截請求,一般做登錄權(quán)限驗證時用的比較多
1)需要編寫自定義攔截器類,實現(xiàn)HandlerInterceptor接口
2)在spirngMvc.xml中配置攔截器生效
8.登錄權(quán)限驗證:
1)編寫登錄的controller, 編寫跳轉(zhuǎn)到登錄頁面的方法, 編寫登錄驗證方法
2)編寫登錄頁面
3)編寫攔截器
運行過程:
1)訪問隨意一個頁面,攔截器會攔截請求,會驗證session中是否有登錄信息
如果已登錄,放行
如果未登錄,跳轉(zhuǎn)到登錄頁面
2)在登錄頁面中輸入用戶名,密碼,點擊登錄按鈕,攔截器會攔截請求,如果是登錄路徑放行
在controller方法中判斷用戶名密碼是否正確,如果正確則將登錄信息放入session