struts2框架之文件下载(参考第三天学习笔记)
下载
1. 下载是一种响应方式
正常的响应:响应正文是html:response.getWriter().print("html");
下载的响应:
1.一个流:字节数据:response.getOutputStream().write(文件的内容,即一些字节数据);
2.response.setContentType("image/jpeg");
3. response.setHeader("Content-disposition", "attachment;filename=xxx");
2. Struts下载
Struts2中的响应由Result来完成,所以我们需要配置一种特殊类型的<reuslt>
1). 配置<result type="stream">,其中stream说明了当前结果为下载。
2). 需要为结果配置两个头,一个流!
<param name="contentType">image/jpeg</param>
<param name="contentDisposition">attachment;filename=a.jpg</param>
<!--
结果会得到Action的类型为InputStream属性的名称!
结果得到名称之后,通过名称来调用get方法得到流对象。
-->
<param name="inputName">inputStream</param>
必须为Action提供一个InputStream类型的属性,必须提供get方法
需要给<result>配置属性名称参数,而不是流对象本身
下载附件名乱码解决
/*** 下载文件时,针对不同浏览器,进行附件名的编码* @param filename 下载文件名* @param agent 客户端浏览器* @return 编码后的下载附件名* @throws IOException*/public String encodeDownloadFilename(String filename, String agent) throws IOException{if(agent.contains("Firefox")){ // 火狐浏览器filename = "=?UTF-8?B?"+new BASE64Encoder().encode(filename.getBytes("utf-8"))+"?=";}else{ // IE及其他浏览器filename = URLEncoder.encode(filename,"utf-8");}return filename;}
转载于:https://www.cnblogs.com/xyhero/p/9348788.html
struts2框架之文件下载(参考第三天学习笔记)相关推荐
- 20155303狄惟佳预备作业三Linux学习笔记
20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...
- vim编辑器的简单使用(参考别人文章的学习笔记)
vim编辑器的简单使用(参考别人文章的学习笔记) vim编辑器是linux下最常用的文本编辑器之一 vim的三种模式 命令模式:进入vim后即在命令模式下,或者在任意模式下按ESC键 输入模式:在命令 ...
- 多维随机变量及其分布——《概率论及其数理统计》第三章学习笔记
多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 文章目录 多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 前言 MindMap 二维随机变量 定义与 ...
- 周志华西瓜书第三章学习笔记
第三章学习笔记 文章目录 第三章学习笔记 1.知识脉络 2.我的笔记 参考 1.知识脉络 2.我的笔记 这一章公式推导实在太多了,需要补充的推导过程也有很多,就不写电子档了.扩展公式推导和LDA部分补 ...
- 工程伦理第三章学习笔记2020最新
工程伦理第三章学习笔记2020最新 因为之前自己在网上找答案总是觉得费劲,一道一道的找,很慢,突然找到了前两章的答案,感觉有一种前人种树后人乘凉的感觉,于是自己在艰难找完第三章习题并全对的情况下,将题 ...
- 【BackEnd--SSM 框架详解】Mybatis+Spring+SpringMVC学习笔记(完整详细版)
BackEnd 学习笔记 1 Java 2 SSM框架(Mybatis+Spring+SpringMVC) 3 SpringBoot(SpringBoot 3.x+MybatisPlus) 4 Spr ...
- SAP Fiori Elements 公开课第三单元学习笔记 - OData 和注解深入讲解
课程地址 很多 SAP 从业者反映,open SAP 上的视频,因为网络原因无法访问,所以我会陆续在我的个人微 信 号"汪子熙"上面,把这些视频配上中文字幕并发布出来,敬请关注. ...
- 毕业设计(三)---spring学习笔记(1)之-IOC
2019独角兽企业重金招聘Python工程师标准>>> 框架搭建完毕,准备开始动手,理了一下思路,发现struts2 和 hibernate3 的各种公用都比较清楚,唯独对sprin ...
- 孙鑫VC++深入详解第三章学习笔记
第三章 3.1创建MFC AppWizard 如何利用vs2019创建MFC应用见参考文献[1] 需要注意的地方有 [1] 创建MFC单文档应用程序 [2]开启类视图窗口 3.2基于MFC的程序框架剖 ...
最新文章
- 走进Java接口测试大门之测试框架TestNG
- python config
- 20款响应式的 HTML5 网页模板【免费下载】
- 【项目实战课】NLP入门第1课,人人免费可学,基于TextCNN的新闻文本分类实战...
- [开源]基于姿态估计的运动计数APP开发(二)
- 光模块、连接器、光纤的常用知识
- dhcp是哪一层的协议_随手记(3)常见的网络协议有哪些
- 初学者python笔记(封装、反射、类内置attr属性、包装与授权)
- android系统签名
- 矩阵分析 (四)向量和矩阵的范数
- 帆软邮件STMP配置、发送测试及邮件发送失败日志排查
- mysql 语句中last_Mysql函数:Last_insert_id()语法讲解
- honeywell Xenon TM 1900二维码扫描枪扫描不显示中文
- 《平衡掌控者 游戏数值战斗设计》学习笔记(一)游戏研发概要
- 用C语言编写一个关机程序
- 几个同步盘的使用体会
- Foxmail登录不上163邮箱。。。
- Java项目:赛事打分系统(java+SSM+Layui+Maven+mysql)
- 【机器学习】机器学习常见符号
- Tri Mode Ethernet MAC的配置及使用
热门文章
- 【TensorFlow】TensorFlow从浅入深系列之十三 -- 教你深入理解模型持久化(模型保存、模型加载)
- 笔记本上的CNN搞定了MNIST
- 大道至简:算法工程师须知的十个炼丹trick
- 机器学习、深度学习方面书籍收集(持续更新……)
- 大数据预测实战-随机森林预测实战(三)-数据量对结果影响分析
- Python调用C函数的方法以及如何编写Python的C扩展
- python 超参数_OpenCV python sklearn随机超参数搜索的实现
- python 作用域从大到小排序_Python 内置函数、作用域、闭包、递归
- GitHub与GitLab的区别
- 基于图搜索的路径规划方法