`
MauerSu
  • 浏览: 513456 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

解决Tomcat 不能下载带中文文件名的附件的方法

 
阅读更多
源:http://blog.csdn.net/vicky_fish/article/details/8260469
http://www.cnblogs.com/shenliang123/archive/2012/01/01/2309625.html
评:

遇到的问题:

     程序需要发送http GET请求到服务器,请求的参数中包含了中文字符。程序中参数为UTF-8格式,且经过了UTF-8 URL编码再发送。使用的tomcat服务器,但服务器端后台程序中取到的参数的中文是乱码。



问题原因:

经过分析,应该是Tomcat在解析参数的时候没有使用正确的编码格式(UTF-8)去解码。

查看$TOMCAT_HOME/webapps/tomcat-docs/config/http.html这个说明文档,有如下说明:
URIEncoding:This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.

也就是说,如果没有设置URIEncoding, Tomcat默认是按ISO-8859-1进行URL解码,ISO-8859-1并未包括中文字符,这样的话中文字符肯定就不能被正确解析了。

解决办法:

修改Tomcat的Server.xml,在Connector标签中加上URLEncoding参数:

<Connector port="8080" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="100" debug="99" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8"/>

改tomcat的server.xml文件(这里是解决含有中文的文件、图片的不能下载、显示的问题):

1 <Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
2 enableLookups="false" redirectPort="8443" acceptCount="100"
3 debug="0" connectionTimeout="20000"
4 disableUploadTimeout="true" URIEncoding="UTF-8"/>

URIEncoding="UTF-8" 加上这句就可以识别中文文件了,也就是不光可以在jsp中显示中文,还可以下载显示。
分享到:
评论

相关推荐

    weblogic和tomcat 下载附件乱码问题

    本文将详细探讨WebLogic与Tomcat环境下解决下载附件乱码问题的方法。 #### 一、问题背景 在Web应用程序中,当用户点击下载链接后,浏览器会根据服务器返回的信息来判断如何处理这个下载请求。如果服务器返回的...

    java下载时文件名乱码

    在处理文件下载时,尤其是从Web服务器下载带有非ASCII字符的文件名时,这种问题尤为常见。让我们深入探讨这个问题,并提供解决策略。 首先,我们需要了解HTTP协议中的编码规则。在HTTP响应头中,有一个名为`Content...

    文件上传下载源代码和linux中tomcat发布包.rar

    标题中的"文件上传下载源代码和linux中tomcat发布包.rar"表明这是一个关于Java Web开发的资源包,其中包含了文件上传和下载的功能实现,并且可以在Linux环境下的Tomcat服务器上运行。这个压缩包可能是一个完整的项目...

    fckeditor(java版-解决中文附件名称乱码问题)

    通过以上知识点的深入理解和应用,可以有效地解决“fckeditor(java版-解决中文附件名称乱码问题)”这个问题,确保用户能够正常上传并保存带有中文名称的附件,从而提高产品在中文环境下的可用性和用户体验。

    java附件上传与下载

    在Java编程领域,附件上传与下载是Web应用中常见的功能,尤其在企业级系统中,如电子邮件、在线文档协作平台等。本主题将深入探讨如何使用Java实现这一功能,涉及的技术点包括HTTP协议、Servlet、文件I/O以及可能...

    彻底解决jsp中用SmartUpload上传附件中文乱码问题实用.pdf

    通过以上步骤,我们可以确保在不同的操作系统(如Win2000、Unix、Linux)和Web服务器(如Tomcat、WebSphere)环境下,使用SmartUpload上传和下载中文附件时,文件名都不会出现乱码问题。关键在于正确处理文件名的...

    答Servlet下载文件的附件

    这篇博客"答Servlet下载文件的附件"可能涉及了如何利用Servlet来实现文件的下载功能,让我们深入探讨这个话题。 首先,我们需要了解Servlet生命周期中的service()方法。当一个HTTP请求到达服务器,Servlet容器(如...

    Java程序部署到服务器上,接口请求下载文件失败/文件为空/文件名不对的问题

    Java程序部署到服务器上...通过上述方法,我们可以解决Java程序部署到服务器上时遇到的接口请求下载文件失败、文件为空或文件名不对的问题。当然,还需要注意代码的兼容性和环境配置的正确性,以确保应用的稳定运行。

    file_upload_and_download_system.rar_Java tomcat

    在本文中,我们将深入探讨如何使用Java和Tomcat构建一个文件上传和下载的B/S(浏览器/服务器)系统。这个系统通常应用于Web应用程序,允许用户通过网页界面上传和下载文件,提高了数据共享的便捷性。 首先,让我们...

    SERVLET实现下载

    - `Content-Disposition`: 用于告知浏览器以附件形式下载文件,并可指定文件名。例如:`response.setHeader("Content-Disposition", "attachment; filename=filename.txt");` 对于中文文件名,需要进行编码处理,如...

    浏览器向服务器下载文件.rar

    在上述代码中,我们从请求参数中获取文件名,然后设置响应头以指示浏览器应以附件形式下载文件。接着,我们打开服务器上的文件并读取其内容,将其写入到HTTP响应的输出流中,从而将文件传输到客户端。 为了使浏览器...

    jap+贴吧+tomcat

    7. **文件上传与下载**:如果贴吧支持附件,那么需要了解文件存储和访问的策略,以及安全性的考虑。 8. **论坛功能实现**:如何设计和实现发帖、回帖、编辑、删除、点赞、举报等互动功能,以及搜索、分类、排序算法...

    java servlet实现文件下载

    filename=yourfile.ext`,告诉浏览器这是一个附件,应当被下载,而不是在浏览器中打开。 4. **读取并发送文件** 使用`java.io`包中的类,如`FileInputStream`和`ServletOutputStream`,从服务器的文件系统读取...

    在程序中实现上传附件的代码

    3. 保存文件元信息(如文件名、类型、大小等)到数据库,便于后续的下载和管理。 4. 处理删除操作,如果`delAttachIds`有值,根据这些ID从数据库中移除对应的文件记录。 对于文件上传的大小限制,可以通过设置...

    文件上传下载

    文件下载通常通过设置响应头的`Content-Disposition`字段为`attachment`,并指定文件名,使得浏览器以附件形式下载文件。同时,确保正确处理文件编码,以防止乱码。 8. **性能优化** 对于大文件上传或下载,可以...

    java上传下载关键代码

    接着,获取文件名并设置HTTP响应头,其中 `Content-Disposition` 用于指示浏览器以附件形式下载文件,`Content-Length` 指定文件大小。使用 `BufferedInputStream` 和 `FileInputStream` 对文件内容进行读取,并通过...

    文件上传与下载

    5. **文件下载**:在用户请求下载时,服务器根据URL解析出文件ID,查询数据库获取文件路径,然后设置响应头的`Content-Disposition`字段,指示浏览器以附件形式下载文件,以及`Content-Type`字段指定文件类型。...

    Struts2文件动态上传和动态下载(可自动生成下载内容)

    - **Content-Disposition**:在HTTP响应头中设置`Content-Disposition`字段,指示浏览器应将响应内容作为附件进行下载,并指定文件名。 - **设置MIME类型**:同样,需要设置`Content-Type`字段,指定文件的MIME...

    基于servelt的数据上传以及数据下载

    Servlet容器(如Tomcat)会在首次请求到达时加载Servlet实例,然后对每个后续请求创建一个新的线程来调用其`service()`方法。在本例中,我们将编写两个Servlet,一个处理上传请求,另一个处理下载请求。 **数据上传...

Global site tag (gtag.js) - Google Analytics