仓酷云

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

[学习教程] JAVA编程:jsp中经由过程数据流向客户端传送数据

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

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

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

x
其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点:js|客户端|数据jsp中经由过程数据流向客户端传送数据

/**
@作者:慈勤强
@Email:cqq1978@Gmail.com
*/



有人常常会问如许一个成绩:“服务器端程序怎样向客户端输入一个文件,然后让扫瞄器

翻开一个保留文件的对话框,来保留这个文件。”固然了,一个很复杂的做法,就是做一个

毗连,指向要输入的文件,好比<ahref="a.rar">下载a.rar</a>,如许,当用户点击

毗连的时分就会弹出IE的保留文件对话框,然后下载。



不外,如许做有两方面的缺点:



一是,扫瞄器偶然候会自作伶俐,关于一些罕见的文件范例会挪用相干的使用程序翻开,

好比,下载一个word文档.doc文件,偶然候扫瞄器会默许用word程序翻开它。



二是,就是避免盗链的成绩。一个用户能够间接经由过程url地点来随便的援用这个文件,形成

文件的盗用。



如今,在jsp中就能够间接经由过程文件流的体例向客户端写数据,相似于我们在asp顶用到

的adodb.stream对象。如许,我们就能够把我们必要回护的文件放到Web根目次之外的中央,

好比web根目次在F:        omcatwebappsROOT,而我们能够把文件放到f:software目次

下,如许他人就没有举措经由过程挪用url来下载文件了。



好了,上面我们就来看看代码怎样编写。



起首,设置一下response对象的contenttype为APPLICATION/OCTET-STREAM;



接着,设置response对象的httpheader属性Content-Disposition为一个文件名,

好比:attachment;filename="a.rar",个中的filename是“另存为”对话框呈现的

文件名。



最初,就要用FileInputStream对象从文件中读取数据,然后输入。

详细例子为:

<%
Stringfilename="JavaFlash.rar";
Stringfilepath="f:";
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition","attachment;filename="a.rar"");
java.io.FileInputStreamfileInputStream=newjava.io.FileInputStream(filepath+filename);
inti;
while((i=fileInputStream.read())!=-1){
out.write(i);}
fileInputStream.close();
out.close();
%>


出格值得注重的一点就是:这类办法是间接从文件中读取数据,然后输入到客户端。以是在全部文件中,不克不及再



向客户端输入任何信息,由于经由过程其余体例输入的信息也会保留在文件中,如许就损坏了文件的布局了。好比,

<%标记后面呈现的哪怕一个空格,一个回车都不成以,以是万万要当心。



关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。
admin 该用户已被删除
沙发
发表于 2015-1-21 09:26:16 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
谁可相欹 该用户已被删除
板凳
发表于 2015-1-30 13:27:02 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-7 02:00:05 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-7 06:30:10 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
只想知道 该用户已被删除
6#
 楼主| 发表于 2015-2-10 23:55:14 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
精灵巫婆 该用户已被删除
7#
发表于 2015-3-1 18:03:37 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
小魔女 该用户已被删除
8#
发表于 2015-3-4 10:50:11 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
老尸 该用户已被删除
9#
发表于 2015-3-8 14:39:16 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
兰色精灵 该用户已被删除
10#
发表于 2015-3-11 20:34:43 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
山那边是海 该用户已被删除
11#
发表于 2015-3-17 12:08:23 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
小妖女 该用户已被删除
12#
发表于 2015-3-21 23:02:21 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
若天明 该用户已被删除
13#
发表于 2015-4-1 04:32:36 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
柔情似水 该用户已被删除
14#
发表于 2015-4-10 23:02:11 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
飘灵儿 该用户已被删除
15#
发表于 2015-4-17 01:08:43 | 只看该作者
是一种为 Internet发展的计算机语言
第二个灵魂 该用户已被删除
16#
发表于 2015-5-1 10:10:37 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
透明 该用户已被删除
17#
发表于 2015-5-1 16:10:34 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
海妖 该用户已被删除
18#
发表于 2015-6-3 21:59:48 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
蒙在股里 该用户已被删除
19#
发表于 2015-6-9 19:26:31 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
变相怪杰 该用户已被删除
20#
发表于 2015-6-21 23:51:51 | 只看该作者
是一种使用者不需花费很多时间学习的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 07:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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