- 浏览: 853553 次
文章分类
- 全部博客 (365)
- java (124)
- spring mvc (21)
- spring (22)
- struts2 (6)
- jquery (27)
- javascript (24)
- mybatis/ibatis (8)
- hibernate (7)
- compass (11)
- lucene (26)
- flex (0)
- actionscript (0)
- webservice (8)
- rabbitMQ/Socket (15)
- jsp/freemaker (5)
- 数据库 (27)
- 应用服务器 (21)
- Hadoop (1)
- PowerDesigner (3)
- EJB (0)
- JPA (0)
- PHP (2)
- C# (0)
- .NET (0)
- html (2)
- xml (5)
- android (7)
- flume (1)
- zookeeper (0)
- 证书加密 (2)
- maven (1)
- redis (2)
- cas (11)
最新评论
-
zuxianghuang:
通过pom上传报错 Artifact upload faile ...
nexus上传了jar包.通过maven引用当前jar,不能取得jar的依赖 -
流年末年:
百度网盘的挂了吧???
SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) -
953434367:
UfgovDBUtil 是什么类
Java发HTTP POST请求(内容为xml格式) -
smilease:
帮大忙了,非常感谢
freemaker自动生成源代码 -
syd505:
十分感谢作者无私的分享,仔细阅读后很多地方得以解惑。
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
我们就直接切入主题啦,文件下载只需要四步:
1.设置文件ContentType类型
2.设置文件头
3.通过response获取ServletOutputStream对象(out)
4.写到输出流(out)中
下载代码:
这里我使用的是SpringMVC,不过它在这里的唯一用途就是用来获取ServletContext对象,这个对象的用途,下面实例中有说明
下载,需要用到两个jar包:commons-fileupload.jar和commons-io.jar
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.context.ServletContextAware;
- import javax.servlet.ServletContext;
- import javax.servlet.ServletOutputStream;
- import javax.servlet.http.HttpServletResponse;
- import java.io.*;
- @Controller
- public class FileController implements ServletContextAware{
- //Spring这里是通过实现ServletContextAware接口来注入ServletContext对象
- private ServletContext servletContext;
- @RequestMapping("file/download")
- public void fileDownload(HttpServletResponse response){
- //获取网站部署路径(通过ServletContext对象),用于确定下载文件位置,从而实现下载
- String path = servletContext.getRealPath("/");
- //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
- response.setContentType("multipart/form-data");
- //2.设置文件头:最后一个参数是设置下载文件名(假如我们叫a.pdf)
- response.setHeader("Content-Disposition", "attachment;fileName="+"a.pdf");
- ServletOutputStream out;
- //通过文件路径获得File对象(假如此路径中有一个download.pdf文件)
- File file = new File(path + "download/" + "download.pdf");
- try {
- FileInputStream inputStream = new FileInputStream(file);
- //3.通过response获取ServletOutputStream对象(out)
- out = response.getOutputStream();
- int b = 0;
- byte[] buffer = new byte[512];
- while (b != -1){
- b = inputStream.read(buffer);
- //4.写到输出流(out)中
- out.write(buffer,0,b);
- }
- inputStream.close();
- out.close();
- out.flush();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- @Override
- public void setServletContext(ServletContext servletContext) {
- this.servletContext = servletContext;
- }
- }
发表评论
-
jackson annotations注解详解
2015-01-13 11:34 18997官方WIKI:https://github.com/Fast ... -
Ehcache 整合Spring 使用页面、对象缓存
2012-11-02 19:56 1108Ehcache在很多项目中都出现过,用法也比较简 ... -
Spring 3.1 M1 中的缓存功能
2012-11-02 19:26 829本文转自:http://www.oschina.net/ ... -
深入剖析Spring Web源码(八) - 处理器映射,处理器适配器以及处理器的实现 - 基于简单控制器流程的实现
2012-10-31 13:37 13291.1.1.1 ... -
spring 源码 阅读 笔记 之 HandlerMapping
2012-10-31 12:59 1678SpringCVSBeanHTMLAnt ... -
spring mvc重复提交拦截器方法
2012-10-31 11:37 9018import javax.servlet.http.HttpS ... -
不重复配置——利用Spring通用化配置
2012-10-17 09:40 981还记得 如下这种配置吗: 1、struts2作用域 ... -
Ehcache 整合Spring 使用页面、对象缓存
2012-10-16 09:44 789Ehcache在很多项目中都出现过,用法也比较简单。一般的 ... -
SpringMVC文件上传 多文件
2012-10-15 17:27 7088必须明确告诉DispatcherServlet如何处理Mult ... -
Spring MVC 3.1新特性 生产者、消费者请求限定
2012-10-12 11:50 11496.6.5、生产者、消费者限定 6.6.5.1、基本概念 ... -
spring + mybatis 多数据源切换
2012-10-10 11:42 1563[代码] DbContextHold ... -
spring MVC 文件上传
2012-10-06 10:03 2073spring支持在网络应用程序处理文件上传,提供拔插的org. ... -
JasperReport与spring集成的三种方式
2012-09-26 17:29 1863最近要用JasperReport,试着和sprin ... -
Spring MVC+Jasper Report 及生成PDF的中文问题
2012-09-26 17:10 2先说两句报表框架的选择,JasperRepor ... -
Springmvc与jasperreport结合生成报表的一种方法
2012-09-26 16:42 1<script type="text/ja ... -
spring 3.1中的cache小结
2012-09-22 23:27 1017spring 3.1中有cache了,下 ... -
Spring MVC和Struts2的区别
2012-09-08 08:59 10371. 机制:spring mvc的入口是servlet,而st ... -
SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结
2012-06-19 17:34 1428一 开发环境 1、动态web工程 2、部分依赖 ... -
用spring MVC 生成Excel和PDF
2012-06-16 19:16 36341 用spring MVC 生成Excel和PDF http ... -
SpringMVC+FreeMarker实现半自动静态化
2012-06-14 13:53 2540感谢imyourgod的原贴http://to ...
相关推荐
这两个API在Apache POI中都有支持,本工具可能需要根据文件格式选择相应的API进行操作。 4. **Excel数据导入** 导入Excel数据通常涉及以下步骤: - 打开Excel文件。 - 遍历工作表中的行和列。 - 使用反射创建...
在Java Web开发过程中,经常需要实现文件的导出功能。这涉及到将数据从服务器端导出为特定格式的文件(如Excel、PDF等),并提供给用户下载。在这个过程中,正确处理文件名是非常重要的一步,尤其是考虑到不同浏览器...
java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...
java注解实现通用Excel中文表格转实体对象列表,支持中文表头,在Excel数据导入使用的通用工具类,代码简洁优雅 。基于注解实现的支持中文表头的读取Excel数据并转换为实体对象列表的工具类,使用该工具类可将Excel...
java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...
每个类或接口在Java程序中都对应一个Class文件,它包含了类的结构信息,如类名、方法签名、常量池、字段和方法的字节码等。由于Class文件是二进制的,所以直接查看可能会比较困难,需要特定的工具来解析。 **JAR...
Java 和 C++ 之间的互通性在许多实际项目中都是至关重要的,特别是在跨平台的应用程序开发中。本主题探讨的是如何在 Java 和 C++ 中实现相同的加密算法,以便在这两个环境中可以无缝地交换加密数据。这里我们将专注...
Java语言具有跨平台、面向对象、安全性高、简单性等特点,已成为当今计算机软件开发领域不可或缺的一部分。本知识点将从Java练习题库中的内容出发,详细介绍Java语言的基础知识点。 首先,Java中的程序是由类...
然而,这些方式在每个查询中都需要编写重复的分页代码,这降低了代码的复用性。因此,创建一个通用的分页辅助类(如`Pagehelp.java`和`Page(hibernate通用分页).java`)是非常必要的。 `Pagehelp.java`可能包含一个...
在Java编程中,开发人员经常会遇到需要处理文件下载、上传、生成目录结构以及发送电子邮件等通用功能的情况。这些任务在各种应用程序中都是常见的,比如Web服务、后台管理系统或者用户交互的前端应用。为了提高代码...
ZIP格式则更通用,大多数操作系统都内置了对ZIP文件的支持。解压这些文件,你可以使用各种工具,如WinRAR、7-Zip或Windows自带的资源管理器。解压过程包括读取压缩文件的头信息,解密(如果被加密),然后使用相应的...
java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...
此控件的优点在于其易用性和兼容性,开发者只需将解压缩后的JS文件导入到项目中,就能快速实现日历功能。这通常包括引入相关的JavaScript库、CSS样式表以及可能的图片资源,通过简单的配置和调用API,即可在网页上...
在Java中,"common"通常指的是那些在多个项目中都可以复用的通用代码或者模块。 1. **面向对象编程**:Java的核心特性之一是面向对象编程(OOP),它将现实世界中的实体抽象为类,通过实例化类来创建对象。类包含了...
`JCalendar`是一个第三方的Java Swing组件,它为用户提供了直观、易于使用的日期选择界面,使得在Java应用中处理日期变得更为简单。 `JCalendar`控件的核心特性包括: 1. **图形化界面**:`JCalendar`提供了一个...
- **异常处理**:在网络通信中,错误处理至关重要,包括连接失败、数据传输错误等,需要在Java和C++中都做好异常处理。 - **版本兼容性**:如果结构体的定义发生变化,需要考虑向后兼容,以确保旧版本的客户端仍能...
这八卷通用面试题集合了Java的基础知识、进阶特性、并发处理、内存管理、集合框架、多线程、异常处理、设计模式等多个方面的内容。以下是这些知识点的详细解析: 1. **Java基础**:包括语法基础如类、对象、封装、...
java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的...
对于一些通用的操作,如日期时间处理、字符串操作、数学计算等,Java标准库已经提供了如`java.util.Date`、`java.lang.String`和`java.lang.Math`等工具类。 通过这些工具类,开发者可以更高效地构建Java Web应用...
- Java应用程序可通过JAR文件部署,Java Applet已经过时且不安全,不建议使用。 ***应用程序则是通过装配集(Assemblies)进行部署,配置程序集和引用依赖。 - Java程序通过Java Web Start实现网络启动,涉及到...