仓酷云

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

[学习教程] JAVA网页设计jspSmartUpload上传组件

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
#
发表于 2015-1-18 11:34:29 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
前些天,在CSDN上看到了一个消息,说是ASP.NETAJAX成功在Linux上运行,这一点对我触动很大,而且引发了我许多感叹,所以想写出来分享一下。js|上传1、安装篇  jspSmartUpload是由www.jspsmart.com网站开辟的一个可无偿使用的全功效的文件上传下载组件,适于嵌进实行上传下载操纵的JSP文件中。该组件有以下几个特性:
  1、利用复杂。在JSP文件中仅仅誊写三五行JAVA代码就能够弄定文件的上传或下载,便利。
  2、能全程把持上传。使用jspSmartUpload组件供应的对象及其操纵办法,能够取得全体上传文件的信息(包含文件名,巨细,范例,扩大名,文件数据等),便利存取。
  3、能对上传的文件在巨细、范例等方面做出限定。云云能够滤失落不切合请求的文件。
  4、下载天真。仅写两行代码,就可以把Web服务器酿成文件服务器。不论文件在Web服务器的目次下或在别的任何目次下,都能够使用jspSmartUpload举行下载。
  5、能将文件上传到数据库中,也能将数据库中的数据下载上去。这类功效针对的是MYSQL数据库,由于不具有通用性,以是本文禁绝备举例先容这类用法。
  jspSmartUpload组件能够从www.jspsmart.com网站上自在下载,紧缩包的名字是jspSmartUpload.zip。下载后,用WinZip或WinRAR将其解压到Tomcat的webapps目次下(本文以Tomcat服务器为例举行先容)。解压后,将webapps/jspsmartupload目次下的子目次Web-inf名字改成全年夜写的WEB-INF,如许一改jspSmartUpload类才干利用。由于Tomcat对文件名巨细写敏感,它请求Web使用程序相干的类地点目次为WEB-INF,且必需是年夜写。接侧重新启动Tomcat,如许就能够在JSP文件中利用jspSmartUpload组件了。
  注重,按上述办法安装后,只要webapps/jspsmartupload目次下的程序可使用jspSmartUpload组件,假如想让Tomcat服务器的一切Web使用程序都能用它,必需做以下事情:
1.进进命令行形态,将目次切换到Tomcat的webapps/jspsmartupload/WEB-INF目次下。
2.运转JAR打包命令:jarcvfjspSmartUpload.jarcom
(也能够翻开资本办理器,切换到以后目次,用WinZip将com目次下的一切文件紧缩成jspSmartUpload.zip,然后将jspSmartUpload.zip换名为jspSmartUpload.jar文件便可。)
3.将jspSmartUpload.jar拷贝到Tomcat的shared/lib目次下。
2、相干类申明篇
㈠File类
  这个类包装了一个上传文件的一切信息。经由过程它,能够失掉上传文件的文件名、文件巨细、扩大名、文件数据等信息。
  File类次要供应以下办法:
1、saveAs感化:将文件换名另存。
原型:
publicvoidsaveAs(java.lang.StringdestFilePathName)

