package com.yp;
import com.sun.xml.internal.messaging.saaj.packaging.mime.internet.ContentDisposition;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileInputStream;
import java.io.IOException;
public class fileservletjava extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.获取下载文件的路径
String realpath=this.getServletContext().getRealPath("/1.JPG");//项目下面的根目录
System.out.print("文件下载的路径是:"+realpath);
//2.下载文件的名字是什么
String filename=realpath.substring(realpath.lastIndexOf("\\")+1);
//3.想办法让浏览器支持下载我们需要的东西
resp.setHeader("Content-disposition","attachment;filename"+filename);
//4.获取下载文件的输入流
FileInputStream in = new FileInputStream(realpath);
//5.创建缓冲区
int len=0;
byte[] buffer=new byte[1024];
//6.获取outputstream对象
ServletOutputStream out = resp.getOutputStream();
//7.将fileoutputstream流写入到buffer缓冲区
while((len = in.read(buffer)) > 0) {
out.write(buffer,0,len);
}
//8.使用OutputStream将缓冲区的数据输出到客户端浏览器
in.close();
out.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
xml配置(这个里面只需要导入servlet依赖就可)
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>project01</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>project02</module>
<module>project03</module>
<module>projevt04</module>
<module>jsp</module>
<module>JSP</module>
</modules>
<dependencies><!--servlet依赖-->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency><!--jsp依赖-->
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<dependency><!--JSTL表达式的依赖-->
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency><!--standard标签库-->
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
</dependencies>
</project>