仓酷云
标题:
JAVA网页编程之用Jsp来完成文件下载功效的几种体例
[打印本页]
作者:
蒙在股里
时间:
2015-1-18 11:17
标题:
JAVA网页编程之用Jsp来完成文件下载功能的几种体例
你对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">
<%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">
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">
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">
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">
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
是一种将安全性(Security)列为第一优先考虑的语言
作者:
深爱那片海
时间:
2015-1-30 23:03
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者:
兰色精灵
时间:
2015-2-6 16:35
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者:
第二个灵魂
时间:
2015-2-7 16:16
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者:
活着的死人
时间:
2015-2-22 15:16
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者:
小妖女
时间:
2015-2-28 19:22
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者:
小魔女
时间:
2015-3-3 21:59
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者:
莫相离
时间:
2015-3-7 10:59
是一种为 Internet发展的计算机语言
作者:
乐观
时间:
2015-3-15 01:28
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者:
海妖
时间:
2015-3-21 15:27
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2