• Struts2 文件下载


     1 package lee;
     2 
     3 import java.io.InputStream;
     4 import org.apache.struts2.ServletActionContext;
     5 import com.opensymphony.xwork2.Action;
     6 import com.opensymphony.xwork2.ActionContext;
     7 import java.util.Map;
     8 /**
     9  * Description:
    10  * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a> 
    11  * <br/>Copyright (C), 2001-2010, Yeeku.H.Lee
    12  * <br/>This program is protected by copyright laws.
    13  * <br/>Program Name:
    14  * <br/>Date:
    15  * @author  Yeeku.H.Lee kongyeeku@163.com
    16  * @version  1.0
    17  */
    18 public class AuthorityDownAction implements Action 
    19 {
    20     private String inputPath;
    21     public void setInputPath(String value)
    22     {
    23         inputPath = value;
    24     }
    25     public InputStream getTargetFile() throws Exception 
    26     {
    27         //ServletContext提供getResourceAsStream()方法
    28         //返回指定文件对应的输入流 
    29         return ServletActionContext.getServletContext()
    30             .getResourceAsStream(inputPath);
    31     }
    32     public String execute() throws Exception
    33     {
    34         //取得ActionContext实例
    35         ActionContext ctx = ActionContext.getContext();
    36         //通过ActionContext访问用户的HttpSession
    37         Map session = ctx.getSession();
    38         String user = (String)session.get("user");
    39         //判断Session里的user是否通过检查
    40         if ( user !=  null && user.equals("crazyit"))
    41         {
    42             return SUCCESS;
    43         }
    44         ctx.put("tip" , 
    45             "您还没有登录,或者登录的用户名不正确,请重新登录!");
    46         return LOGIN;
    47     }
    48 }
     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     2     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     3 <html xmlns="http://www.w3.org/1999/xhtml">
     4 <head>
     5     <title>Struts 2的文件下载</title>
     6     <meta name="author" content="Yeeku.H.Lee" />
     7     <meta name="website" content="http://www.crazyit.org" />
     8     <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
     9 </head>
    10 <body>
    11 <h3>Struts 2的文件下载</h3>
    12 <ul>
    13 <li>下载疯狂Java联盟的Logo:
    14     <a href="download.action">下载图形文件</a></li>
    15 <li>下载疯狂Java联盟的Logo的压缩文件:
    16     <a href="download2.action">下载压缩文件</a></li>
    17 </ul>
    18 </body>
    19 </html>
     1 <?xml version="1.0" encoding="GBK"?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
     4     "http://struts.apache.org/dtds/struts-2.1.dtd">    
     5 <struts>
     6 
     7     <constant name="struts.custom.i18n.resources" 
     8         value="globalMessages"/>
     9     <constant name="struts.i18n.encoding" value="GBK"/>
    10 
    11     <package name="lee" extends="struts-default">
    12 
    13         <action name="download" class="lee.FileDownloadAction">
    14             <!-- 指定被下载资源的位置 -->
    15             <param name="inputPath">images疯狂Java联盟.gif</param>
    16             <!-- 配置结果类型为stream的结果 -->
    17             <result name="success" type="stream">
    18                 <!-- 指定下载文件的文件类型 -->
    19                 <param name="contentType">image/gif</param>
    20                 <!-- 指定由getTargetFile()方法返回被下载文件的InputStream -->
    21                 <param name="inputName">targetFile</param>
    22                 <param name="contentDisposition">filename="crazyit.gif"</param>
    23                 <!-- 指定下载文件的缓冲大小 -->
    24                 <param name="bufferSize">4096</param>
    25             </result>
    26         </action>
    27 
    28         <action name="download2" class="lee.AuthorityDownAction">
    29             <!-- 定义被下载文件的物理资源 -->
    30             <param name="inputPath">imagescrazyit.zip</param>
    31             <result name="success" type="stream">
    32                 <!-- 指定下载文件的文件类型 -->
    33                 <param name="contentType">application/zip</param>
    34                 <!-- 指定由getTargetFile()方法返回被下载文件的InputStream -->
    35                 <param name="inputName">targetFile</param>
    36                 <param name="contentDisposition">filename="crazyit.zip"</param>
    37                 <!-- 指定下载文件的缓冲大小 -->
    38                 <param name="bufferSize">4096</param>
    39             </result>
    40             <!-- 定义一个名为login的结果 -->
    41              <result name="login">/input.jsp</result>
    42         </action>
    43 
    44         <action name="login" class="lee.LoginAction">
    45             <result>/stuts2Down.html</result>
    46         </action>
    47         <action name="">
    48             <result>.</result>
    49         </action>
    50 
    51     </package>
    52 </struts>
  • 相关阅读:
    观察者模式 java实现
    Decorator 模式
    Adapter 模式 java 实现
    Singleton 模式 Java,c++实现
    抽象工厂 java实现
    工厂方法模式 java实现
    简单工厂模式 Java实现
    【4】学习JS 数据结构与算法笔记
    【3】JavaScript编程全解笔记(三)
    【3】如何高效学习笔记
  • 原文地址:https://www.cnblogs.com/sherrykid/p/4638811.html
Copyright © 2020-2023  润新知