Upload class is throws Cannot invoke "javax.servlet.http.Part.getSubmittedFileName()" because "part" is null
时间: 2023-12-25 16:13:35 浏览: 249
这个错误通常发生在你尝试上传一个空文件时。当你上传一个空文件时,上传请求中的part对象是null,因此在调用part.getSubmittedFileName()方法时会抛出NullPointerException。
要解决这个问题,你需要在上传文件之前检查文件是否为空。你可以使用Java的File类或Apache Commons IO库中的FileUtils类来检查文件是否为空。在确定文件不为空之后,你可以再执行上传操作。
另外,你还需要确保你的上传表单中设置了正确的enctype属性,值为multipart/form-data。这样服务器才能正确地解析上传请求,并返回正确的part对象。
最后,你还需要检查你的代码中是否有对part对象为空的情况进行处理。你可以使用条件语句来检查part对象是否为空,以避免出现NullPointerException。
相关问题
javax. servlet. http. HttpServlet
`javax.servlet.http.HttpServlet` 是Java Servlet API的一部分,它定义了一个HTTPServlet接口,用于创建可以处理HTTP请求的服务器端组件。在Java web开发中,当你试图导入并使用这个类时,通常是因为项目的构建路径(build path)中没有包括Servlet API所需的JAR文件。
**示例**:
1. **添加依赖**:
在Eclipse中,如果你看到错误提示"The default superclass, "javax.servlet.http.HttpServlet", was not found on the Java Build Path",你需要确保已安装并配置了`javax.servlet-api`库。在项目属性>构建路径>库中,点击“Add External JARs”,找到并选中`javax.servlet-api.jar`(通常是Web开发工具如Tomcat的lib目录下的)然后点击“Apply”。
```java
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// 示例Servlet
public class HelloWorld extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// ...
}
}
```
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServlet是Java Servlet API中的一个类,它提供了一个基本的HTTP Servlet实现。它是所有HTTP Servlet的基类,实现了javax.servlet.Servlet接口和javax.servlet.http.HttpServlet接口。
当你想要创建一个HTTP Servlet时,你可以继承HttpServlet类,并实现doGet、doPost等方法,用于处理HTTP GET和POST请求。例如:
```
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public HelloServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Hello, World!");
}
}
```
在这个例子中,我们创建了一个名为HelloServlet的类,并继承自HttpServlet类。我们实现了doGet方法,并向HTTP响应中写入了"Hello, World!"。
需要注意的是,你需要将javax.servlet-api依赖项添加到你的项目中,以使用HttpServlet类。
阅读全文