Struts文件下载(静态)
前言:在实际的开发中,我们可能需要动态下载和静态下载,
动态下载:例如我上传了一个文件,你想下载,那就必须动态生成下载链接,因为我服务器一开始是不知道我上传的东西是什么,放在那里,
静态下载:比如一些网站一些固定的资源,提供给我们下载
这里我写的是关于静态的下载实现流程:
第一步:
编写Action类,响应下载的的超链接:
1)声明contentType(文件类型)contentLength( 下载的文件的长度)contentDisposition(响应信息的类型)这三个属性,并提供这三个属性的set和get方法
ps:其中contentDisposition属性一定要声明而且也要指定属性值,:因为默认的属性值,无法响应下载的result的type类型的Stream
具体声明如下:
private String contentType;
private long contentLength;
private String contentDisposition;
private InputStream inputStream; public String getContentType() {
return contentType;
} public long getContentLength() {
return contentLength;
} public String getContentDisposition() {
return contentDisposition;
} public InputStream getInputStream() {
return inputStream;
}
2提供inputstream:(提供一个输入流给浏览器下载)
代码如下:
private InputStream inputStream;
public InputStream getInputStream() {
return inputStream;
} public String execute() throws Exception { //确定各个成员变量的值 contentDisposition = "attachment;filename=hidden.html"; ServletContext servletContext = ServletActionContext.getServletContext();//取得ServletContext对象
String fileName = servletContext.getRealPath("/File/hidden.html");//取得需要下载文件的路径
inputStream = new FileInputStream(fileName); return SUCCESS;
}
Struts文件下载(静态)的更多相关文章
- struts 文件下载
=============================struts 文件下载 ================================== 步骤一: JSP页面 <a href=& ...
- struts 文件下载 annotation 注解版
[本文简介] 本文将简单介绍使用 struts2 ,通过零配置和 annotation 实现文件下载功能. [文件夹结构] [web.xml有关struts的配置] <filter> &l ...
- Struts文件下载
/* 文件下载的先决条件 * 1. 在xml配置文件中必须配置一个type="stream"的result, result中不需要填写任何内容 * 2. 在Action中编写一个接 ...
- struts文件下载机制
Struts2 中使用 type="stream" 的 result 进行下载即可.只用提供一个输入流inputStream,剩下的输出工作struts帮我们做. 例子一: 1.可 ...
- Struts文件下载具体解释
在做项目中上传下载肯定是少不了的,本博文对struts2的下载进行解释并附上部分代码 1.action类 public class FileDownLoadAction extends ActionS ...
- java:struts框架2(方法的动态和静态调用,获取Servlet API三种方式(推荐IOC(控制反转)),拦截器,静态代理和动态代理(Spring AOP))
1.方法的静态和动态调用: struts.xml: <?xml version="1.0" encoding="UTF-8"?> <!DOCT ...
- struts2中的文件上传,文件下载
文件上传: Servlet中的文件上传回顾 前台页面 1.提交方式post 2.表单类型 multipart/form-data 3.input type=file 表单输入项 后台 apache提交 ...
- struts 多文件上传 annotation注解(零配置)+ ajaxfileupload + 异步 版本
[本文简介] struts 多文件上传.基于”零配置“+"ajaxfileupload" 的一个简单例子. [导入依赖jar包] jquery-1.7.2.js : http:// ...
- Servlet&jsp基础:第二部分
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
随机推荐
- C++ 类中有虚函数(虚函数表)时 内存分布
虚函数表 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的.简称为V-Table.在这个表中,主是要一个类的虚函数的地址表 ...
- C++知识点 笔试常见
C++知识点 一.#include “filename.h”和#include <filename.h>的区别 #include “filename.h”是指编译器将从当前工作目录上开 ...
- iOS状态栏标志
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; //显示 [UIApplication sharedA ...
- pre 标签的使用
1.在 div为contenteditable = true 中: 换行显示:就使用了pre 标签: 避免了/n 和空格的转换:实现了ctrl + enter 换行:显示的问题: 2.如何超过了div ...
- CentOS 6.2下log4cplus的使用
一.简介 log4cplus是一款优秀的基于C/C++的开源日志库.log4cplus具有线程安全,不用但心在多线程状态下写日志问题:使用灵活,可通过配置文件设置日志级别下输出位置,还可以在程序运行时 ...
- AndroidStudio添加Android源码
找了半天没找到,还是用google好啊!修改如下,打开如下的build.gradle,修改compileSdkVersion 为你下载的源码版本号. Open your sdk manager fro ...
- OpenCV使用标定图
本文由 @lonelyrains 出品,转载请注明出处. 文章链接: http://blog.csdn.net/lonelyrains/article/details/46915705 上一步生成标 ...
- RDD缓存学习
首先实现rdd缓存 准备了500M的数据 10份,每份 100万条,存在hdfs 中通过sc.textFile方法读取 val rdd1 = sc.textFile("hdfs://mini ...
- st16c554
/* * st16c554.c * * TWO ST16C554 driver for AMCC PPC405EP * * Author: Li Zhi You/Zhu jiang <godis ...
- PHP——数组中的each(),list()和while循环遍历数组
.while遍历 在while()语句每次循环中,each()语句将当前数组元素的键,赋给list()函数的第一个参数变量$key.并将当前数组元素中的值,赋给list()函数中的第二个参数变量$va ...