1、html网页,超链接交由Servlet处理

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>实现文件的下载功能</h1>
<a href="ImgServlet?filename=a.jpg">aa</a><br>
<a href="ImgServlet?filename=b.jpg">bb </a><br>
<a href="ImgServlet?filename=图片.png">图片</a><br>
</body>
</body>
</html>

2.web.xml----Servlet的注册

    <servlet>
<servlet-name>DownLoadImgServlet</servlet-name>。--1
<servlet-class>nee.DownLoadImgServlet</servlet-class> --这是我自己的路径
</servlet>
<servlet-mapping>
<servlet-name>DownLoadImgServlet</servlet-name>--2
<url-pattern>/ImgServlet</url-pattern>--网页的映射,对应html上a的超链接
</servlet-mapping>
--1 2 处名字必须相同

3.Servlet的实现

package nee;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder; @WebServlet(name = "DownLoadImgServlet")
public class DownLoadImgServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/*
用字节输出流向文件写资源
资源需要从输入流中读入
输入流为图片构成的输入流
*/
String filename=request.getParameter("filename");
//解决中文找不到资源路径的问题
filename = new String(filename.getBytes("ISO-8859-1"),"UTF-8");
//将文件转化为输入流
InputStream is=getServletContext().getResourceAsStream("download/"+filename); //解决文件名不显示中文的问题
filename=URLEncoder.encode(filename,"UTF-8");
//声明这是一个下载的文件
response.setHeader("Content-Disposition","attachment;filename="+filename);
OutputStream os=response.getOutputStream();
int len=;
byte[] buffer = new byte[];
while ((len=is.read(buffer) )!= -){
os.write(buffer,,len);
}
} }

web---资源的下载及中文乱码问题的更多相关文章

  1. 关于使用Tomcat搭建的Web项目,出现 URL 中文乱码的问题解析

    URL编码问题 问题描述 使用 Tomcat 开发一个 Java Web 项目的时候,相信大多数人都遇到过url出现中文乱码的情况,绝大多数人为了避免出现这种问题,所以设计 url 一般都会尽量设计成 ...

  2. [转]JSP或servlet中(以及上传下载文件)中文乱码或不显示的解决方案

    时间 2014-04-14 14:33:44  CSDN博客 原文  http://blog.csdn.net/xby1993/article/details/23677375 主题 ServletJ ...

  3. JAVA下载文件中文乱码问题

    http://blog.itpub.net/92037/viewspace-788900/ 最后的中文乱码没有解决 现在我在系统中用到了两个组件,smartupload,一个支持中文,一个不支持.但是 ...

  4. web 前端:连接mysql中文乱码问题的解决办法

    当使用tomcat部署servlet连接时,总是出现各种原因的中文乱码问题.有的是因为mysql的默认字符集的问题,有的是客户端的字符配置问题. 现在对于这两种问题进行配置,来解决乱码. 服务器端(m ...

  5. Web开发的编码解决中文乱码

    中文乱码有两个环节会出现 第一,从请求体中获得的数据 从请求体中获得的数据要为其进行编码,默认为ISO-8859-1,所以在使用getParameter()时先调用setCharacterEncodi ...

  6. 解决使用tomcat服务器发布web项目时出现URL中文乱码的问题

    打开Tomcat的安装路径 打开server.xml文件 在修改端口号的一行既是下图中位置添加 URIEncoding="UTF-8" 就能替换在用eclipse或者myeclip ...

  7. php下载解决中文乱码问题

    利用 iconv() 函数解决乱码 $file_name = iconv("utf-8","gb2312",$file_name); 具体下载代码如下: pub ...

  8. 火狐浏览器下载文件中文乱码,文件名中的空格变加号("+")的问题

    解决一下问题: 1.火狐浏览器下载文件,中文变乱码 2.IE浏览器下载文件,丢失文件扩展名或强制扩展名为".txt" 3.浏览器下载文件,文件名中的空格变成加号("+&q ...

  9. KeilMDK4.7a下载地址/中文乱码解决/自动关联设置

    推荐地址1,速度更快(确定为4.7a版本,且含注册机):1.http://www.mcuzone.com/software/keil/MDK470.RAR 2.http://kuai.xunlei.c ...

随机推荐

  1. c提高第六次课 文件读取

    一.基本概念1.文件分类 普通文件:存放在硬盘中的文件 设备文件:屏幕.键盘等特殊文件 文本文件:ASCII文件,每个字节存放一个字符的ASCII码,打开文件看到的是文本信息 二进制文件:数据按其在内 ...

  2. sql 根据身份证号码计算年龄

    ,), GETDATE()) / 365.25) from ConstructionInfo

  3. NOT NULL constraint faile(慢就是快,少即是多)

    在学习数据库orm操作的过程中,遇到一个写不进去数据的问题 在创建数据库进行数据写入时出错,错误信息是 NOT NULL constraint faile(错误信息没有第一时间找到) 数据库,包括表都 ...

  4. 使用diff或者vimdiff比较远程文件(夹)与本地文件夹

    方法1:管道给diff $ssh eric@192.168.1.11 "cat ~/remote_file.txt" | diff - ~/local_file.txt 如果 Fi ...

  5. Linux系统扩容根目录磁盘空间的操作方法

    问题描述 系统的服务无法正常运行,查看磁盘空间,发现根目录已经满了 解决过程 1.添加磁盘空间 2.使用fdisk -l命令查看磁盘信息 3.新建磁盘分区 4.使用fdisk /dev/sda3, 创 ...

  6. python学习day21 面向对象(三)嵌套/特殊方法

    1.嵌套 类/方法/对象都可以当做变量或嵌套到其他类型中. 函数的参数可以是任意类型. 可哈希(不可变)数据类型可以做字典的key. 类和对象可以做字典的key. 2.特殊方法(8) __init__ ...

  7. functools模块中partial的使用

    一.简介 functools.partial(func,* args,**关键字) 返回一个新的部分对象,当被调用时,其行为类似于使用位置参数args 和关键字参数关键字调用的func.如果为调用提供 ...

  8. opencv+codeblocks +anaconda

    study from : https://www.jianshu.com/p/c16b7c870356 #include <cstdio> #include <cstdlib> ...

  9. Web_0002:关于MongoDB的操作

    1,启动moggdb服务端 打开cmd命令窗口进入到MongoDB的安装目录bin文件下: 如:  cd /d F:\Program Files\mongodb\bin   执行如下命令(该命令窗口为 ...

  10. JGUI源码:DataTable固定列样式(20)

    本来感觉这个固定列很容易实现的,一般都是几个table组合实现,真正自己从头做的时候,发现有很多坑,本文只是固定列原理,真正实现datatable的话,代码量比较大的,后续再进行完善. 使用左中右三个 ...