日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring MVC-09循序渐进之文件上传(基于Servlet3.0+内置功能)

發(fā)布時間:2025/3/21 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring MVC-09循序渐进之文件上传(基于Servlet3.0+内置功能) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  • 概述
  • 測試
  • 源碼

概述

Spring MVC-09循序漸進之文件上傳(基于Apache Commons FileUpload)

上篇博文我們說了基于Apache Commons FileUpload的文件上傳,這里我們了解下基于Servlet3.0及其以上版本內(nèi)置的上傳功能。

在Servlet3.0及其以上的版本容器中進行服務(wù)端文件上傳的編程,是圍繞著標注類型MultipartConfig和javax.servlet.http.Part接口進行的。 處理已上傳文件的Servlet必須標注@MultipartFile

屬性如下

  • maxFileSize ,上傳文件的最大容量,默認-1,表示不限制
  • maxRequestSize,HTTP請求允許的最大容量,默認-1,表示不限制
  • location 表示Part調(diào)用write方法時,上傳的文件保存的位置
  • fileSizeThreshold 上傳文件超出這個容量界限時,會被寫入磁盤

Spring MVC 的DispatcherServlet處理大部分或者部分請求,但是如果不修改源碼,將無法對Servle進行標注,值得慶幸的是,Servlet3中有一種比較容易的方法,能夠使Servlet變成一個MultipartConfig Servlet,即給部署描述文件(web.xml)中的Servlet聲明賦值。

下面的代碼與用@MultipartConfig給DispatcherServlet進行標注的效果是一樣的

<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/springmvc-config.xml</param-value></init-param><load-on-startup>1</load-on-startup> <multipart-config><max-file-size>20848820</max-file-size><max-request-size>418018841</max-request-size><file-size-threshold>1048576</file-size-threshold></multipart-config> </servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping><!-- 避免中文亂碼 --><filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>

此外,還需要再Spring MVC配置文件中使用一個不同的解析器

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 掃描控制層的注解,使其成為Spring管理的Bean --><context:component-scan base-package="com.artisan.controller" /><!-- 靜態(tài)資源文件 --><mvc:annotation-driven /><mvc:resources mapping="/css/**" location="/css/" /><mvc:resources mapping="/*.jsp" location="/" /><!-- 視圖解析器 --><bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean><!--2 注冊上傳 StandardServletMultipartResolver 第二個不需要第三方 jar 包支持,它使用 servlet 內(nèi)置的上傳功能, 但是只能在 Servlet 3 以上的版本使用。 --><!-- SpringMVC上傳文件時,需要配置MultipartResolver處理器 --><bean id="multipartResolver"class="org.springframework.web.multipart.support.StandardServletMultipartResolver"></bean></beans>

其余代碼同
Spring MVC-09循序漸進之文件上傳(基于Apache Commons FileUpload)


測試


源碼

代碼已提交到github

https://github.com/yangshangwei/SpringMvcTutorialArtisan

總結(jié)

以上是生活随笔為你收集整理的Spring MVC-09循序渐进之文件上传(基于Servlet3.0+内置功能)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。