HttpServletResponse一些应用
提示:以下是本篇文章正文内容,下面案例可供参考
一、下载文件
代码
public class FileServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取下载文件的路径
String realPath = "D:\\Java\\javaweb-02-servlet02\\target\\classes\\400 (8).jpg";
//获取下载的文件名
String filename = realPath.substring(realPath.lastIndexOf("\\")+1);
//设置让浏览器支持下载需要的东西,URLEncoder.encode(filename,"utf-8")为中文编码
resp.setHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(filename,"utf-8"));
//获取下载文件的输入流
FileInputStream fileInputStream = new FileInputStream(realPath);
//创建缓冲区
int len = 0;
byte[] buffer = new byte[1024];
//获取OutputStream对象
ServletOutputStream servletOutputStream = resp.getOutputStream();
//将FileInputStream流写入缓冲区,使用OutputStream将缓冲区的数据输出到客户端
while ((len = fileInputStream.read(buffer)) > 0){
servletOutputStream.write(buffer,0,len);
}
fileInputStream.close();
servletOutputStream.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
二、重定向
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.sendRedirect("/javaweb_02_servlet02_war/down");
}
参数:/虚拟路径映射/跳转的路径