java web实现文件下载的servlet代码和html页面代码
时间: 2024-03-06 22:49:18 浏览: 17
以下是 Java Web 实现文件下载的 Servlet 代码示例:
```java
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
public class DownloadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 获取要下载的文件名
String fileName = request.getParameter("fileName");
// 设置响应头
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
// 获取文件输入流和输出流
String filePath = request.getSession().getServletContext().getRealPath("/WEB-INF/files/" + fileName);
FileInputStream in = new FileInputStream(new File(filePath));
OutputStream out = response.getOutputStream();
// 将文件写入响应流中
byte[] buffer = new byte[1024];
int len = -1;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
// 关闭流
in.close();
out.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
```
以下是 HTML 页面代码示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件下载</title>
</head>
<body>
<a href="downloadServlet?fileName=file.pdf">下载文件</a>
</body>
</html>
```
其中,`downloadServlet` 是 Servlet 的 URL 映射路径,可以根据实际情况进行修改。`fileName` 参数指定要下载的文件名,也可以根据实际情况进行修改。