案例:实现文件下载并能正确显示中文文件名
一、创建下载页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.net.URLEncoder"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件下载</title>
</head>
<body>
<!-- <a href="/chapter12/DownloadServlet?filename=1.jpg">文件下载 </a> --><a href="/chapter12/DownloadServlet?filename=<%=URLEncoder.encode("风景.jpg", "utf-8")%>">文件下载 </a>
</body>
</html>
二、创建Servlet
public class DownloadServlet extends HttpServlet {private static final long serialVersionUID = 1L;public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置ContentType字段值response.setContentType("text/html;charset=utf-8");//设置响应消息编码response.setCharacterEncoding("utf-8");//设置请求消息编码request.setCharacterEncoding("utf-8"); //获取所要下载的文件名称String filename = request.getParameter("filename");filename = filename.trim(); //下载文件所在目录String folder = "/download/";// 通知浏览器以下载的方式打开response.addHeader("Content-Type", "application/octet-stream");response.addHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode(filename,"utf-8"));// 通过文件流读取文件InputStream in = getServletContext().getResourceAsStream(folder+filename);// 获取response对象的输出流OutputStream out = response.getOutputStream();byte[] buffer = new byte[1024];int len;//循环取出流中的数据while ((len = in.read(buffer)) != -1) {out.write(buffer, 0, len);}}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);}
}
三、创建下载目录及文件
四、启动项目,查看结果
http://localhost:8080/chapter12/download.jsp
案例:实现文件下载并能正确显示中文文件名相关推荐
- 让英文操作系统正确显示中文
刚装的英文版Windows 2000/XP操作系统,不能正确显示中文.解决的方法有两种: 1.在安装过程中解决问题.在Windows XP安装过程中,进行到"区域与语言"那部分时, ...
- 解决文件下载在火狐浏览器出现中文文件名乱码的方法
解决文件下载在火狐浏览器出现中文文件名乱码的方法 参考文章: (1)解决文件下载在火狐浏览器出现中文文件名乱码的方法 (2)https://www.cnblogs.com/zeng1994/p/739 ...
- PyDev+Eclipse4.2.2如何正确显示中文
step1:打开Eclipse 依次进入:window->preferences->general->editors->text editors->spelling-& ...
- eclipse中文乱码解决_解决git status显示中文文件名乱码问题
使用 git status 查看本地有改动但未提交的中文文件名时,发现会显示为一串数字,没有显示中文的文件名.具体如下所示: $ git status# 位于分支 master# 尚未暂存以备提交的变 ...
- 让secureCRT正确显示中文
1.vi /etc/sysconfig/i18n文件改为:LANG="zh_CN.UTF-8" 2.在secureCRT里面: Session Options(会话选项) -> ...
- ubuntu mysql 中午_Ubuntu更改MySQL字符集UTF-8,正确显示中文
首先停mysql服务,编辑配置文件my.cnf $ sudo stop mysql $sudo vim /etc/mysql/my.cnf [client] default-character-set ...
- python-如何正确显示中文(日文)以及负号
plt.rcParams['font.sans-serif']=['SimHei'] #日本語を表示するため plt.rcParams['axes.unicode_minus']=False #-を表 ...
- gFTP不能显示中文文件(夹)名的解决方法
gFTP不能显示中文文件(夹)名的解决方法 现象:Ylmf OS 2.0 中预装的gFTP在登录远程服务器后,中文文件夹及中文文件名不能显示. 原因:非root身份登录 解决:用root登录,后登录g ...
- 浅谈如何fltk项目编译和实现显示中文
目录 一.编译 二.中文显示如何处理: 2.1在发文2天前突然发现,我这个界面显示英文出现问题了,开始我的搜索之旅,一些参考页面有碰到问题也可以看看: 2.2. 那就开始翻翻官方自带的例程吧,看看他如 ...
最新文章
- IIC通信控制的AD5259------在调试过程中遇到的奇葩问题
- 面试前临时抱佛脚——常见的Shell脚本面试题
- 王达:影响100万网管员的“网管员”『英雄故事』
- #2002 Cannot log in to the MySQL server, PHPMyAdmin/MySQL
- CSS3系列一(概述、选择器、使用选择器插入内容)
- 初步认识Linux oops 消息
- sql 数组_sql注入中级
- k8s kubectl生成kube-config文件
- Linux和Windows下使用指定的JDK运行jar包
- c #include如何找到文件_使用 MATLAB Function 模块集成 C 代码
- 系统学习机器学习之神经网络(十一) --TDNN
- codeforces629C Famil Door and Brackets (dp)
- matlab cic设计,CIC滤波器设计
- steam安裝位置linux,steam盒子
- 飞船利用计算机进行飞行状态调整属于,“神舟八号”飞船利用计算机进行飞行状态调整属于____。...
- 无线安全之破解WPA/WPA2 加密WiFi
- retina屏 适配问题
- 什么是万维网?什么是互联网?
- Facet Kernel详解、Random Walk随机游走算法详解
- 自学Linux 2—Linux 的系统架构之 Linux 内核的主要模块和 Linux 的文件结构
热门文章
- ORACLE删除表分区和数据
- 【算法】剑指 Offer 30. 包含min函数的栈
- 95-31-020-ChannelGroup-DefaultChannelGroup
- 【Flink】FLink Barrier 在流经算子 做 checkpoint 的时候,数据是停止的吗?
- 【Elasticsearch】es Root mapping definition has unsupported parameters
- Spark编译报错:missing or invalid depency detected while loading class file RDDOperationScope.class
- maven 单独构建多模块项目中的单个模块
- ambiguous reference to overloaded definition(scala与java重载逻辑不匹配)
- SpringBoot 如何统计、监控 SQL运行情况?
- 最近,我在Spring的BeanUtils踩了不少坑