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. Spring自动注入之@Autowired、@Resource、@Inject

    相同点: 三者都支持对spring bean的自动注入 不同点: ①Autowired按照类型进行注入( Bean bean = applicationContext.getBean(Bean.cla ...

  2. monkeyrunner简介

    monkeyrunner简介 MonkeyRunner工具是使用Jython(使用Java编程语言实现的Python)写出来的,它提供了多个API,通过monkeyrunner API 可以写一个Py ...

  3. Leetcode 4

    Array Easy 1. 268. Missing Number 先对数组求和,用 0 ~ n本该有的和减去当前sum得到缺失的数字. class Solution { public int mis ...

  4. DBCP 连接池

    DBCP数据源 DBCP 是 Apache 软件基金组织下的开源连接池实现 导入maven包: <!-- dbcp连接池 --> <dependency> <groupI ...

  5. 理解vue 修饰符sync

    也是在vux中看到了这个sync 现在我们来看看vue中的sync 我们先看下官方文档:vue .sync 修饰符,里面说vue .sync 修饰符以前存在于vue1.0版本里,但是在在 2.0 中移 ...

  6. Vue 报错[Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders

    场景:父组件向子组件传递数据,子组件去试图改变父组件数据的时候. 解决:子组件通过事件向父组件传递信息,让父组件来完成数据的更改. 比如:我的父组件是普通页面,子组件是弹窗的登录界面,父组件传递的数据 ...

  7. DirectX11 With Windows SDK--26 计算着色器:入门

    前言 现在开始迎来所谓的高级篇了,目前计划是计算着色器部分的内容视项目情况,大概会分3-5章来讲述. DirectX11 With Windows SDK完整目录 Github项目源码 欢迎加入QQ群 ...

  8. 2018-2019-2 《Java程序设计》第7周学习总结

    20175319 2018-2019-2 <Java程序设计>第7周学习总结 教材学习内容总结 本周学习<Java程序设计>第8章: 1.String类: Java专门提供了用 ...

  9. Thunk

    Thunk https://en.wikipedia.org/wiki/Thunk In computer programming, a thunk is a subroutine used to i ...

  10. 学习string,stringBuffer时遇到的问题

    今天学习string和stringBuffer.了解了两者的区别,然后去看java api都有啥方法.stringBuffer类有indexOf方法,于是写了下面的代码 String str = &q ...