SpringMVC重要知識點
一.自定義格式轉換
1.定義一個類實現Converter
2.新增預設方法,進行格式轉換
3.在SpringMvc.xml檔案中進行配置最後還有掛在到註解驅動中
<!-- 載入註解驅動 --> <mvc:annotation-drivenconversion-service="conversionService"/> <!-- 轉換器配置 --> <beanid="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <propertyname="converters"> <set> <beanclass="cn.itcast.springmvc.convert.DateConverter"/> </set> </property> </bean>
二.SpringMVC框架的圖片上傳
上傳檔案的時候表單的設定 form表單中應該有一個屬性enctype="multipart/form-data"; 匯入兩個檔案上傳的jar包 commons-io-2.4.jar commons-fileupload-1.2.2.jar 配置檔案上傳 <!-- 檔案上傳 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 設定上傳檔案的最大尺寸為5MB --> <property name="maxUploadSize"> <value>5242880</value> </property> </bean> controller類的編寫: 方法中帶有一個引數MultipartFile pictureFile(前端介面檔案上傳的name屬性物件的名字,必須完全相同) //獲取圖片完整名稱 String fileStr = pictureFile.getOriginalFilename(); //使用隨機生成的字串+原始檔副檔名組成新的檔名稱,方式圖片重名 String newfileName = UUID.randomUUID().toString()+fileStr.substring(fileStr.lastIndexOf(".")); //將圖片儲存到專案訪問的路徑中 pictureFile.transferTo(new File("檔案路徑")); //將圖片名稱儲存到資料庫
三.json資料互動
-
第一步匯入jackson的jar包在controller的方法中可以使用@RequestBody,讓springMvc講json格式字串自動轉換成java中的pojo頁面json中的key要等與Java中pojo的屬性名稱
-
想要在介面中返回json格式
- 在方法添加註解
- @ResponseBody
- 返回值就是想要返回的物件
四.restful
Restful就是一個資源定位及資源操作的風格。不是標準也不是協議,只是一種風格,是對http協議的詮釋。 - 資源定位:網際網路所有的事物都是資源,要求url中沒有動詞,只有名詞。沒有引數 - Url格式:http://blog.csdn.net/beat_the_world/article/details/45621673 - 資源操作:使用put、delete、post、get,使用不同方法對資源進行操作。分別對應新增、刪除、修改、查詢。一般使用時還是post和get。Put和Delete幾乎不使用。 <servlet-mapping> <servlet-name>springmvc-servlet-rest</servlet-name> <!-- 必須用/ --> <url-pattern>/</url-pattern> </servlet-mapping>
-
@RequestMapping(value="/viewItems/{id}"):{×××}佔位符,請求的URL可以是“/viewItems/1”或“/viewItems/2”,通過在方法中使用@PathVariable獲取{×××}中的×××變數。
-
@PathVariable用於將請求URL中的模板變數對映到功能處理方法的引數上。 @ResponseBody
public viewItems(@PathVariable(“id”) String id,Model model) throws Exception{ … }
五…攔截器
-
定義一個攔截器類實現HandlerInterceptor
-
裡面有三個方法
-
最後執行 執行時機:controller方法已經執行,ModelAndView已經返回 使用場景:記錄日誌
afterCompletion(…){ } -
中間執行 執行時機:controller方法已經執行,ModelAndView沒有被返回 使用場景:可以在此方法中設定全域性的資料處理業務
postHandler(…){ } -
最先執行 執行時機:controller方法沒有被執行,ModelAndView沒有被返回 使用場景:許可權認證
preHandler(…){ }在springmvc.xml中進行配置
<mvc:interceptors> <mvc:interceptor> <!--攔截請求的路徑 攔截所有必須配置成/**--> <mvc:mapping path="/**"/> <!--指定攔截器的位置--> <bean class="cn.itcast.springmvc.filter.HandlerInterceptor1"></bean> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="cn.itcast.springmvc.filter.HandlerInterceptor2"></bean> </mvc:interceptor> </mvc:interceptors>
實戰:登陸許可權認證
- 編寫登陸的controller,編寫跳轉到登陸介面的方法,編寫登陸驗證方法
- 編寫登陸介面
- 編寫攔截器
執行過程:
-
任意訪問一個介面,攔截器會攔截請求,hui驗證session中是否有登陸資訊
-
如果已經已登入,放行
-
如果未登入,跳轉到登陸介面
-
-
在登陸介面中輸入使用者名稱密碼,點選登陸按鈕,攔截器會攔截請求如果是登陸路徑放行
在controller中判斷使用者名稱密碼是否正確,如果正確把登陸資訊放到session中