publicvoidsaveAs(java.lang.StringdestFilePathName,intoptionSaveAs)
个中,destFilePathName是另存的文件名,optionSaveAs是另存的选项,该选项有三个值,分离是SAVEAS_PHYSICAL,SAVEAS_VIRTUAL,SAVEAS_AUTO。SAVEAS_PHYSICAL标明以操纵体系的根目次为文件根目次另存文件,SAVEAS_VIRTUAL标明以Web使用程序的根目次为文件根目次另存文件,SAVEAS_AUTO则暗示让组件决意,当Web使用程序的根目次存在另存文件的目次时,它会选择SAVEAS_VIRTUAL,不然会选择SAVEAS_PHYSICAL。
比方,saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)实行后若Web服务器安装在C盘,则另存的文件名实践是c:uploadsample.zip。而saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)实行后若Web使用程序的根目次是webapps/jspsmartupload,则另存的文件名实践是webapps/jspsmartupload/upload/sample.zip。saveAs("/upload/sample.zip",SAVEAS_AUTO)实行时若Web使用程序根目次下存在upload目次,则其效果同saveAs("/upload/sample.zip",SAVEAS_VIRTUAL),不然同saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)。
倡议:关于Web程序的开辟来讲,最好利用SAVEAS_VIRTUAL,以便移植。
2、isMissing
感化:这个办法用于判别用户是不是选择了文件,也即对应的表单项是不是有值。选择了文件时,它前往false。未选文件时,它前往true。
原型:publicbooleanisMissing()
3、getFieldName
感化:取HTML表单中对应于此上传文件的表单项的名字。
原型:publicStringgetFieldName()
4、getFileName
感化:取文件名(不含目次信息)
原型:publicStringgetFileName()
5、getFilePathName
感化:取文件全名(带目次)
原型:publicStringgetFilePathName
6、getFileExt
感化:取文件扩大名(后缀)
原型:publicStringgetFileExt()
7、getSize
感化:取文件长度(以字节计)
原型:publicintgetSize()
8、getBinaryData
感化:取文件数据中指定位移处的一个字节,用于检测文件等处置。
原型:publicbytegetBinaryData(intindex)。个中,index暗示位移,其值在0到getSize()-1之间。
㈡Files类
  这个类暗示一切上传文件的汇合,经由过程它能够失掉上传文件的数量、巨细等信息。有以下办法:
1、getCount
感化:获得上传文件的数量。
原型:publicintgetCount()
2、getFile
感化:获得指定位移处的文件对象File(这是com.jspsmart.upload.File,不是java.io.File,注重辨别)。
原型:publicFilegetFile(intindex)。个中,index为指定位移,其值在0到getCount()-1之间。
3、getSize
感化:获得上传文件的总长度,可用于限定一次性上传的数据量巨细。
原型:publiclonggetSize()
4、getCollection
感化:将一切上传文件对象以Collection的情势前往,以便别的使用程序援用,扫瞄上传文件信息。
原型:publicCollectiongetCollection()
5、getEnumeration
感化:将一切上传文件对象以Enumeration(列举)的情势前往,以便别的使用程序扫瞄上传文件信息。
原型:publicEnumerationgetEnumeration()
㈢Request类
  这个类的功效同等于JSP内置的对象request。只以是供应这个类,是由于关于文件上传表单,经由过程request对象没法取得表单项的值,必需经由过程jspSmartUpload组件供应的Request对象来猎取。该类供应以下办法:
1、getParameter
  感化:猎取指定参数之值。当参数不存在时,前往值为null。
  原型:publicStringgetParameter(Stringname)。个中,name为参数的名字。
  2、getParameterValues
  感化:当一个参数能够有多个值时,用此办法来取其值。它前往的是一个字符串数组。当参数不存在时,前往值为null。
  原型:publicString[]getParameterValues(Stringname)。个中,name为参数的名字。
  3、getParameterNames
  感化:获得Request对象中一切参数的名字,用于遍历一切参数。它前往的是一个列举型的对象。
  原型:publicEnumerationgetParameterNames()
  ㈣SmartUpload类这个类完成上传下载事情。
  A.上传与下载共用的办法:
  只要一个:initialize。
  感化:实行上传下载的初始化事情,必需第一个实行。
  原型:有多个,次要利用上面这个:
