仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 428|回复: 10
打印 上一主题 下一主题

[学习教程] JAVA网页编程之用Jsp来完成文件下载功效的几种体例

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:17:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你对java乐观有点盲目。java的关键就是在服务器上表现优异,而且它提供了整个开发所需要的工具。应该是说,看哪天。net有没有机会赶上java。js|下载<Pstyle="TEXT-INDENT:2em">1.最间接最复杂的,体例是把文件地点间接放到html页面的一个链接中。如许做的弱点是把文件在服务器上的路径表露了,而且还没法对文件下载举行别的的把持(如权限)。这个就不写示例了。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">2.在服务器端把文件转换成输入流,写进到response,以response把文件带到扫瞄器,由扫瞄器来提醒用户是不是乐意保留文件到当地。(示比方下)<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">
  1. <%response.setContentType(fileminitype);response.setHeader("Location",filename);response.setHeader("Cache-Control","max-age="+cacheTime);//filename应当是编码后的(utf-8)response.setHeader("Content-Disposition","attachment;filename="+filename);response.setContentLength(filelength);OutputStreamoutputStream=response.getOutputStream();InputStreaminputStream=newFileInputStream(filepath);byte[]buffer=newbyte[1024];inti=-1;while((i=inputStream.read(buffer))!=-1){outputStream.write(buffer,0,i);}outputStream.flush();outputStream.close();inputStream.close();outputStream=null;%>
复制代码
<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">3.既然是JSP的话,另有一种体例就是用Applet来完成文件的下载。不外客户起首得信托你的这个Applet小程序,由这个程序来承受由servlet发送来的数据流,并写进到当地。<Pstyle="TEXT-INDENT:2em">servlet端示例<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">
  1. publicvoidservice(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{res.setContentType("text/plain");OutputStreamoutputStream=null;try{outputStream=res.getOutputStream();//把文件路径为srcFile的文件写进outputStream中popFile(srcFile,outputStream));}catch(IOExceptione){e.printStackTrace();}}
复制代码
<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">JApplet端示例<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">
  1. URLConnectioncon;try{//url是被挪用的SERVLET的网址如*.docon=url.openConnection();con.setUseCaches(false);con.setDoInput(true);con.setDoOutput(true);con.setRequestProperty("Content-Type","application/octet-stream");InputStreamin=con.getInputStream();ProgressMonitorInputStreampmInputStream=newProgressMonitorInputStream(pane,"正在从服务器下载文件内容",in);ProgressMonitorpMonitor=pmInputStream.getProgressMonitor();pMonitor.setMillisToDecideToPopup(3);pMonitor.setMillisToPopup(3);//localfilepath当地路径,localstr文件文件夹,filename当地文件名Stringlocalfilepath=localstr+filename;//办法saveFilsaveFilee是把输出流pmInputStream写到文件localfilepath中if(saveFilsaveFilee(localfilepath,pmInputStream)){    openLocalFile(localfilepath);}
复制代码
<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">4.特地把JApplet上传文件的代码也贴下去.<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">JApplet端示例<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">
  1. URLConnectioncon;try{con=url.openConnection();//url是被挪用的SERVLET的网址如*.do  con.setUseCaches(false);con.setDoInput(true);con.setDoOutput(true);con.setRequestProperty("Content-Type","application/octet-stream");OutputStreamout=con.getOutputStream();//localfilepath当地路径,localstr文件文件夹,filename当地文件名Stringlocalfilepath=localstr+filename;//文件getOutputStream是把文件localfilepath写到输入流out中getOutputStream(localfilepath,out);InputStreamin=con.getInputStream();returntrue;}catch(IOExceptione){System.out.println("文件上传堕落!");e.printStackTrace();}
复制代码
<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">servlet端代码示例<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">
  1. publicvoidservice(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{res.setContentType("text/plain");InputStreaminputStream=null;try{inputStream=res.getInputStream();//把输出流inputStream保留到文件路径为srcFile的文件中writefile(srcFile,inputStream);}catch(IOExceptione){e.printStackTrace();}}//endservice
复制代码
<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">总结:在文件的传输中是流的情势存在的,在硬盘上是文件的情势存在的。我们要做的只是经由过程HttpServletRequest和HttpServletResponse,大概是response和request来发送流和读取流。和把文件转换成流或把流转换成文件的操纵。

C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)
老尸 该用户已被删除
沙发
发表于 2015-1-22 05:40:42 来自手机 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
深爱那片海 该用户已被删除
板凳
发表于 2015-1-30 23:03:53 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
兰色精灵 该用户已被删除
地板
发表于 2015-2-6 16:35:24 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
第二个灵魂 该用户已被删除
5#
发表于 2015-2-7 16:16:21 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
活着的死人 该用户已被删除
6#
发表于 2015-2-22 15:16:09 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
小妖女 该用户已被删除
7#
发表于 2015-2-28 19:22:43 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
小魔女 该用户已被删除
8#
发表于 2015-3-3 21:59:25 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
莫相离 该用户已被删除
9#
发表于 2015-3-7 10:59:26 | 只看该作者
是一种为 Internet发展的计算机语言
乐观 该用户已被删除
10#
发表于 2015-3-15 01:28:16 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
海妖 该用户已被删除
11#
发表于 2015-3-21 15:27:15 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 15:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表