response应用

文章目录

    • @[TOC](文章目录)
  • response说明
  • 一、response文件下载
  • 二、待补充。。。

response说明

response是指HttpServletResponse,该响应有很多的应用,比如像浏览器输出消息,下载文件,实现验证码等。
在这里插入图片描述

一、response文件下载

1.创建一个javaweb的项目。
在这里插入图片描述

2.实例类FileServlet的具体实现。
在这里插入图片描述

import java.net.URLEncoder;
public class FileServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        1.获取要下载文件的路径        realPath:绝对路径String realPath = "E:\\Software\\IDEA\\javaweb-02-servlet\\response\\src\\main\\resources\\aa.webp";System.out.println("文件下载的路径:" + realPath);
//        2.下载的文件名String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
//        3.设置浏览器能够支持下载我们需要的东西
//        如果想让网站能下载东西,需要搜一个下载文件的一个头。
//        resp.setHeader("Content-disposition", "attachment;filename" + fileName);resp.setHeader("Content-disposition", "attachment;filename="+ URLEncoder.encode(fileName,"UTF-8"));
//        4.获取下载文件的输入流。FileInputStream fis = new FileInputStream(realPath);
//        5.创建缓冲区
//        6.获取OutputStream对象
//        7.将FileOutputStream流写入到缓冲区,使用OutputStream将缓冲区中的数据输出到客户端。ServletOutputStream oos = resp.getOutputStream();byte[] buf = new byte[1024];int len = 0;while ((len = fis.read(buf)) > 0) {oos.write(buf, 0, len);}oos.close();fis.close();}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

3.配置web.xml文件及tomcat服务器。
在这里插入图片描述
在这里插入图片描述

4.启动服务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.回顾总结

  • (5.1)思路分析:
    • 1.获取文件输入流
    • 2.获取web的响应的输出流
    • 3.将输入流写入到输出流,进而发给客户端。
  • (5.2)注意实项:
    • 1.下载文件名
 String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
 - 2.下载文件的头
 resp.setHeader("Content-disposition", "attachment;filename" + fileName);
 - 3.相关搜索

在这里插入图片描述

二、待补充。。。