下载

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框架之文件下载(参考第三天学习笔记)相关推荐

  1. 20155303狄惟佳预备作业三Linux学习笔记

    20155303狄惟佳预备作业三Linux学习笔记 初次接触Ubuntu系统以及Linux内核,了解了其产生的历史,从感性来讲,深深吸引我的是其中蕴含的珍贵的开源精神,以及Stallman等人对&qu ...

  2. vim编辑器的简单使用(参考别人文章的学习笔记)

    vim编辑器的简单使用(参考别人文章的学习笔记) vim编辑器是linux下最常用的文本编辑器之一 vim的三种模式 命令模式:进入vim后即在命令模式下,或者在任意模式下按ESC键 输入模式:在命令 ...

  3. 多维随机变量及其分布——《概率论及其数理统计》第三章学习笔记

    多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 文章目录 多维随机变量及其分布--<概率论及其数理统计>第三章学习笔记 前言 MindMap 二维随机变量 定义与 ...

  4. 周志华西瓜书第三章学习笔记

    第三章学习笔记 文章目录 第三章学习笔记 1.知识脉络 2.我的笔记 参考 1.知识脉络 2.我的笔记 这一章公式推导实在太多了,需要补充的推导过程也有很多,就不写电子档了.扩展公式推导和LDA部分补 ...

  5. 工程伦理第三章学习笔记2020最新

    工程伦理第三章学习笔记2020最新 因为之前自己在网上找答案总是觉得费劲,一道一道的找,很慢,突然找到了前两章的答案,感觉有一种前人种树后人乘凉的感觉,于是自己在艰难找完第三章习题并全对的情况下,将题 ...

  6. 【BackEnd--SSM 框架详解】Mybatis+Spring+SpringMVC学习笔记(完整详细版)

    BackEnd 学习笔记 1 Java 2 SSM框架(Mybatis+Spring+SpringMVC) 3 SpringBoot(SpringBoot 3.x+MybatisPlus) 4 Spr ...

  7. SAP Fiori Elements 公开课第三单元学习笔记 - OData 和注解深入讲解

    课程地址 很多 SAP 从业者反映,open SAP 上的视频,因为网络原因无法访问,所以我会陆续在我的个人微 信 号"汪子熙"上面,把这些视频配上中文字幕并发布出来,敬请关注. ...

  8. 毕业设计(三)---spring学习笔记(1)之-IOC

    2019独角兽企业重金招聘Python工程师标准>>> 框架搭建完毕,准备开始动手,理了一下思路,发现struts2 和 hibernate3 的各种公用都比较清楚,唯独对sprin ...

  9. 孙鑫VC++深入详解第三章学习笔记

    第三章 3.1创建MFC AppWizard 如何利用vs2019创建MFC应用见参考文献[1] 需要注意的地方有 [1] 创建MFC单文档应用程序 [2]开启类视图窗口 3.2基于MFC的程序框架剖 ...

最新文章

  1. 走进Java接口测试大门之测试框架TestNG
  2. python config
  3. 20款响应式的 HTML5 网页模板【免费下载】
  4. 【项目实战课】NLP入门第1课,人人免费可学,基于TextCNN的新闻文本分类实战...
  5. [开源]基于姿态估计的运动计数APP开发(二)
  6. 光模块、连接器、光纤的常用知识
  7. dhcp是哪一层的协议_随手记(3)常见的网络协议有哪些
  8. 初学者python笔记(封装、反射、类内置attr属性、包装与授权)
  9. android系统签名
  10. 矩阵分析 (四)向量和矩阵的范数
  11. 帆软邮件STMP配置、发送测试及邮件发送失败日志排查
  12. mysql 语句中last_Mysql函数:Last_insert_id()语法讲解
  13. honeywell Xenon TM 1900二维码扫描枪扫描不显示中文
  14. 《平衡掌控者 游戏数值战斗设计》学习笔记(一)游戏研发概要
  15. 用C语言编写一个关机程序
  16. 几个同步盘的使用体会
  17. Foxmail登录不上163邮箱。。。
  18. Java项目:赛事打分系统(java+SSM+Layui+Maven+mysql)
  19. 【机器学习】机器学习常见符号
  20. Tri Mode Ethernet MAC的配置及使用

热门文章

  1. 【TensorFlow】TensorFlow从浅入深系列之十三 -- 教你深入理解模型持久化(模型保存、模型加载)
  2. 笔记本上的CNN搞定了MNIST
  3. 大道至简:算法工程师须知的十个炼丹trick
  4. 机器学习、深度学习方面书籍收集(持续更新……)
  5. 大数据预测实战-随机森林预测实战(三)-数据量对结果影响分析
  6. Python调用C函数的方法以及如何编写Python的C扩展
  7. python 超参数_OpenCV python sklearn随机超参数搜索的实现
  8. python 作用域从大到小排序_Python 内置函数、作用域、闭包、递归
  9. GitHub与GitLab的区别
  10. 基于图搜索的路径规划方法