開濤SpringMVC筆記

SpringMVC筆記

再次學習開濤SpingMVC,總結此筆記,鳴謝開濤:

  • 1.SpringMVC簡介
  • 2.Spring MVC-HelloWorld
  • 3.DispatcherServlet理解
  • 4.Controller接口詳解
  • 5.Controller攔截器詳解
  • 6.Controller註解詳解
  • 6.1 Controller註解——生產者消費者模式
  • * 未完 *

1.SpingMVC簡介

1.請求-響應模型
2.標準MVC模型
3.WebMVC模型
4.Web發展流程
CGI、Servlet、JSP、Model1(JSP+JavaBean)、Model2(Web MVC)
5.WebMVC特點、各模塊特點

2.SpringMVC-HelloWrold

1.SpringMVC是什麼、有什麼用
2.SpingMVC架構——請求處理流程(**
3.優勢
4.HelloWorld(**
流程分析,亂碼配置(Post亂碼配置)
5.SpringMVC特性(*),即註解配置
常用註解;RestFul註解配置;其他註解配置

3. DispatcherServlet詳解

1.dispatcherServlet 作用
2.web.xml配置
3.上下文關係、調用順序等等(**
4.初始化順序;
5.默認配置

4.Controller接口詳解

1.Controller作用
2.Controller類圖、接口等
3.AbstractController用法
通過response 寫響應;
在xml中,在Controller的配置屬性property設置:
強制請求方法類型爲post或get;
強制要求請求有session,串行訪問;
設置客戶端緩存時間;客戶端不緩存;
ETag(實體標記)緩存機制;(客戶端第一次請求時,服務器給客戶端一個ETag,當客戶端第二次請求時,服務器端計算ETag,沒有變化,則http響應頭狀態爲304;
4.ServletForwardingController
客戶端請求這個Controller時,這個Controller可以將請求Forward到一個Servlet
5.AbstractCommandController——命令控制器(廢除)
客戶端請求 user.name,user.pwd時,該控制器能自動裝配user bean
6.SimpleFormController(表單控制器)
寫一個自定義控制器,實現該接口,其中實現 formBackObject 和referenceData 方法,這兩個方法返回的Object就是 你要提交的表單數據對象;
7.CancellableFormController
和上面類似,實現 OnCancel()方法,
8.AbstractWizardFormController——嚮導控制器
寫一個自定義控制器,實現該接口,其中實現 referenceData() _實現邏輯,第一頁返回啥,第二頁返回啥
processFinish()_結束後返回啥
processCancel()_取消後返回啥
方法,並在xml中配置即可,即可實現一步一步的引導功能;
9.AbstractUrlViewController
在xml文件中配置的類,將請求的Url轉換成爲返回視圖
/index/*,可以匹配 /index/demo
/index/**,可以匹配index下的所有目錄,包括/index/demo,index/xxx/demo
/*.html,匹配abc.html
?,匹配一個字符,/index?,匹配 /index1,但是不匹配/index,/index12
,匹配零個或多個字符,如/index/,可以匹配一個/index/demo,但不匹配 /index/demo/demo
**,可以匹配/index/demo/demo
最長匹配優先
10.MultiActionController——廢除
場景,每一個功能對應一個控制器,如CRUD操作。
用法:
public (ModelandView | Map | String | void) actionName (httpServletRequest request,HttpServletRespose response, HttpSession session, AnyObject)
實現上述的方法即可,注意參數是可選的
然後在xml文件中配置,引用的類 <bean id ="xx" class = "org.xx.xx.MethodNameParse“>根據請求的方法名解析成相應方法
<bean id ="xx" class="org.xx.xx.PropertiesMethodNameReslover>根據配置的屬性映射
11.ResqusetToViewNameTranslator
直接將請求轉換成爲 返回的邏輯視圖名
12.數據類型轉換

寫一個屬性轉換編輯器,繼承PropertyEditorSupport;
寫一個Controller,繼承AbstractCommandController,在其中某一個方法中綁定註冊屬性(例如針對電話號碼類轉換,就使用CustomDateEditor)轉換編輯器;
在xml中註冊這個Controller即可;

如果使用WebDataBinder,而不是CustomDateEditor,則註冊的這個屬性轉換器是這個Controller所獨享,如果不想獨享,使用WebBindingInitializer註冊即可。
PropertyEditor 被限制爲只能 String<——>Object 之間轉換, 不能 Object<——>Object, Spring3 提供了更強大的類 型轉換( Type Conversi on) 支持, 它可以在任意對象之間進行類型轉換, 不僅僅是 String<——>Object。

13.數據驗證(**
流程:
1、 首先進行數據綁定驗證,如果驗證失敗會通過 MessageCodesResolver 生成錯誤碼放入 Errors 錯誤
2、 數據不合法驗證, 通過自 定義的驗證器驗證,如果失敗需要手動將錯誤碼放入 Errors 錯誤對象;
錯誤對象和錯誤消息:什麼場景下使用和怎麼使用
數據綁定失敗的處理方法
數據不合法時候的處理方法:實現Validator接口,實現其中的supports()和validate()方法即可;

5. 處理器攔截器詳解(**

1.類似於Servlet中的filter過濾器
2.應用場景
日誌記錄(信息統計,計算PV);
權限檢查(登錄認證);
性能監控;
通用行爲;
OpenSessionInView
3.攔截器接口和適配器
HanderInterceptorAdapter,其中preHander(),postHander(),afterCompletion
實現這個接口,並在xml中在Controller下的屬性中進行相應的配置即可達到目的
舉例:性能監控,記錄這個Controller耗時情況(); 登錄認證():

6. 註解式控制器詳解

1.常見的註解;
2.註解式控制器運行流程及處理器定義
@Controller
@RequestMapping
窄化請求映射:在類名上爲父,在方法上爲子;
請求映射規格:URL路徑映射(普通URL映射;URI映射;Ant風格映射;正則表達式映射;或 映射)
請求方法限定:限定爲post或者get ,@RequestMapping(value=”create”,method = RequestMethod.POST)
請求參數數據限定:@RequestMapping(Params=”create”),匹配 http://xx/params1?create
請求數據中指定參數名和沒有指定參數名
請求數據中指定參數名=數據和!=數據
請求數據中參數名之間是”且“關係
請求頭(header)數據和上面類似
: 請求數據中指定參數名和沒有指定參數名; 請求數據中指定參數名=數據和!=數據; 請求數據中參數名之間是”且“關係;

第六章 註解式控制器詳解 ——生產者消費者模式

1.基本概念(Http中傳輸的類型)
Media Type 媒體類型——即請求的內容類型或響應的內容類型
Context-Type內容類型:請求頭的內容類型,即發送到服務器的內容數據的媒體類型
(key/Value數據類型、JSON數據類型)
@RequestMapping(value=”/response/Content-Type“,headers=”Content-Type = application/json”)
Accept:告訴服務器,我需要什麼樣的媒體類型(舉例:xml數據和Json數據)
@RequestMapping(value=”/response/Content-Type“,headers=”Accept = application/json”)
2.生產者消費者流程圖
生產者和消費者的理解:誰產生數據、封裝數據,誰就是生產者,反之,誰就是消費者
1.生產者、消費者註解使用前提:在xml中配置
2.功能處理方法是消費者時:
@RequestMapping(value=”/consumes”,consumes=”{application/json}”),consumes表示消費者
@RequestMapping(value=”produces”,produces=”{application/json}”),
3.窄化時是覆蓋,而不是繼承:
即在生產者、消費者模式下,方法級別的映射覆蓋類級別的映射;在其他模式下,方法級別的映射 繼承消費級別的映射;
4.組合使用的是“或”關係

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章