web上传servlet
时间: 2023-09-11 07:09:45 浏览: 89
在Java Web开发中,通过Servlet可以实现Web上传功能。以下是一个简单的示例代码:
首先,需要在web.xml中配置一个Servlet,如下所示:
```
<servlet>
<servlet-name>uploadServlet</servlet-name>
<servlet-class>com.example.UploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>uploadServlet</servlet-name>
<url-pattern>/upload</url-pattern>
</servlet-mapping>
```
然后,编写一个UploadServlet类,实现doPost方法来处理上传请求:
```
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取上传文件
Part filePart = request.getPart("file");
String fileName = filePart.getSubmittedFileName();
InputStream fileContent = filePart.getInputStream();
// 保存文件到服务器
File file = new File("/path/to/upload/directory/" + fileName);
OutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int length;
while ((length = fileContent.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
out.close();
fileContent.close();
// 返回上传成功信息
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Upload Result</title></head>");
out.println("<body>");
out.println("<h1>文件上传成功!</h1>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
```
在上面的代码中,通过request.getPart("file")方法获取上传的文件,然后可以将文件保存到服务器的指定目录中。保存完文件后,通过response.getWriter()方法获取响应输出流,输出上传成功的信息。
最后,在上传文件的表单中,设置enctype为multipart/form-data,action为上传Servlet的URL,如下所示:
```
<form method="post" enctype="multipart/form-data" action="/upload">
<input type="file" name="file"><br>
<input type="submit" value="上传">
</form>
```
这样就可以实现简单的文件上传功能了。
阅读全文