`
zql3315
  • 浏览: 23776 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

Spring Mvc 文件下载Demo

阅读更多

传统代码:

@RequestMapping("file/download")
    public void fileDownload(HttpServletResponse response, HttpServletRequest request) {
        response.setCharacterEncoding("utf-8");
        response.setContentType("multipart/form-data");
        String path = request.getServletContext().getRealPath("static/style.css");
        response.setHeader("Content-Disposition", "attachment;fileName=style.css");
        InputStream inputStream = null;
        OutputStream outputStream = null;
        try {
            File file = new File(path);
            inputStream = new FileInputStream(file);
            outputStream = response.getOutputStream();
            byte[] b = new byte[1024];
            int length;
            while ((length = inputStream.read(b)) > 0) {
                outputStream.write(b, 0, length);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (inputStream != null) inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                if (outputStream != null) outputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

 

既然用了Spring Mvc 就不应该出现j2ee的reponse的接口代码

java:

@RequestMapping("download")
    public ResponseEntity<byte[]> download() throws IOException {
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        headers.setContentDispositionFormData("attachment", "upload.zip");
        File file = new File("d://upload.zip");
        return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
    }

 xml:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
    <property name="messageConverters">  
        <list>  
            //把ByteArray加在Json前面  
            <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>  
            <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" >  
                <property name = "supportedMediaTypes">  
                    <list>  
                        <value>text/plain;charset=UTF-8</value>  
                    </list>  
                </property>  
            </bean>  
        </list>  
    </property>  
</bean> 

 

分享到:
评论

相关推荐

    spring mvc demo下载地址

    这个简易的Spring MVC demo包含了一系列关键知识点,对于初学者来说是很好的学习资源。下面将详细阐述这些知识点: 1. **MVC模式**:Spring MVC的核心设计模式,它将应用程序分为三个主要部分:模型(Model)、视图...

    Spring MVC IDEA版本DEMO

    **Spring MVC IDEA版本DEMO详解** 在现代Java Web开发中,Spring MVC框架是不可或缺的一部分,它为构建可扩展、模块化的Web应用程序提供了强大的支持。IntelliJ IDEA作为一款高效的Java集成开发环境,使得开发...

    Spring MVC使用Demo

    这个"Spring MVC使用Demo"提供了实践操作,帮助开发者深入理解Spring MVC的开发环境配置、注解的使用以及工作原理。 首先,Spring MVC的设计模式基于Model-View-Controller(MVC),它将应用程序的业务逻辑、数据和...

    spring mvc 3_demo

    在这个"Spring MVC 3_demo"中,我们重点探讨的是使用注解来实现Spring MVC 3的应用。注解在Spring MVC中扮演着重要角色,它们简化了配置,提高了代码的可读性和可维护性。 1. **注解驱动的控制器**: 在Spring MVC...

    Spring MVC 简单Demo

    在这个"Spring MVC 简单Demo"中,我们可能有一个名为`SummerWeb`的目录,其中包含以下文件: - `web.xml`:定义DispatcherServlet,例如: ```xml &lt;servlet-name&gt;dispatcher &lt;servlet-class&gt;org.spring...

    Spring-MVC的demo

    在本示例中,"Spring-MVC的demo" 提供了一个完整的Spring MVC学习项目,包含了数据库操作、JDBC以及Spring的核心功能。 1. **Spring MVC 框架简介** Spring MVC 是Spring框架的一部分,主要用于处理Web请求。它将...

    spring3MVC 框架demo

    在"spring3MVC框架demo"中,包含了两个关键功能的实现:文件上传下载功能和使用xheditor发布消息功能。 首先,我们来详细了解一下Spring3MVC的基础配置。在Spring3MVC项目中,配置通常包括以下几个部分: 1. **web...

    spring mvc 简单demo

    这个简单的Demo将向我们展示如何使用Spring MVC创建一个基本的Web应用。在这个过程中,我们将涉及控制器、视图解析器、模型数据以及HTTP请求处理等核心概念。 首先,我们需要在项目中引入Spring MVC的依赖。这通常...

    Spring MVC最简单demo

    在本最简单的Spring MVC demo中,我们将探讨如何从零开始搭建一个基本的Spring MVC项目。 首先,Spring MVC是Spring框架的一部分,主要用于处理Web请求。它通过分离业务逻辑、数据模型和用户界面,提高了代码的可...

    springmvc spring hibernate整合Demo

    Spring MVC、Spring 和 Hibernate 是Java开发中非常流行的三大框架,它们分别用于Web开发、依赖管理和持久层操作。这个"springmvc spring hibernate整合Demo"旨在帮助初学者理解如何将这三个框架协同工作,实现一个...

    Spring mvc portlet demo

    **Spring MVC Portlet Demo** Spring MVC Portlet是一个用于构建portlet应用程序的框架,它结合了Spring MVC的灵活性和portlet规范的强大功能。在这个demo中,我们将会深入探讨如何利用Spring 3.0 MVC架构来开发...

    一个入门的spring mvc demo,基于eclipse maven

    在这个入门的Spring MVC demo中,我们将深入探讨其与Eclipse IDE和Maven构建工具的集成。 首先,Eclipse是一款广泛使用的Java集成开发环境,支持多种插件,包括M2Eclipse,这是一个专门用来管理和构建Maven项目的...

    Spring MVC REST Demo

    "Spring MVC REST Demo"是一个示例项目,旨在展示如何在Spring MVC框架中实现RESTful Web服务。下面将详细讨论Spring MVC与RESTful API的结合,以及如何创建和测试此类服务。 首先,Spring MVC是Spring框架的一部分...

    demo.zip_DEMO_spring mvc_ssm demo

    本示例"demo.zip_DEMO_spring mvc_ssm demo"提供了一个整合这三个组件的搭建Demo,旨在帮助开发者快速理解并实践SSM(Spring、Spring MVC、MyBatis)集成。 首先,让我们深入了解一下Spring框架。Spring的核心特性...

    spring mvc demo

    5. 集成 Spring MVC:在 Spring MVC 的配置文件(如:servlet-context.xml)中,配置 DispatcherServlet、ViewResolver、MVC 配置等。同时,使用 @Controller 注解创建 Controller 类,处理 HTTP 请求,并调用 ...

    Spring MVC eclipse开发(Demo源码)

    以上就是Spring MVC在Eclipse环境中开发的基本知识和流程,通过这个Demo源码,你可以学习到如何在Eclipse中搭建、配置和运行一个完整的Spring MVC应用。理解并掌握这些知识点,对于提升Java Web开发能力至关重要。

    Spring mvc+hibernate+mysql Demo

    在这个"Spring mvc+hibernate+mysql Demo"项目中,可能包含了一个简单的示例应用,展示了如何配置和使用这三个技术。"test"文件可能是测试代码或者测试数据,用于验证整个系统的正确性。测试可能涵盖了CRUD操作,...

    spring MVC 多module demo

    4. **文件结构**:在"spring MVC 多module demo"中,我们看到的文件如index.jsp通常是视图层的入口文件,展示给用户。WEB-INF目录下通常存放Servlet配置、JSP页面和其他不希望直接暴露给用户的资源。META-INF目录...

    spring mvc login demo

    这个"spring mvc login demo"项目旨在提供一个基础的登录功能示例,帮助开发者理解如何在Spring MVC环境中实现用户身份验证。在这个教程中,我们将深入探讨相关知识点。 首先,Spring MVC 的核心组件包括...

    Spring mvc + Spring + Mybatis 整合demo

    3. **配置Spring MVC**:创建Spring MVC的配置文件(如`servlet-context.xml`),配置DispatcherServlet,声明视图解析器,定义拦截器,以及处理器映射器和处理器适配器。 4. **配置Mybatis**:编写Mybatis的全局...

Global site tag (gtag.js) - Google Analytics