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.相关搜索

在这里插入图片描述

二、待补充。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot整合swagger

1)简介: 作为后端开放人员,最烦的事就是自己写接口文档和别人没有写接口文档,不管是前端还是后端开发,多多少少都会被接口文档所折磨,前端会抱怨后端没有及时更新接口文档,而后端又会觉得编写接…

Spark-03: Spark SQL 基础编程

目录 1.Spark SQL 简介 2.SparkSession 3.Spark SQL 数据的读写 3.1 读写 TXT 文件 3.2 读写 CSV 文件 3.3 读写 JSON 文件 3.4 读写 Parquet 文件 3.5 读写 ORC 文件 3.6 读写MySQL数据库 4.Spark SQL 语法 4.1 SQL 语法 4.2 DSL 语法 1.Spark SQL 简介 Spark SQL…

备份和恢复Linux服务器上的HTTP配置

备份和恢复Linux服务器上的HTTP配置是一项重要的任务,它可以确保您的服务器在出现故障或配置错误时能够迅速恢复正常运行。下面我们将介绍如何备份和恢复Linux服务器上的HTTP配置。 备份HTTP配置 登录到Linux服务器上,并使用root权限。 备份HTTP配置文…

分部积分法

1.形式:u对v求积分uv-v对u求积分,一前一后,一般把三角函数,反三角函数,In,e的x次方提到d里面 2. 3. 4. 5. 6. 7. 当结果中出现要求的不要慌,不是1直接求,是1重新计算

一体化污水处理设备材质怎么选

在环保意识日益增强的今天,污水处理设备成为城市建设过程中的重要环节。而选择合适的一体化污水处理设备材质,则成为了一项重要的决策。本文将从专业的角度出发,为您解析一体化污水处理设备材质的选取。 首先,一体化污水处理设备材…

postman常用脚本

在参数中动态添加开始时间和结束时间的时间戳 1.先在collection中添加参数,这里的作用域是collection,也可以是其他的任何scope 2.在Pre-request Script 中设定开始时间和结束时间参数,比如昨天和今天的时间戳,下面是js代码 con…

Android Studio Hedgehog | 2023.1.1(刺猬)

Android Gradle 插件和 Android Studio 兼容性 Android Studio 构建系统基于 Gradle,并且 Android Gradle 插件 (AGP) 添加了一些特定于构建 Android 应用程序的功能。下表列出了每个版本的 Android Studio 所需的 AGP 版本。 Android Studio versionRequired AG…

Kubernetes 常用命令

集群信息&#xff1a; 1. 显示 Kubernetes 版本&#xff1a;kubectl version2. 显示集群信息&#xff1a;kubectl cluster-info3. 列出集群中的所有节点&#xff1a;kubectl get nodes4. 查看一个具体的节点详情&#xff1a;kubectl describe node <node-name>5. 列出所…

python学习:opencv+用鼠标画矩形和圆形

目录 步骤 定义数据 新建一个窗口黑色画布 显示黑色画布 添加鼠标回调函数 循环 一直显示图片 一直判断有没有按下字母 m 关闭所有窗口 鼠标回调函数 步骤 当鼠标按下记录坐标并记录鼠标标记位为true&#xff0c;移动的时候就会不断的画矩形或者圆&#xff0c;松下的时候就再…

vue项目通过宝塔部署之后,页面刷新后浏览器404页面

转载&#xff1a;vue项目通过宝塔部署之后&#xff0c;页面刷新后浏览器404页面。

ioc循环依赖怎么解决

在使用IoC&#xff08;Inversion of Control&#xff09;容器时&#xff0c;循环依赖是一个常见的问题。不同的IoC容器提供了不同的解决方案。在Spring框架中&#xff0c;常用的解决循环依赖的注解是 Lazy 和 Autowired。 1.Lazy 注解&#xff1a; 在Spring中&#xff0c;Lazy…

STM32F1中断NVIC

目录 1. 中断系统 2. 中断向量表 3. NVIC基本结构 4. NVIC优先级分组 5. NVIC程序编写 5.1 中断分组 5.2 中断结构体变量 5.3 中断通道选择 5.4 抢占优先级和响应优先级配置 6. 中断程序执行 1. 中断系统 中断&#xff1a;在主程序运行过程中&#xff0…

如何设计自动化测试脚本

企业中如何设计自动化测试脚本呢&#xff1f;今天我们就来为大家分享一些干货。 一、线性设计 线性脚本设计方式是以脚本的方式体现测试用例&#xff0c;是一种非结构化的编码方式&#xff0c;多数采用录制回放的方式&#xff0c;测试工程师通过录制回访的访问对被测系统进行…

基于JSDoc实现TypeScript类型安全的实践报告

在FEDay 2023中我讲了《从JS到TS无缝迁移的实践报告》【视频在这里在这里】&#xff0c;是将一个传统的JS项目&#xff08;mochajs/mocha&#xff09;迁移到TypeScript环境的全程。其中提到了一件事情&#xff0c;就是“可以通过JSDoc/TSDoc来生成.d.ts”&#xff0c;从而实现T…

FastAPI的路由

前言 回想一下我们在hello world程序里面做了哪些事情&#xff1f; 还是先把那段著名的程序的代码贴出来欣赏一下吧。 from fastapi import FastAPIapp FastAPI()app.get("/") async def root():return {"message": "Hello World"}app.get(&q…

mvc模式test2

关于上篇book.java中使用类型不一样导致的报错 是在bookdao.java中解决 bookservlet.java package servlet; import java.io.IOException; import beans.Book; import dao.BookDao; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servl…

RabbitMQ的消息发送和接收机制

所有 MQ 产品从模型抽象上来说都是一样的过程&#xff1a; 消费者&#xff08;consumer&#xff09;订阅某个队列。生产者&#xff08;producer&#xff09;创建消息&#xff0c;然后发布到队列&#xff08;queue&#xff09;中&#xff0c;最后将消息发送到监听的消费者。 上…

C语言 - 字符函数和字符串函数

系列文章目录 文章目录 系列文章目录前言1. 字符分类函数islower 是能够判断参数部分的 c 是否是⼩写字⺟的。 通过返回值来说明是否是⼩写字⺟&#xff0c;如果是⼩写字⺟就返回⾮0的整数&#xff0c;如果不是⼩写字⺟&#xff0c;则返回0。 2. 字符转换函数3. strlen的使⽤和…

20、pytest中的参数化

官方实例 # content of test_expectation.pyimport pytestpytest.mark.parametrize("test_input, expected",[("35",8),("24",6),("6*9",42)]) def test_eval(test_input, expected):assert eval(test_input) expected# content of …

【UE】在场景中或控件蓝图上显示移动的文字

目录 效果 步骤 一、制作含有文字的图片 二、在场景中显示移动的文字 三、在控件蓝图上显示 效果 步骤 一、制作含有文字的图片 打开PS&#xff0c;新建一个宽度为600&#xff0c;高度为50的文档 添加一段文字 保存 二、在场景中显示移动的文字 1. 打开UE编辑器&#x…