攔截器
攔截器的介紹:SpringMVC的處理器攔截器,類似於Servlet開發中的過濾器Filter,用於對處理器進行預處理和後處理
攔截器的使用場景:
1.日誌記錄
記錄請求信息的日誌,以便進行信息的監控、信息統計、計算PV(Page View)等等。
2.權限檢查
如登陸檢查,進入處理器檢測是否登陸,如果沒有登陸,直接返回登陸頁面
3.性能監控
有時候系統在某段時間莫名其妙的慢,可以通過攔截器在進入處理器之前記錄開始時間,在處理完後記錄結束時間,從而得到該請求的處理時間
4.通用行爲:、
讀取cookie得到用戶信息並將用戶對象放入請求,從而更加方便後續流程的使用,還有如提取Locale、Theme信息等,只要是多個處理器都需要的即可使用攔截器實現
5.OpenSessionView
如Hibernate,在進入處理器之前打開Session、在完成後關閉Session。......本質也是AOP,也就是符合橫切關注點的多有功能都可以放入攔截器實現
使用方法:
實現攔截器接口
postHandle()方法可以用來定義一些公共的變量,然後再視圖中就可以獲取到了。
afterCompletion()方法使用的不是很多。
檢查是否登陸:
1.新建一個包,並在該包下創建一個MyLoginInterceptor類並讓該類實現HandlerInterceptor接口
2.在spring-mvc.xml文件中配置一下,你要攔截哪一個目錄
3.再自己寫的攔截器中寫上如下的代碼,重啓服務器即可完成攔截
上傳
springMvc提供了一個上傳的組件:
1.需要在form表單中添加 enctype="multipart/form-data"屬性。這是必須要的。
2.在表單中使用<input type="file" name="file"/> ,這裏的type必須時file才行
3.在spring-mvc.xml文件中進行配置
4.在controller類中的代碼
注意事項:
然後就可以正常的上傳文件了。
歡迎關注小編的微信公衆號(java架構師資源分享)