【问题标题】:How to deal with the error "The request doesn't contain a multipart/form-data"?如何处理错误“请求不包含多部分/表单数据”?
【发布时间】:2015-09-28 19:16:53
【问题描述】:

我正在开发一个仅包含 1 个 servlet 的 Web 应用程序。请求的页面类型是根据请求中发送的 get 参数确定的。尝试将图像上传到服务器时遇到问题。我正在使用 jquery 发送一个 AJAX 发布请求,其中包含我需要发送的附加到 FormData 对象的图像文件和其他数据。我读过我需要使用 HttpServletRequest getParts 或 getPart 方法来提取文件和其他数据。我的问题是,如果我在servet 类中设置@MultipartConfig 注释,每当我发送请求时都会收到错误“请求不包含multipart/form-data..etc”,因为只有一个特定页面会上传文件到服务器,其余的不会。有什么方法可以让我在现有的 servlet 中使用 getParts 方法,而无需为文件上传创建新的 servlet?

提前致谢

【问题讨论】:

    标签: jquery servlets


    【解决方案1】:

    这是不可能的。

    但幸运的是,Java 是一种面向对象的语言。它支持组合和继承。通过继承,您可以将现有的非@MultipartConfig servlet 扩展为带有@MultipartConfig 注释的新类,并在其中放置专门处理上传文件的代码,然后为现有的剩余部分调用继承的方法。

    换句话说,只需创建一个新的 servlet,but reuse code instead of copypasting code

    【讨论】:

    • 感谢您的帮助 BalusC。这似乎是最佳解决方案。
    • 不客气。由于您是新来的,请不要忘记在回答(最)有助于理解和解决具体问题时将其标记为已接受。另见How does accepting an answer work?
    猜你喜欢
    • 2017-01-14
    • 2010-11-03
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2020-01-18
    • 2014-09-21
    • 2016-02-29
    • 2012-09-10
    相关资源
    最近更新 更多