package com.kyz.servlet;
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.FileOutputStream;
import java.io.IOException;
import java.net.URLEncoder;
public class FileServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String realpath ="D:\\IDEA project\\10-11Servlet\\HellowServlet\\src\\main\\Resources\\dva.jpg";
System.out.println("下载文件的路径:"+realpath);
//2.获得下载文件的文件名
String filename = realpath.substring(realpath.indexOf("\\")+1);
//3.设置想办法让浏览器能够支持下载我们需要的东西
//resp.setHeader("Content-Disposition","attchment; filename:"+filename);
//3.如果下载文件的文件名是中文的情况,否则有可能乱码
resp.setHeader("Content-Disposition","attchment; filename:"+ URLEncoder.encode(filename,"UTF-8"));
//4.获取下载文件的输入流
FileInputStream in = new FileInputStream(realpath);
//5.创建缓冲区
int len = 0;
byte[] buffer= new byte[1024];
//6.获取OuPuttream对象
ServletOutputStream out = resp.getOutputStream();
//7.将FileOutPut流写入到BUFFER缓冲区 --使用OutPutStream将缓冲区的数据输出到客户端
while((len=in.read(buffer))>0){
out.write(buffer,0,len);
}
in.close();
out.close();
}
}
链接请求全部归为get请求,不能指定为post
表单提交中可以指定为post请求
另外使用ajax的情况下,可以把参数封装,然后模拟post提交也可以