栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Apache Tomcat 7.0.40.0时servlet中的文件上传错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Apache Tomcat 7.0.40.0时servlet中的文件上传错误

不是 在Servlet
3.0中处理文件上传的正确方法。相反,您应该

@MultipartConfig
在Servlet上使用批注,并使用
HttpServletRequest#getPart()
方法来获取上载的文件,该文件是Servlet
3.0中引入的。

org.apache.tomcat.util.fileupload
软件包完全包含那些正在执行此新Servlet
3.0功能的所有“幕后”工作的类。您不应该直接使用它们,就像
sun.*
在Sun / Oracle JVM上使用Java
SE时不应该使用
com.mysql.*
类,在MySQL DB上使用JDBC时也不应该使用类。似乎您对使用Apache Commons
FileUpload且针对Servlet
2.5或更早版本的示例感到困惑,该示例恰好使用相同的类名。

使用特定于Tomcat的类会将您的Web应用程序紧密耦合到特定的Tomcat版本,并使您的Web应用程序无法 移植 到其他Servlet
3.0兼容的容器,甚至在遇到自己的Tomcat版本时也无法 移植 。在这种特殊情况下,您应该遵循

javax.servlet
软件包中的标准类。

正确的方式显示在此答案的第二部分:如何使用JSP /
Servlet将文件上传到服务器?

总而言之,这个启动示例应该可以帮助您入门:

<form action="upload" method="post" enctype="multipart/form-data">    <input type="text" name="status" />    <input type="file" name="uploadedFile" />    <input type="submit" /></form>

@WebServlet("/upload")@MultipartConfigpublic class UploadServlet extends HttpServlet {    @Override    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        String status = request.getParameter("status"); // Retrieves <input type="text" name="status">        Part uploadedFile = request.getPart("uploadedFile"); // Retrieves <input type="file" name="uploadedFile">        InputStream content = uploadedFile.getInputStream();        // ... (do your job here)    }}

就这样。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/388086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号