🛫更多ssm知識見SSM_面向CRUD編程專欄
🚕本博客總結自黑馬程序員的ssm框架視頻
🚒博主對于該知識尚在學習階段
🚄如果發現存在問題請毫不吝嗇的指出
🚀🚀扎哇太棗糕的博客主頁🚀🚀
目錄
1 SpringMVC的數據響應
?2 SpringMVC獲取請求數據
1 SpringMVC的數據響應
響應方式之頁面跳轉
🔴返回字符串
請求轉發(不加的話默認是請求轉發):forward:前綴表示是請求轉發,具體表現為地址不會變。是服務器跳轉,相當于方法調用,在執行當前文件的過程中轉向執行目標文件,一共就一個請求對象
請求重定向:redirect:前綴表示是請求重定向,具體表現為地址跳轉。是客戶端跳轉,相當于客戶端向服務端發送請求之后,服務器返回一個響應,客戶端接收到響應之后又向服務端發送一次請求,一共是2次請求
?🔴返回ModelAndView對象
????????可以通過ModelAndView對象和Model對象向request域中存放數據,并使用${}的形式取出數據
返回ModelAndView對象的三種方式
方式一:自己創建ModelAndView對象并返回
?方式二:傳參ModelAndView對象(SpringMVC創建)并返回
方式三:?傳參Model對象(SpringMVC創建)并返回字符串
響應方式之回寫數據? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
🔴直接返回普通字符串
加@ResponseBody注解,表示這里是返回字符串而不是進行頁面跳轉
🔴返回一個JSON字符串
第一步:新建一個User類封裝數據
第二步:導入相關依賴(三個的版本號要一樣),導依賴就要將依賴添加到目錄lib千萬別忘了
?第三步:使用轉換工具將對象轉換成JSON字符串并返回?
優化:使用xml文件配置SpringMVC的處理器適配器HandlerAdapter,設置消息轉換器,也就是說設置之后不用創建JSON轉換器,只要return一個對象就可以將其轉換成JSON字符串。
?靠這個set方法在xml文件進行數據注入,設置消息轉換器
配置好了之后直接return對象就能返回一個JSON字符串?
當然,以黑馬這個視頻主講老師的講解風格,這波可以說又是經典白學,因為這么多配置都可以使用一個標簽代替
?2 SpringMVC獲取請求數據
????????客戶端請求參數的格式是:name:value&name=value……有的時候服務器要想獲得請求的參數還需要對數據進行封裝,SpringMVC就可以接收一下類型的數據:基本數據類型、POJO類型的數據、數組類型的數據、集合類型的數據
基本類型數據
????????當Controller中業務方法的參數名與請求參數的鍵一致時,參數會進行自動映射匹配,也就是說將該請求消息與這個方法相匹配。
POJO類型參數
????????當Controller中業務方法的參數類里的封裝屬性名(更準確應該說是set方法名去掉set)與請求參數的鍵一致時,參數會進行自動映射匹配,也就是說將該請求消息與這個方法相匹配。
數組類型參數
????????當Controller中業務方法的參數數組名與請求參數的鍵一致時,參數會進行自動映射匹配。
集合類型參數
? ? ? ? 要想獲得集合參數的話,要將集合參數包裝到一個POJO類型數據中才可以實現。當POJO類參數里的封裝屬性(也就是一個集合)與請求參數的集合名(也就是form表單里行的值)一致時,會將form表單與業務方法進行匹配。
請求數據亂碼的問題
? ? ? ? 當使用POST請求的時候,數據會出現亂碼問題,我們可以使用一個全局過濾器來進行編碼的過濾。
在web.xml文件中配置全局過濾器?
配置之后的結果就不亂碼了
集合型還有一種直接使用集合不再使用POJO進行封裝
第一步:在wabapp下創建一個js文件夾并導入jquery-2.2.3.min.js文件
?
第二步:開放資源,使js目錄下的jquery-2.2.3.min.js文件可以被訪問到,下面運行時說到這一次的集合請求參數一共有三次訪問,如果不開放資源的話第二次訪問會被打斷,以至于無法進行第三次訪問導致失敗
上面的標簽配置是指定jsp目錄下的所有文件,有限定,下面的這個標簽配置的是所有的靜態資源,而無需指定是哪個文件夾,實際開發中使用的更多。
第三步:在jsp文件夾下創建一個jsp頁面,使用Ajax進行發送一個集合數據
?第四步:創建業務方法傳list集合參數,并在參數前加@RequestBody注解
?第五步:maven depoly并運行訪問ajax.jsp
? ?
參數綁定
@RequestParam:在方法參數定義前使用,將參數與注解定義的字符串綁定到一起,在發送請求時對注解字符串的賦值就是對參數的賦值。
獲取Restful風格參數
? ? ? ? Restful就是一種架構風格或者說是設計風格,而不是一套標準,主要就是提供了一組設計原則和約束條件。Restful風格的請求就是使用“url + 請求方式”便是以此請求的目的,HTTP協議里表示操作方式的四個詞分別是:GET獲取資源、POST新建資源、PUT更新資源、DELECT刪除資源。
參數獲取
自定義類型轉換器
第一步:定義一個轉換器類實現Convert接口?
第二步:聲明轉換器并在<annotation-driven>中引用轉換器?
獲取請求頭信息
? ? ? ? 眾所周知,http請求包括:請求行、請求頭、消息實體。那么,在MVC中如何獲得請求頭信息的呢?@RequestHeader注解和@CookieValue
文件上傳并轉存
? ? ? ? 當form表單修改為多部分表單時,即設置enctype="mulipart/form-data",用來獲取url編碼方式提交信息的API將無法再繼續使用,比如說request.getParameter()。url編碼方式即是設置enctype="application/x-www-form-urlencoded",此時會使用鍵值對的方式傳參。
第一步:導入相關坐標
第二步:配置文件上傳解析器
?第三步:文件上傳的代碼
?第四步:編寫相應的jsp頁面,提交的數據名要與上傳方法的參數名相一致
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
上一篇:【SSM面向CRUD編程專欄 4】 Spring集成web環境 SpringMVC初識
下一篇:【SSM面向CRUD編程專欄 6】springMVC攔截器、異常處理 jdbcTemplate