SpringMVC檔案上傳和異常丟擲

2021-10-10 15:08:19 字數 2479 閱讀 6951

二、springmvc異常處理

2.3、全域性異常處理

檔案上傳客戶端表單需要滿足:

表單項type=「file」

表單的提交方式是post

表單的enctype屬性是多部分表單形式,及enctype=「multipart/form-data」

建立web工程

匯入jar包

springmvc配置檔案

xmlns

=""xmlns:context

=""xmlns:mvc

=""xmlns:xsi

=""xsi:schemalocation="

/spring-beans.xsd

/spring-context.xsd

/spring-mvc.xsd"

>

<

context:component-scan

base-package

="com.hpe.controller"

/>

<

context:component-scan

base-package

="com.hpe.exceptionhandler"

/>

<

mvc:annotation-driven

/>

<

mvc:resources

="/js/**"

location

="/js/"

/>

<

mvc:resources

="/css/**"

location

="/css/"

/>

<

mvc:resources

="/img/**"

location

="/img/"

/>

"viewresolver"

class

="org.springframework.web.servlet.view.internalresourceviewresolver"

>

name

="prefix"

value

="/jsp/"

/>

name

="suffix"

value

=".jsp"

/>

bean

>

"multipartresolver"

class

="org.springframework.web.multipart.commons.commonsmultipartresolver"

>

name

="defaultencoding"

value

="utf-8"

/>

name

="maxuploadsize"

value

="90000000000"

/>

bean

>

beans

>

注意這裡的檔案上傳解析器。

用於檔案上傳的頁面

(

"/test2"

)public string test2

(string username,multipartfile upload)

throws ioexception

系統的dao、service、controller出現都通過throws exception向上丟擲,最後由springmvc前端控制器

交由異常處理器進行異常處理。處理異常時先拋到控制器內配置的異常處理器,如果解決不了繼續往上拋

配置控制器異常處理,使用@controller+@exceptionhandler 。

//在controller內部處理異常

控制器的異常處理只能處理控制器內部的異常,如果希望處理控制器丟擲的所有異常⽽不希望在控制器

內部處理, 這就需要配置全域性異常處理。配置全域性異常處理, 使⽤

@controlleradvice+@exceptionhandler 。

@controller

("/a"

)public

class

acontroller

}

//全域性配置需要這個註解

@controlleradvice

public

class

myexceptionhandler

}

springmvc檔案上傳

上 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 param fname 檔名稱 含字尾 throws ioexception down...

spring mvc 檔案上傳

在檔案上傳時,我們需要用到檔案上傳解析器,其實,它並不陌生,只是對httpservletrequest的乙個擴充套件,使其能夠更好的處理檔案上傳,擴充套件的介面名為 org.springframework.web.multipart.multiparthttpservletrequest 先用乙個類...

Springmvc 上傳檔案

springmvc為檔案上傳提供了直接支援,通過multipartresolver實現。預設沒有裝配multipartresolver,需要先在上下文中配置multipartresolver。1 需要的jar包 commons iogroupid commons ioartifactid 2.4ve...