Java隐含对象实验报告,JSP隐含对象response实现文件下载
一.简单介绍JSP隐含对象response实现文件下载
(1)在JSP中实现文件下载最简单的方法是定义超链接指向目标资源,用户单击超链接后直接下载资源,但直接暴露资源的URL也会带来一些负面的影响,例如容易被其它网站盗链,造成本地服务器下载负载过重。
(2)另外一种下载文件的方法是使用文件输出流实现下载,首先通过response报头告知客户端浏览器,将接收到的信息另存为一个文件,然后用输出流对象给客户端传输文件数据,浏览器接收数据完毕后将数据另存为文件,这种下载方法的优点是服
务器端资源路径的保密性好,并可控制下载的流量以及日志登记等。
二.两种文件的下载方式
(1)二进制文件的下载
用JSP程序下载二进制文件的基本原理是:首先将源文件封装成字节输入流对象,通过该对象读取文件数据,获取response对象的字节输出流对象,通过输出流对象将二进制的字节数据传送给客户端。
1.把源文件封装成字节输入流对象
2.读取二进制字节数据并传输给客户端
代码如下:
int status=0;
byte b[]=new byte[1024];
FileInputStream in=null;
ServletOutputStream out2=null;
try
{
response.setHeader("content-disposition","attachment; filename=d.zip");
in=new FileInputStream("c:\\tomcat\\webapps\\ROOT\\d.zip");
out2=response.getOutputStream();
while(status != -1 )
{
status=in.read(b);
out2.write(b);
}
out2.flush();
}
catch(Exception e)
{
System.out.println(e);
response.sendRedirect("downError.jsp");
}
finally
{
if(in!=null)
in.close();
if(out2 !=null)
out2.close();
}
%>
(2)文本文件下载
文本文件下载时用的是字符流,而不是字节流。首先取得源文件的字符输入流对象,用java.io.FileReader类封装,再把FileReader对象封装为java.io.BufferedReader,以方便从文本文件中一次读取一行。字符输出流直接用JSP的隐含对象out,out能够输出字符数据。
代码如下:
int status=0;
String temp=null;
FileReader in=null;
BufferedReader in2=null;
try
{
response.setHeader("content-disposition","attachment; filename=ee.txt");
response.setCharacterEncoding("gb2312");
in=new FileReader("c:\\tomcat\\webapps\\ROOT\\ee.txt");
in2=new BufferedReader(in);
while((temp=in2.readLine()) != null )
{
out.println(temp);
}
out.close();
}
catch(Exception e)
{
System.out.println(e);
response.sendRedirect("downError.jsp");
}
finally
{
if(in2!=null)
in2.close();
}
%>
希望本文所述对大家学习JSP隐含对象response实现文件下载有所帮助。
Java隐含对象实验报告,JSP隐含对象response实现文件下载相关推荐
- java类与对象实验_JAVA类与对象实验报告
<JAVA类与对象实验报告>由会员分享,可在线阅读,更多相关<JAVA类与对象实验报告(6页珍藏版)>请在人人文库网上搜索. 1.面向对象程序设计实验报告实验三.类与对象(1) ...
- 《Java程序设计》实验报告——Java的对象与类
浙江理工大学 <Java程序设计> 实验报告 20 19-20 20学年第 1学期 学 院 信息学院 班 级 计算机科学与技术18(3) 姓 名 申屠志刚 学 号 2 ...
- java 类与对象实验报告_java类与对象实验报告
java类与对象实验报告 西 安 邮 电 大 学(计算机学院)课内实验报告实验名称: 类与对象 专业名称: 计算机科学与技术班 级: 计科1405班 学生姓名: 高宏伟 学 号: 04141152指导 ...
- 《Java程序设计》实验报告——Java的多线程机制
浙江理工大学 <Java程序设计> 实验报告 20 19-20 20学年第 1学期 学 院 信息学院 班 级 计算机科学与技术18(3) 姓 名 申屠志刚 学 号 2 ...
- 《Java程序设计》实验报告——Java的接口与继承
浙江理工大学 <Java程序设计> 实验报告 20 19-20 20学年第 1学期 学 院 信息学院 班 级 计算机科学与技术18(3) 姓 名 申屠志刚 学 号 2 ...
- java程序设计教程实验报告_java程序设计课程--实验报告-实验13.doc
java程序设计课程--实验报告-实验13.doc 还剩 12页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: ...
- java弹弹球实验报告_Java弹球游戏实验报告—chen
Java弹球游戏实验报告-chen 课 程 设 计 报 告 题 目 弹球小游戏 姓 名 方成 学 号 20 专 业 java 指导教师 陈华恩 2013年 12 月 30 目录 一.实验目的2 二.需 ...
- java模拟洗衣机程序,java洗衣机仿真程序实验报告及代码.doc
java洗衣机仿真程序实验报告及代码.doc 11.实验题目:用java编写洗衣机仿真程序2.实验目的:1.熟悉并掌握洗衣机(全自动)的工作原理和运行过程.2.学会软件工程设计中的一系列分析研究,对需 ...
- java继承机制实验报告_JAVA继承实验报告.doc
JAVA继承实验报告 JAVA语言程序设计 实验报告 实验一 实验题目: 面 向 对 象 编 程 指导老师: 卢照 专业班级:计算机科学与技术系1106班 姓 名:*****) 2014年3月20日 ...
最新文章
- 转载 jsonrpc环境搭建和简单实例
- java程序员修炼之道
- 百练OJ:2746:约瑟夫问题
- 计算机上开发和运行应用程序与操作系统无关,计算机期中测验理论部分和答案-C.doc...
- 编辑器js获取浏览器高度和宽度值(转)
- LeakCanary——直白的展现Android中的内存泄露
- 你必须知道的Docker数据卷
- 河流水质指标预测与不确定性分析:机器学习模型的比较研究--文献阅读
- c语言fopen_s的用法,fopen和fopen_s用法的比较
- 学会判断Web安全网关的性能
- 华为Mate 40 Pro+真机现身:外观实锤,价格近万!
- 完美解决Python与anaconda之间的冲突问题
- 微信生成海报 服务器性能,微信小程序生成清晰海报
- 如何在Ubuntu系统下装windows10双系统
- 【飞书集成自建应用教程】
- 一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)
- 电商 SPU和SKU 的区别
- PPT2010设置图片透明度
- 【击穿、穿透、雪崩】
- jython podcast cool isnt't it?