`
dreamoftch
  • 浏览: 496081 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

servlet 下载文件 以及 下载文件名字 中文乱码 解决 处理

 
阅读更多
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DownloadClient extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		download(request,response);
	}
	
	public void download(HttpServletRequest request, HttpServletResponse response) throws IOException {
        try {
        	// UploadConfigConstants.CLIENT_FILE是下载文件的路径。
        	File file = new File(request.getSession().getServletContext().getRealPath(UploadConfigConstants.CLIENT_FILE));
        	if(! file.getParentFile().exists()){
        		file.getParentFile().mkdirs();
        	}
        	if(! file.exists()){
        		file.createNewFile();
        	}
        	 // 清空response
            response.reset();
            // 设置response的Header,同时解决乱码问题
        	response.addHeader("Content-Disposition", "attachment;filename=" + new String(file.getName().getBytes("GBK"),"ISO8859_1"));
            response.addHeader("Content-Length", "" + file.length());
            // 以流的形式下载文件。
            response.setContentType("application/octet-stream");
            InputStream in = new BufferedInputStream(new FileInputStream(file));
            byte[] b = new byte[2048];
            int n = -1;
            OutputStream out = new BufferedOutputStream(response.getOutputStream());
            while((n = in.read(b)) != -1){
            	out.write(b,0,n);
            }
            in.close();
            out.flush();
            out.close();
        } catch (IOException ex) {
           throw ex;
        }
    }

}

 

分享到:
评论

相关推荐

    servlet与jsp中文乱码处理

    下面将详细阐述servlet和jsp中文乱码的处理方式。 1. **理解编码基础** - **Unicode**:全球统一的字符编码标准,包含了世界上几乎所有的字符。 - **UTF-8**:最常用的Unicode编码方式,它以字节为单位进行编码,...

    servlet中文乱码问题

    通过修改Tomcat配置文件中的`URIEncoding`属性以及在Servlet中通过`response.setContentType()`和`request.setCharacterEncoding()`方法来设置字符编码,可以有效解决中文乱码问题。此外,还可以通过字符集转换的...

    Java Web文件下载,解决了使用IE11下载文件时所出现的乱码问题

    分析这个文件可以帮助我们深入理解解决IE11下载文件乱码问题的方法。具体来说,这个文件可能包含了Servlet的实现,通过设置正确的HTTP响应头,确保文件名在下载过程中正确显示。 总的来说,解决Java Web中IE11下载...

    jsp+servlet+mysql乱码解决的这天

    jsp+servlet+mysql乱码解决方案是指在使用jsp+servlet+mysql开发web应用程序时,如何解决中文乱码问题的解决方案。该方案通过设置每个页面的编码格式为utf-8,控制器servlet中的请求编码格式为utf-8,数据库连接url...

    解决servlet页面乱码问题

    本文将深入探讨如何解决Servlet页面显示乱码的问题,这对于初学者来说是至关重要的知识点。 首先,我们需要理解乱码的根源。在Web应用中,乱码通常出现在两个阶段:输入(如POST表单数据)和输出(如HTML页面的响应...

    基于servlet的文件下载代码

    这里导入了处理文件I/O操作所需的库文件以及Servlet相关的API。 3. **Servlet定义**: ```java public class FileDownLoadServlet extends HttpServlet { // ... } ``` `FileDownLoadServlet`类继承自`...

    servlet中解决乱码

    本文将深入探讨如何在Servlet中解决乱码问题,确保数据正确无误地进行编码和解码。 首先,我们需要了解Java Servlet生命周期中的两个关键阶段:`service()`方法和`doGet()`或`doPost()`方法。在这些方法中,我们...

    jsp传参 servlet接收中文乱码问题的解决方法.docx

    jsp 传参 servlet 接收中文乱码问题的解决方法 jsp 传参 servlet 接收中文乱码问题是一个经常遇到的问题,特别是在使用 Hibernate+Servlet 框架时。当我们在 jsp 页面传参到 servlet 时,中文字符经常会出现乱码...

    freemarker 中文乱码解决

    在处理Freemarker模板引擎时,中文乱码问题是一个常见的挑战,尤其是在国际化应用中。Freemarker是一款功能强大的模板引擎,被广泛应用于Web开发中,用于动态生成HTML、XML等文本格式的页面。然而,当涉及到非英文...

    java导出excel文件并且下载到客户端(包括解决中文乱码).txt

    ### Java导出Excel文件并下载到客户端(含解决中文乱码问题) 在现代的企业级应用开发中,数据导出功能是非常常见的一种需求。特别是在B/S架构的应用中,用户经常需要将查询结果导出为Excel文件以便进行后续的数据...

    servlet过滤器解决乱码问题

    ### Servlet过滤器解决乱码问题 在Web应用开发过程中,字符编码问题经常出现,尤其是在处理中文等多字节字符时。如果不正确地设置字符编码,可能会导致页面显示乱码。本文将详细介绍如何通过Servlet过滤器来解决这...

    解决servlet中文乱码问题1

    解决servlet中文乱码问题1的标题指的是,如何在servlet应用程序中正确地处理中文字符,以避免乱码问题的出现。 描述解释 解决servlet中文乱码问题1的描述是指,如何通过正确的配置和编码设置来解决servlet中文乱码...

    jsp文件上传,解决中文乱码

    综上所述,解决`JSP文件上传`时的中文乱码问题涉及多个层面,包括客户端、服务器配置、编码过滤器、第三方库以及文件保存过程中的编码处理。确保每个环节都正确处理字符编码是避免乱码的关键。对于具体的问题,可能...

    Servlet及jsp解决中文乱码问题

    ### Servlet及JSP解决中文乱码问题 #### 一、引言 在Web开发中,中文乱码问题一直是困扰开发者的一大难题。特别是在使用Java技术栈(如Servlet与JSP)进行开发时,如果处理不当,很容易出现中文字符显示乱码的情况...

    Servlet中的中文乱码问题

    本篇文章将深入探讨如何解决Servlet中的中文乱码问题,以及如何在GBK、UTF-8和ISO-8859-1之间做出合理的选择。 首先,我们需要了解字符编码的基本概念。GBK是中国大陆广泛使用的中文字符集,包含了大部分中文字符;...

    jsp+servlet实现文件下载

    JSP+Servlet 实现文件下载 在 Web 应用中,实现文件下载是非常常见的需求。通过 JSP 和 Servlet,可以轻松地实现文件下载功能。下面将对 JSP+Servlet 实现文件下载的知识点进行详细的解释。 Step 1: 配置 web.xml ...

    解决中文乱码问题

    "解决中文乱码问题" 在Java编程中,中文乱码是一个常见的问题。为了解决这个问题,我们需要从多个方面入手。首先,我们需要将Eclipse的编码方式设置为UTF-8,以便正确地显示中文字符。其次,我们需要在浏览器中将...

    下载文件乱码问题(附带下载源码)

    解决下载文件乱码问题的关键在于: - 正确设置HTTP响应头,包括Content-Type和字符编码。 - 在读取和写入文件时保持一致的编码。 - 对于多语言环境,考虑使用Unicode(如UTF-8)作为通用编码,以兼容各种语言的字符...

    中文乱码问题

    在 Struts 2 中,中文乱码问题可以通过在 struts.xml 文件中配置 struts.i18n.encoding 常量来解决。我们可以添加以下代码: `<struts><constant name="struts.i18n.encoding" value="UTF-8"/></struts>` 这将设置...

    如何配置Filter过滤器处理JSP中文乱码

    【如何配置Filter过滤器处理JSP中文乱码】 在开发Java Web应用时,尤其是在处理包含中文字符的请求时,可能会遇到中文乱码的问题。解决这个问题的一种常见方法是使用Filter过滤器。以下是配置Filter过滤器处理JSP...

Global site tag (gtag.js) - Google Analytics