Java框架(十五)之springMVC(檔案上傳、攔截器)
阿新 • • 發佈:2018-12-20
一、jackson
@RequestBody/ @ResponseBody處理Json資料
作用:
@RequestBody
註解用於讀取http請求的內容(字串),通過springmvc提供的HttpMessageConverter介面將讀到的內容轉換為json、xml等格式的資料並繫結到controller方法的引數上。
@ResponseBody
註解把controller方法的返回值(java物件)轉化為json資料。
二、檔案上傳
1.配置檔案上傳解析器
<!-- 檔案上傳解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 單位byte --> <property name="maxUploadSize" value="1024000"></property> </bean>
2.程式碼案例
@RequestMapping("/upload") public void uploadPic(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request){ String originalFilename = file.getOriginalFilename(); //suffix=originalFilename.substring(originalFilename.lastIndexOf(".")); String path = request.getSession().getServletContext().getRealPath("/upload"); File dir = new File(path); dir.mkdir(); try { file.transferTo(new File(dir,originalFilename)); System.out.println("success"); } catch (IllegalStateException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
三、攔截器
1.定義
Spring Web MVC 的處理器攔截器類似於Servlet 開發中的過濾器Filter,用於對處理器進行預處理和後處理 攔截器程式碼編寫:實現HandlerInterceptor介面:
preHandle
:執行前呼叫此方法postHandle
:controller執行後但未返回檢視前呼叫此方法afterCompletion
:controller執行後且檢視返回後呼叫此方法
2.攔截器配置
<!--攔截器 --> <mvc:interceptors> <!--多個攔截器,順序執行 --> <mvc:interceptor> <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/login*"/><!—不攔截的路徑--> <bean class="com.qf.springmvc.filter.HandlerInterceptor1"></bean> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.qf.springmvc.filter.HandlerInterceptor2"></bean> </mvc:interceptor> </mvc:interceptors>