当前位置:  技术问答>java相关

技术大讨论!!为JSP开发上传组件!!!!可是我原创作品哦,希望能对一些人有些帮助,也希望高手指点

    来源: 互联网  发布时间:2015-02-22

    本文导语:  JSP上传组件的编写 JSP的资料在国内真是太少了,关于JSP上传组件的编写资料更是……。在实际的开发工作中,我遇到了用JSP做上传组件的工作,因为这方面资料少,我在好几个编程网站发了帖子,希望有人能帮帮我...

JSP上传组件的编写
JSP的资料在国内真是太少了,关于JSP上传组件的编写资料更是……。在实际的开发工作中,我遇到了用JSP做上传组件的工作,因为这方面资料少,我在好几个编程网站发了帖子,希望有人能帮帮我,可结果不可想象(给的一些代码根本就不能用,明显的语法错误就是一大堆,就不用提我在排错上面花了多少时间了)。最后还是决定自己重写一个上传组件,这篇文章就从基础实现上讨论这种组件的编写流程,当然,说是基础可也要有些JAVA语言的基础。好了,叫我们一起讨论实现的具体过程和方法。关于JavaBeans和JavaServlet的编写方法请参考相关Java类书籍。
一开始我们做JSP组件要先确定是用什么方式JSP支持两种方式为它开发,一种是JavaBeans,另一种是JavaServlet,当然这两种方式都是可以的,各有各的好处。在这里我们用JavaServlet讨论一下,用JavaBeans方法也是一样的。
在用JavaServlet开发后台处理之前,我们要先说一下前台(就是HTML页面部分)要注意的地方就是在Form中提交的方式一定要是POST且ENCTYPE类型为“multipart/form-data”例如HTML语句要这样写:。当然上传时HTML中的文件选择要用。这样你所选择的文件就会以信息数据流的方式提交到后台处理。
在后台处理的JavaServlet中,最主要的就是这句话:
DataInputStream in = new DataInputStream(request.getInputStream());
这句就是把前台传来的数据流付值给Java流对像DataInputStream。写回时用:
FileOutputStream fileOut= new FileOutputStream("C:\test.txt");
这种方式声明一个另一个Java流类FileOutputStream对像用来写入目标文件。写入时程序段为:    try{
        int c;
        while ((c = in.read()) != -1)
           fileOut.write(c);
        in.close();
        fileOut.close();
    }catch(IOException e){
      e.printStackTrace();
   }
这样写入文件后你会发现写入的文件比源来的文件大一些,不一样为什么呢?主要是因为在这个数据流中不仅仅有上传文件的内容,而且有一部分HTTP头信息,上传一个文本文件就可以看明白了,文件头有一部分,文件尾有一部分,那怎么去掉或是怎么在里面取出必要的信息呢?现在大部分组件都用到了把数据流读到一个和数据流长度一样大的一个byte数组中,再把数组转成字符串,然后用大量字符串操作函数来实现的。主要用到了:
String dataHeader = new String(m_binArray, start, (end - start) + 1);(因为Java不支持指针所以要用新建字符)。
String filename = dataHeader.substring(dataHeader.indexOf("name="));截取成新的字符串。
关于文件与字符串的具体的使用方法请参考相关Java类书籍。
当最后截取完了后用fileOut.write(file.getBytes(),0,file.length());这个方法实现对文件的写入操作。以上就是为JSP编写上传组件的流程和方法。


|
to CDSoftwareWj(95927):
不错不错,很好很好!
全力支持你!
我还没写过,给了我不少思路。

to lijunjoy(lijun):
看你的话,感觉你好象,...,好像很牛(我怎么连猜测你很牛的信心也没啊?呵呵)!
你写个出来看看,俺很笨的,也跟你学学!ok?
希望你是自己写的,不要从网上随便找个一改就成你的了?

关键时候,怎能客气?


|
不错,我也正想写呢,谢了

|
祝你好运!

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于用JNDI,CONTEXT.LOOKUP,去连DATABASE的技术,哪位仁兄给俺指点指点,或哪里有资料看看?先谢了
  • linux服务器系统性能瓶颈,研究集群技术的朋友来指点下
  • 请问何为xsl?我觉得新版的论坛的xml+xsl的技术很好,想学习,看些什么书呢?请指点!
  • 有没有使用过Linux下线程池技术的高手,请为我指点迷津!!!
  • 大家评论一下这两本书:《java入门经典》、《java完全探索》好吗?我正在看《核心技术卷I》,怎么觉得写的很零碎呀??请看过这些数的兄弟多多指点一下,小弟多谢了!!? //bow bow
  • 关于在LINUX下开发有上千个Client连接的Server的技术. 请大家讨论和指点
  • VLAN(虚拟局域网)技术工作原理介绍
  • shtm是什么技术,jsp又是什么技术?
  • Oracle 10g和Oracle 11g网格技术介绍
  • 163.com的聊天室是使用推技术吗?还是别的技术?  
  • ​docker之轻量虚拟化技术——docker实战分享
  • 请问COM技术和WEB技术有什么区别和联系?在线等
  • 云计算之Docker容器技术如何落地?
  • linux中有哪些技术可以实现包过滤、内容过滤的技术?
  • UIO(linux Userspace I/O子系统)用户空间设备驱动I/O技术介绍
  • 严正抗议:为什么微软技术有一个专区,而Java技术只有一个板块???
  • 什么是docker?Docker技术详细介绍
  • <java技术手册>与<java实例技术手册>这两本书怎么样?
  • 将要改变IT世界的的docker技术是什么?
  • 创立一个linux技术群,广招天下朋友,一起研究linux技术
  • Docker技术使用场景主要特性等相关资源整理
  • 在linux下 和windows对应的dll 的技术是什么啊? 也就是说;在linux下进行函数和类的封装 使用什么技术啊?
  • 跳槽是个技术活:我的两次跳槽经历
  • 请问<java核心技术I:基础技术>的光盘内容哪有下载?里面有个corejava的类库不知道在哪找
  • Oracle 数据库(oracle Database)性能调优技术详解
  • 《Red Flag Server 4 安全技术白皮书》你读过吗?问什么问题能体现我们的技术水平呢?呵呵。
  • ​什么是Docker以及docker的 诞生技术演进
  • 有线网络技术?无线网络技术?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3