publicfinalvoidinitialize(javax.servlet.jsp.PageContextpageContext)
  个中,pageContext为JSP页面内置对象(页面高低文)。
  B.上传文件利用的办法:
  1、upload
  感化:上传文件数据。关于上传操纵,第一步实行initialize办法,第二步就要实行这个办法。
  原型:publicvoidupload()
  2、save
  感化:将全体上传文件保留到指定目次下,并前往保留的文件个数。
  原型:publicintsave(StringdestPathName)和publicintsave(StringdestPathName,intoption)
  个中,destPathName为文件保留目次,option为保留选项,它有三个值,分离是SAVE_PHYSICAL,SAVE_VIRTUAL和SAVE_AUTO。(同File类的saveAs办法的选项之值相似)SAVE_PHYSICAL唆使组件将文件保留到以操纵体系根目次为文件根目次的目次下,SAVE_VIRTUAL唆使组件将文件保留到以Web使用程序根目次为文件根目次的目次下,而SAVE_AUTO则暗示由组件主动选择。
  注:save(destPathName)感化同等于save(destPathName,SAVE_AUTO)。
  3、getSize
  感化:取上传文件数据的总长度
  原型:publicintgetSize()
  4、getFiles
  感化:取全体上传文件,以Files对象情势前往,能够使用Files类的操纵办法来取得上传文件的数量等信息。
  原型:publicFilesgetFiles()
  5、getRequest
  感化:获得Request对象,以便由此对象取得上传表单参数之值。
  原型:publicRequestgetRequest()
  6、setAllowedFilesList
  感化:设定同意上传带有指定扩大名的文件,当上传过程当中有文件名不同意时,组件将抛出非常。
  原型:publicvoidsetAllowedFilesList(StringallowedFilesList)
  个中,allowedFilesList为同意上传的文件扩大名列表,各个扩大名之间以逗号分开。假如想同意上传那些没有扩大名的文件,能够用两个逗号暗示。比方:setAllowedFilesList("doc,txt,,")将同意上传带doc和txt扩大名的文件和没有扩大名的文件。
  7、setDeniedFilesList
  感化:用于限定上传那些带有指定扩大名的文件。如有文件扩大名被限定,则上传时组件将抛出非常。
  原型:publicvoidsetDeniedFilesList(StringdeniedFilesList)
  个中,deniedFilesList为克制上传的文件扩大名列表,各个扩大名之间以逗号分开。假如想克制上传那些没有扩大名的文件,能够用两个逗号来暗示。比方:setDeniedFilesList("exe,bat,,")将克制上传带exe和bat扩大名的文件和没有扩大名的文件。
  8、setMaxFileSize
  感化:设定每一个文件同意上传的最年夜长度。
  原型:publicvoidsetMaxFileSize(longmaxFileSize)
  个中,maxFileSize为为每一个文件同意上传的最年夜长度,当文件超越此长度时,将不被上传。
  9、setTotalMaxFileSize
  感化:设定同意上传的文件的总长度,用于限定一次性上传的数据量巨细。
  原型:publicvoidsetTotalMaxFileSize(longtotalMaxFileSize)
  个中,totalMaxFileSize为同意上传的文件的总长度。


[1][2]下一页


什么时候上述的三种开发工具能和三为一,什么时候java的竞争力才更强,才有机会拉拢更多的程序员投入到对java的开发上,因为到时的开发工具将会比.net的更简单。还有一点也很关键,什么时候java推出的jsf能成为真正意义上的标准。
因胸联盟 该用户已被删除
19#
发表于 2015-4-23 11:44:18 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
小女巫 该用户已被删除
18#
发表于 2015-4-15 11:01:01 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
17#
发表于 2015-4-14 19:16:39 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
飘灵儿 该用户已被删除
16#
发表于 2015-4-12 12:12:52 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
乐观 该用户已被删除
15#
发表于 2015-4-6 23:08:42 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
爱飞 该用户已被删除
14#
发表于 2015-4-1 08:52:12 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
小魔女 该用户已被删除
13#
发表于 2015-3-27 06:10:56 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
金色的骷髅 该用户已被删除
12#
发表于 2015-3-24 22:22:23 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
分手快乐 该用户已被删除
11#
发表于 2015-3-19 06:51:47 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
活着的死人 该用户已被删除
10#
发表于 2015-3-11 18:27:25 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
兰色精灵 该用户已被删除
9#
发表于 2015-3-10 17:09:41 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
若天明 该用户已被删除
8#
发表于 2015-3-1 22:00:16 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
莫相离 该用户已被删除
7#
发表于 2015-2-27 22:31:42 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
老尸 该用户已被删除
6#
发表于 2015-2-27 19:10:30 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
只想知道 该用户已被删除
5#
发表于 2015-2-26 10:36:59 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
admin 该用户已被删除
地板
发表于 2015-2-22 11:58:33 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
深爱那片海 该用户已被删除
板凳
发表于 2015-2-2 16:52:34 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
透明 该用户已被删除
沙发
发表于 2015-1-30 14:58:49 | 只看该作者
是一种使用者不需花费很多时间学习的语言
飘飘悠悠 该用户已被删除
楼主
发表于 2015-1-21 10:23:14 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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