本文介紹了Jetty 11和Commons-fileupload的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在將Jetty9更新為Jetty11。我將包從javax.servlet更新為jakarta.servlet,因為Servlet5.0是Jetty11的先決條件。但問題是當我使用commons-fileupload`-1.4.jar時,因為它仍在使用java.servlet包。
javax.servlet.http.HttpServletRequest.ServletFileUpload.isMultipartContent(request)
以上方法需要來自java.servlet包的參數。
commons的最新版本-fileupload-https://search.maven.org/classic/#search%7Cga%7C1%7Ca%3A%22commons-fileupload%22%20AND%20g%3A%22commons-fileupload%22
我們有什么方法可以解決此問題嗎?
推薦答案
commons-fileupload
從Servlet3.1開始不需要。
實際上,不推薦將commons-fileupload
與支持Servlet規范3.1(或更高版本)的容器結合使用。
自2018年以來甚至沒有commons-fileupload
的版本,也沒有支持Servlet 3.1或更高版本的版本(commons-fileupload
的最新版本支持Servlet 2.4及更早版本)
為什么?
從3.1開始,Servlet規范中內置了多部分功能。
每臺支持Servlet 3.1的服務器現在都支持分部分文件上載。
這包括Jetty 9。
在代碼中使用HttpServletRequest.getPart()
API。
您可以通過WEB-INF/web.xml
中的@MultipartConfig
注釋和/或<multipart-config>
描述符元素來配置它
參見:https://docs.oracle.com/javaee/7/tutorial/servlets011.htm
另請參閱過去有關這些功能的答案。
https://stackoverflow.com/a/2424824/775715
這篇關于Jetty 11和Commons-fileupload的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,