package com.web.he0330;
import java.io.FileInputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MyServletContentDisposition
*/
@WebServlet("/MyServletContentDisposition")
public class MyServletContentDisposition extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyServletContentDisposition() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//得到文件路径
String path=this.getServletContext().getRealPath("/WEB-INF/classes/merry.jpg");
//内存读取到文件的输入流
FileInputStream is=new FileInputStream(path);
byte [] bs=new byte[1024];
response.setHeader("Content-Disposition", "attachment;filename=merry.jpg");
int b=0;
ServletOutputStream os=response.getOutputStream();//这是服务器自己的一个输出流
while ((b=is.read(bs))!=-1) {
os.write(bs, 0, b);
}
//这个流可以关闭也可以不用关闭,如果自己手动关闭,那么服务器就不用做关闭这个操作了,否则,服务器会自动帮助关闭
System.out.println("写入成功!");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
转载于:https://my.oschina.net/YongfengHe/blog/650032