这让我感到困惑。在下面的代码中甚至没有" 1"在控制台中打印出来。如果我在第一个system.out行中放置一个断点(使用eclipse),调试器永远不会退出它。没有例外。我还尝试将一个null参数传递给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>
答案 0 :(得分:0)
尝试从
中删除“抛出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发送一个post请求。