Servlet总结-Response

Response 发送响应消息头的相关方法

这里写图片描述
这里写图片描述

Response 发送响应消息体

  1. 字节流输出
    getOutputStream(), 输出二进制格式的响应正文
  2. 字符流输出
    getWriter(),输出内容全为字符的响应正文

注意: 以上两个输出对象不能同时使用。

实例-实现简单的下载功能

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <a href="${pageContext.request.contextPath}/download?filename=001.jpg">下载图片</a>
</body>
</html>
        // 获取下载文件的文件名
        String filename = request.getParameter("filename");
        // 获取文件的MIME类型,在之后设置响应头部时用到
        String type = getServletContext().getMimeType(filename);
        System.out.println(type);
        // 设置头部信息
        response.setHeader("Content-Type", type);
        response.setHeader("Content-Disposition", "attachment;filename=" + filename);
        // 获取文件在服务器中真实的路径
        String realPath = getServletContext().getRealPath("/download/" + filename);
        System.out.println(realPath);
        // 将文件转换为输入流
        InputStream is = new FileInputStream(realPath);
        OutputStream os = response.getOutputStream();
        // 将文件输入流输入至响应的输出流中返回给客户端,即可实现简单的下载功能
        int len = 0;
        byte[] buf = new byte[1024];
        while ( (len = is.read(buf)) != -1) {
            os.write(buf, 0, len);
        }
        is.close();

注意: 需要待下载的文件放入根目录的download文件夹中。
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值