仓酷云

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

[学习教程] JAVA网站制作之关于JSP Commons FileUpload 组件上传文...

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

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

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

x
net程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net比。java程序员都是代码完成的,所以java程序员常戏称.net程序员是操作员,呵呵。js|上传大概好工具就是必要渐渐地往发明和总结的.
之前我写的JSP体系都是接纳JspSmartUpload组件来办理的.
头几天客户赞扬说,上传年夜文件的时分,扫瞄器无反响,乃至会溃散.叫我协助办理一下并加上上传进度暗示(这个临时不表,有必要的可加我MSN:info@hkeb.com).
当即google,baidu一下,才知JSpSmartUpload合用于对照小文件的时分,而假如上传年夜文件的时分还得数commonsFileUpload组件.
在网上翻阅了有数篇关于这个东东的资讯.基础上每篇资讯都迥然不同.这也难怪,网上的工具都是转来转往的.
上传文件是办理了,可是表单上的其他文本域参数却不晓得怎样吸收.直查得我头破血流,费了一二周都没办理.
由于全体的文章都没有提到怎样办理表单的其他文本数据.
直到明天才查得一个对照可行的举措.
1:假如要传参,数据量不是太年夜的话,能够用get的带参办法.即formaction里的upload.jsp前面跟上参数.
比方:upload.jsp?id=1&bid=2&uid=somebody
表单的范例稳定.如许在upload.jsp处置上传文件数据之前能够用request.getParameter("id")来猎取参数.
这是一种在传参的数据量不年夜的情形之下对照可行的办法.
2:假如的确没有举措,必需跟文件域一同提交到上传组件里处置.据网友所说.能够接纳以下代码处置.
publicMultipartHttpServletRequestresolveMultipart(HttpServletRequestrequest)throwsMultipartException{
DiskFileUploadfileUpload=this.fileUpload;
Stringenc=determineEncoding(request);

//useprototypeFileUploadinstanceiftherequestspecifies
//itsownencodingthatdoesnotmatchthedefaultencoding
if(!enc.equals(this.defaultEncoding)){
fileUpload=newDiskFileUpload();
fileUpload.setSizeMax(this.fileUpload.getSizeMax());
fileUpload.setSizeThreshold(this.fileUpload.getSizeThreshold());
fileUpload.setRepositoryPath(this.fileUpload.getRepositoryPath());
fileUpload.setHeaderEncoding(enc);
}

try{
ListfileItems=fileUpload.parseRequest(request);
Mapparameters=newHashMap();
MapmultipartFiles=newHashMap();
for(Iteratorit=fileItems.iterator();it.hasNext();){
FileItemfileItem=(FileItem)it.next();
if(fileItem.isFormField()){
Stringvalue=null;
try{
value=fileItem.getString(enc);
}
catch(UnsupportedEncodingExceptionex){
logger.warn("Couldnotdecodemultipartitem"+fileItem.getFieldName()+
"withencoding"+enc+":usingplatformdefault");
value=fileItem.getString();
}
String[]curParam=(String[])parameters.get(fileItem.getFieldName());
if(curParam==null){
//simpleformfield
parameters.put(fileItem.getFieldName(),newString[]{value});
}
else{
//arrayofsimpleformfields
String[]newParam=StringUtils.addStringToArray(curParam,value);
parameters.put(fileItem.getFieldName(),newParam);
}
}
else{
//multipartfilefield
CommonsMultipartFilefile=newCommonsMultipartFile(fileItem);
multipartFiles.put(file.getName(),file);
if(logger.isDebugEnabled()){
logger.debug("Foundmultipartfile["+file.getName()+"]ofsize"+file.getSize()+
"byteswithoriginalfilename["+file.getOriginalFilename()+"],stored"+
file.getStorageDescription());
}
}
}
/*****注重parameters就是一般的text之类的字段的值*****/
returnnewDefaultMultipartHttpServletRequest(request,multipartFiles,parameters);
}
catch(FileUploadBase.SizeLimitExceededExceptionex){
thrownewMaxUploadSizeExceededException(this.fileUpload.getSizeMax(),ex);
}
catch(FileUploadExceptionex){
thrownewMultipartException("Couldnotparsemultipartrequest",ex);
}
}

利用办法是:
MultipartHttpServletRequestmultipartRequest=(MultipartHttpServletRequest)request;
然后就可以一般读取参数:
multipartRequest.getParameter("xxx");
行不可,能不克不及猎取到,我没有往考证,有考证乐成的告诉小弟一声,不堪感谢.

而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!
老尸 该用户已被删除
沙发
发表于 2015-1-19 10:10:42 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-24 12:07:47 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
小女巫 该用户已被删除
地板
发表于 2015-2-1 10:15:00 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
深爱那片海 该用户已被删除
5#
发表于 2015-2-7 03:09:03 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
6#
发表于 2015-2-20 00:48:03 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
金色的骷髅 该用户已被删除
7#
发表于 2015-3-6 15:54:19 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
爱飞 该用户已被删除
8#
发表于 2015-3-11 03:51:33 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
柔情似水 该用户已被删除
9#
发表于 2015-3-12 02:10:34 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
谁可相欹 该用户已被删除
10#
发表于 2015-3-19 17:26:53 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
冷月葬花魂 该用户已被删除
11#
发表于 2015-4-1 03:09:25 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
兰色精灵 该用户已被删除
12#
发表于 2015-4-4 09:19:06 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
飘飘悠悠 该用户已被删除
13#
发表于 2015-4-13 00:20:57 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
不帅 该用户已被删除
14#
发表于 2015-4-17 21:32:31 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
小妖女 该用户已被删除
15#
发表于 2015-4-18 03:16:14 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
再见西城 该用户已被删除
16#
发表于 2015-4-20 11:05:49 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
山那边是海 该用户已被删除
17#
发表于 2015-4-26 20:09:40 | 只看该作者
是一种使用者不需花费很多时间学习的语言
第二个灵魂 该用户已被删除
18#
发表于 2015-4-28 03:49:22 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
莫相离 该用户已被删除
19#
发表于 2015-4-29 06:59:25 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
蒙在股里 该用户已被删除
20#
发表于 2015-5-6 22:11:54 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-27 23:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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