`
xuehongliang
  • 浏览: 94954 次
  • 性别: Icon_minigender_1
  • 来自: 辽宁
社区版块
存档分类
最新评论

struts实现下载篇

阅读更多

下载:

java 代码
  1. public class DownLoadAction extends Action {   
  2.   
  3.     // --------------------------------------------------------- Instance   
  4.     // Variables   
  5.     BufferedInputStream bis = null;   
  6.   
  7.     BufferedOutputStream bos = null;   
  8.   
  9.     // --------------------------------------------------------- Methods   
  10.   
  11.     /**  
  12.      * Method execute  
  13.      *   
  14.      * @param mapping  
  15.      * @param form  
  16.      * @param request  
  17.      * @param response  
  18.      * @return ActionForward  
  19.      */  
  20.     public ActionForward execute(ActionMapping mapping, ActionForm form,   
  21.             HttpServletRequest request, HttpServletResponse response)   
  22.             throws Exception {   
  23.   
  24.         String downloadPath = servlet.getInitParameter("file-upload");   
  25.         String fileName = new String(request.getParameter("filename").getBytes(   
  26.                 "ISO-8859-1"), "GB2312");   
  27.         response.reset();   
  28.         response.setContentType("application/x-msdownload");   
  29.         response.addHeader("Content-Disposition""attachment;   filename=\""  
  30.                 + new String(fileName.getBytes("GB2312"), "ISO-8859-1") + "\"");   
  31.   
  32.         try {   
  33.             bis = new BufferedInputStream(new FileInputStream(downloadPath   
  34.                     + "/" + fileName));   
  35.             bos = new BufferedOutputStream(response.getOutputStream());   
  36.   
  37.             byte[] buff = new byte[20480];   
  38.             while ((bis.read(buff, 0, buff.length)) != -1) {   
  39.                 bos.write(buff, 0, buff.length);   
  40.             }   
  41.             bos.flush();   
  42.         } catch (Exception e) {   
  43.             e.printStackTrace();   
  44.         } finally {   
  45.             bos.close();   
  46.             bis.close();   
  47.         }   
  48.   
  49.         return mapping.findForward("downloadfile");   
  50.     }   
  51.   
  52. }   

web.xml

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app>  
  3.   <servlet>  
  4.     <servlet-name>action</servlet-name>  
  5.     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>  
  6.     <init-param>    
  7.       <param-name>config</param-name>    
  8.       <param-value>/WEB-INF/conf/struts-config.xml</param-value>    
  9.     </init-param>    
  10.     <init-param>    
  11.       <param-name>config/login</param-name>    
  12.       <param-value>/WEB-INF/conf/login/struts-config-login.xml</param-value>    
  13.     </init-param>    
  14.     <init-param>  
  15.       <param-name>debug</param-name>  
  16.       <param-value>3</param-value>  
  17.     </init-param>  
  18.     <init-param>  
  19.       <param-name>detail</param-name>  
  20.       <param-value>3</param-value>  
  21.     </init-param>  
  22.     <init-param>  
  23.       <param-name>file-upload</param-name>  
  24.       <param-value>E:/upload</param-value>  
  25.     </init-param>  
  26.     <load-on-startup>2</load-on-startup>  
  27.   </servlet>  
  28.      
  29.   <filter>  
  30.     <filter-name>Set Character Encoding</filter-name>  
  31.     <filter-class>com.capinfo.filter.SetCharacterEncodingFilter</filter-class>  
  32.     <init-param>  
  33.         <param-name>encoding</param-name>  
  34.         <param-value>GB2312</param-value>  
  35.     </init-param>  
  36.   </filter>  
  37.   <filter-mapping>  
  38.     <filter-name>Set Character Encoding</filter-name>  
  39.     <url-pattern>/*</url-pattern>  
  40.   </filter-mapping>  
  41.      
  42.      
  43.   <servlet-mapping>  
  44.     <servlet-name>action</servlet-name>  
  45.     <url-pattern>*.do</url-pattern>  
  46.   </servlet-mapping>  
  47.      
  48.      
  49.      
  50.   <welcome-file-list>  
  51.     <welcome-file>/page/welcome.jsp</welcome-file>  
  52.   </welcome-file-list>  
  53.      
  54.   <taglib>  
  55.     <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>  
  56.     <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>  
  57.   </taglib>  
  58.   <taglib>  
  59.     <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>  
  60.     <taglib-location>/WEB-INF/struts-html.tld</taglib-location>  
  61.   </taglib>  
  62.   <taglib>  
  63.     <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>  
  64.     <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>  
  65.   </taglib>  
  66.   <taglib>  
  67.     <taglib-uri>/WEB-INF/struts-template.tld</taglib-uri>  
  68.     <taglib-location>/WEB-INF/struts-template.tld</taglib-location>  
  69.   </taglib>  
  70.   <taglib>  
  71.     <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri>  
  72.     <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>  
  73.   </taglib>  
  74.   <taglib>  
  75.     <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri>  
  76.     <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>  
  77.   </taglib>  
  78.      
  79. </web-app>  
  80.   

struts-config

xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">  
  3.   
  4. <struts-config>  
  5.   
  6.     <form-beans>  
  7.         <form-bean name="uploadForm" type="com.capinfo.form.upload.UploadForm" />  
  8.     </form-beans>  
  9.   
  10.     <global-forwards>  
  11.         <forward name="welcome" path="/Welcome.do" />  
  12.         <forward name="login" contextRelative="true" path="/login/Login.do" redirect="true" />  
  13.         <forward name="upload" path="/page/upload.jsp" redirect="true"/>  
  14.     </global-forwards>  
  15.   
  16.     <action-mappings>  
  17.   
  18.         <action path="/Welcome" type="org.apache.struts.actions.ForwardAction" parameter="/page/Welcome.jsp"></action>  
  19.   
  20.         <action path="/upload" type="com.capinfo.action.upload.UploadAction" name="uploadForm" input="/page/upload.jsp" scope="request">  
  21.             <forward name="success" path="/page/upload.jsp" />  
  22.         </action>  
  23.            
  24.     <action path="/downLoad"    
  25.             type="com.yourcompany.struts.action.DownLoadAction"    
  26.             input="/page/upload.jsp"  
  27.             scope="request"  
  28.             >  
  29.         <forward name="downloadfile" path="/page/upload.jsp" />  
  30.     </action>  
  31.        
  32.     </action-mappings>  
  33.   
  34.     <message-resources parameter="com.yourcompany.struts.ApplicationResources" />  
  35.   
  36. </struts-config>  
  37.   
分享到:
评论
1 楼 fighter1945 2009-01-19  
action 的return 这么写,能够成功转向么?
你没报response已经提交的error?

相关推荐

    Struts的文件下载

    这篇博文将深入探讨如何在Struts框架下实现文件下载的功能。 首先,我们需要了解文件下载的基本原理。当用户点击下载链接时,浏览器向服务器发送一个HTTP请求,服务器响应这个请求,将文件内容以特定的MIME类型返回...

    struts2实现文件上传下载

    本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...

    struts与hibernate实现文件的上传与动态下载

    本篇文章将详细讲解如何利用Struts2.2和Hibernate3.6实现文件的上传与动态下载。 **一、文件上传** 1. **环境配置**:首先,你需要一个集成开发环境,例如MyEclipse8.6,并安装所需的Struts2.21、JUnit4.8.2以及...

    struts1.2.9包下载

    在本篇文章中,我们将深入探讨Struts 1.2.9框架的相关知识,包括其下载方式、安装步骤、核心概念及应用案例等。 ### Struts 1.2.9框架概述 Struts 1.2.9是Struts 1.x系列中的一个版本,它是一个开源的MVC(Model-...

    struts2文件上传下载源代码

    这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件到服务器。在Struts2中,这通常通过表单实现,表单包含一个`&lt;input type="file"&gt;`...

    STRUTS2+HIBERNATE详细的分页实现代码详细的分页实现代码

    根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要探讨的是如何在Struts2与Hibernate框架结合下实现分页功能。接下来将详细解析Struts2与Hibernate如何协作完成这一任务。 ### Struts2与Hibernate...

    struts2的Ajax实现注册验证

    这篇文档“struts与ajax.docx”可能包含了如何将Struts2和Ajax结合使用的详细步骤。通常,这个过程会涉及以下几个关键点: 1. **Struts2配置**:首先,需要在`struts.xml`配置文件中定义一个Action,这个Action将...

    struts包下载

    本篇文章将深入探讨Struts 2的核心概念、工作原理及其在实际项目中的应用。 **1. Struts 2框架概述** Struts 2是基于Apache Jakarta Struts 1的升级版,它整合了WebWork框架的优势,提供了更灵活和强大的功能。...

    Struts2中实现文件下载(修正中文问题).pdf

    本篇文章将详细介绍如何在Struts2中实现文件下载,并解决中文文件名的编码问题。 首先,我们需要在`struts.xml`配置文件中定义一个Action,这个Action将会处理文件下载的请求。例如,我们可以创建一个名为`...

    使用 struts2实现分页

    本篇文章将详细讲解如何利用Struts2和JSP实现前端的分页功能。 分页是Web应用中常见的需求,尤其在处理大量数据时,能够帮助用户更高效地浏览和管理数据。Struts2通过Action类、结果类型配置以及拦截器等机制,可以...

    Struts2 下载取消报异常最终解决办法

    本篇将深入探讨Struts2下载取消报异常的解决方法,以及相关的知识点。 1. **Struts2 文件下载原理** - Struts2提供了方便的Action类和结果类型,如`StreamResult`,来处理文件下载。通过设置HTTP响应头,如`...

    Struts2 技术内幕-深入解析Struts2架构设计与实现原理

    《Struts2技术内幕:深入解析Struts2架构设计与实现原理》以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2...

    struts2文件下载

    这篇博客文章可能探讨了在Struts2环境下处理文件下载的步骤和技术。 在Struts2中,`DownloadAction.java`很可能是一个关键的控制器类,它负责处理用户请求并提供文件下载。这个类通常会包含以下方法: 1. **预处理...

    struts2 上传下载模板

    这篇博客文章“Struts2 上传下载模板”可能提供了关于如何在Struts2框架中实现这一功能的详细教程。 首先,我们来讨论文件上传。在Struts2中,文件上传通常依赖于`Apache Commons FileUpload`库,它处理了文件的多...

    struts实现文件上传与下载

    本篇文章将深入探讨如何在Struts框架下实现文件的上传与下载功能。 ### 文件上传 1. **准备环境**:首先,确保你的项目已经集成了Struts2框架,包括相关的jar包,如struts2-core、struts2-convention-plugin等,并...

    Java Struts2 实现CRUD

    在本篇文章中,我们将深入探讨如何使用Java Struts2框架来完成这些基本的数据操作。 **一、Struts2简介** Struts2是Apache软件基金会的开源项目,它是Struts1的升级版,提供了更灵活的架构和更强的控制力。Struts2...

    java结合struts的上传下载文件

    本篇将重点讲解如何利用Java和Struts框架实现文件的上传与下载功能。 一、文件上传 1. **配置Struts2核心配置文件**: 在`struts.xml`中添加上传配置,声明一个`action`用于处理文件上传请求。例如: ```xml ...

    Android+struts2实现图片上传

    通过阅读这篇博文,你可以获得更具体的实现细节和可能遇到的问题解决方案。 总的来说,Android+Struts2实现图片上传涉及的知识点包括: 1. Android客户端的文件操作和网络请求 2. Bitmap对象的处理和转换为字节...

    Struts2案例翻译篇-Using Struts2 Tag

    本篇将深入讲解如何在Struts2中使用Tag,以及它们在"HelloWorld"案例中的应用。 1. **Struts2 Tags介绍** Struts2标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列预定义的标签,用于处理表单、链接、...

    struts2 实现文件、图片 上传

    Struts2是一个非常流行的Java Web...本篇文章将详细介绍如何在Struts2中实现这一功能。 首先,我们需要在Struts2的配置文件(struts.xml)中添加相应的action配置,以处理文件上传请求。以下是一个简单的示例: ```xml ...

Global site tag (gtag.js) - Google Analytics