【问题标题】:Apache ServletFIleUpload freezesApache ServletFIleUpload 冻结
【发布时间】:2017-08-22 16:46:31
【问题描述】:

这让我很困惑。在下面的代码中,控制台中甚至没有打印出“1”。如果我在第一个 system.out 行中放置一个断点(使用 eclipse),调试器永远不会退出它。没有抛出异常。我还尝试将空参数传递给 SFU 的构造函数以强制它抛出异常,但什么也没发生。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {                          
        System.out.println("1");

        try {                               
            ServletFileUpload upload = new ServletFileUpload();             
        } catch (Throwable e) {
            throw new ServletException(e);
        }

        System.out.println("2");
}

还有html

<!DOCTYPE html>
<html lang="en">
    <head>
    <title>File Upload</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
    <form method="POST" action="loadFile" enctype="multipart/form-data" >
        <input type="file" name="myFile" id="myFile" /> <br/>
        <input type="submit" value="Upload" name="upload" id="upload" />
    </form>
</body>
</html>

【问题讨论】:

    标签: apache servlets apache-commons-fileupload


    【解决方案1】:

    尝试从

    中删除“throws ServletException, IOException”
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    

    改变

       try {                               
                ServletFileUpload upload = new ServletFileUpload();             
            } catch (Throwable e) {
                throw new ServletException(e);
            }
    

    到:

       try {                               
                ServletFileUpload upload = new ServletFileUpload(); 
            //... rest of code
    
            } catch (FileUploadException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
           }
    

    在 catch 子句中添加任何其他异常,不要抛出它们。这就是为什么您看不到错误的原因

    还注意到您的表单操作的名称是 loadFile 这是否对应于您的 Servlet 名称? Servlet 通常有一个大写的第一个字母!我怀疑这是真正的问题,您正在向服务器找不到的 servlet 发送发布请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 2015-12-01
      相关资源
      最近更新 更多