本文前置条件是已学会如何配置 Tomcat,如果不会,请先过一下教程:
Tomcat 配置教程https://blog.csdn.net/qq_41567818/article/details/124269406
Step1 创建 JavaWeb 项目
1. 新建 - 选择 Maven Archetype(按以下说明设置)
2. 检查你的 Archetype 是否正确,如和下图一致,点击创建
3. 等待进度条跑完,到下面的界面
Step2 配置项目 Tomcat
1. 右上角选择编辑配置
2. 添加新配置-选择 Tomcat Server(服务器)- Local(本地)
3. 配置 Tomcat
4. 点击右下角修复工件
5. 选择 XXX:war exploded(第二个)
6.出现如下界面,点确定,Tomcat 运行图标出现
Step3 加入 Tomcat 与 Servlet 依赖
1. 打开 pom.xml 文件
2. 添加以下依赖
<!-- Servlet API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.0</version>
<scope>provided</scope>
</dependency>
<!-- JSP API -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<!-- Tomcat -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>9.0.73</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>9.0.40</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
<version>9.0.40</version>
<scope>provided</scope>
</dependency>
3. 检查你的依赖是否符合下图,检查完毕后下载依赖
4.下载依赖完毕以后新建一个 java 目录
Step4 创建测试类并编写代码
1. 选中 java 文件夹 - 新建 - Java 类
2. 为刚刚创建的类加上 @WebServlet 注解,并使其继承 HttpServlet
![](https://i-blog.csdnimg.cn/blog_migrate/12973943733a8e822d2ee057d39d98be.png)
3.Ctrl+O 实现重写方法,选择 doGet
![](https://i-blog.csdnimg.cn/blog_migrate/5f9abf9d95dbea621ad7f2566cb9e7ff.png)
4. 粘贴下列代码:
// 你的文件路径
String path = "D:\\a.png";
File file = new File(path);
// 设置要求不预览直接下载,如果没设定,浏览器会尝试预览(如图片)
resp.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
// 读取文件并写出
try(FileInputStream is = new FileInputStream(file)) {
ServletOutputStream os = resp.getOutputStream();
byte[] bytes = new byte[1024];
int len;
while ((len = is.read(bytes)) > 0){
os.write(bytes, 0, len);
}
os.flush();
os.close();
}
Step5 启动测试
访问自己设定的路径即可,如果全部和我一样,那么你应当访问:http://localhost:8080/DownloadTest_war_exploded/download