仓酷云

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

[学习教程] JAVA网页编程之有关FileUpload组件的利用和调试的履历...

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

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

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

x
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。
在经由过程利用FileUpload组件上传的过程当中,经由过程本人的调试,总结以下:1)利用之前的筹办,我用的是commons-fileupload-1.1-dev.jar和commons-io-1.1-dev.jar。注释一下:只管有的材料注释是commons-fileupload-1.0-beta.jar和commons-beanutils.jar,经由过程调试的了局显现并非必要commons-beanutils.jar文件,而是因为在parseRequest(request)的类有关承继于DiskFileItem类。而他有privateorg.apache.commons.io.output.DeferredFileOutputStreamdfos。如许的就必需利用到commons-io-1.1-dev.jar。因而必要导进该包。不然就出classNotFound:.DeferredFileOutputStream的毛病。

2)因为触及文件,就触及到文件体系。但是在java或使用服务器中关于文件体系的会见,就有必定的平安战略。必要将以下权限增加到您使用程序服务器的平安战略文件中:permissionjava.io.FilePermission"<<ALLFILES>>","read,write,delete";详细是增加到..eaweblogic81erverlibweblogic.policy中的.不然会大概出以下非常毛病:org.apache.commons.fileupload.FileUploadException:java.lang.reflect.InvocationTargetExceptionatorg.apache.commons.fileupload.FileUpload.createItem(FileUpload.java:615)atorg.apache.commons.fileupload.FileUpload.parseRequest(FileUpload.java:474)atorg.apache.commons.fileupload.FileUpload.parseRequest(FileUpload.java:355)....

3)关于分歧的服务器,在调试的过程当中会出各类纷歧样的了局。这个与详细的服务器有关。

4)因为FileUpload在不休的更新版本,它的良多办法已不保举利用了(这与该组件的不休的改善有关)。经由过程对最新的匡助文档和网上的材料写了一个尺度的程序以下:fileUpload文件:importjava.io.IOException;importjava.io.PrintWriter;

importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;

importorg.apache.commons.fileupload.*;importjava.util.*;importjava.util.regex.*;importjava.io.*;importorg.apache.commons.fileupload.servlet.*;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;

/**创立日期2005-4-10**TODO要变动今生成的文件的模板,请转至*窗口-首选项-Java-代码款式-代码模板*/

/***@authorgaolong1**TODO要变动今生成的范例正文的模板,请转至*窗口-首选项-Java-代码款式-代码模板*/publicclassFileUploadextendsHttpServlet{

/***Destructionoftheservlet.<br>*/privateStringuploadPath="D:addnetFile";//用于寄存上传文件的目次privateFiletempPath=newFile("D:addnetFile        mp");//用于寄存一时文件的目次publicvoiddestroy(){super.destroy();//Justputs"destroy"stringinlog//Putyourcodehere}

/***ThedoPostmethodoftheservlet.<br>**Thismethodiscalledwhenaformhasitstagvaluemethodequalstopost.**@paramrequesttherequestsendbytheclienttotheserver*@paramresponsetheresponsesendbytheservertotheclient*@throwsServletExceptionifanerroroccurred*@throwsIOExceptionifanerroroccurred*/publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{res.setContentType("text/html;charset=GB2312");PrintWriterout=res.getWriter();System.out.println(req.getContentLength());System.out.println(req.getContentType());DiskFileItemFactoryfactory=newDiskFileItemFactory();//maximumsizethatwillbestoredinmemoryfactory.setSizeThreshold(4096);//thelocationforsavingdatathatislargerthangetSizeThreshold()factory.setRepository(newFile("d:FileaddnetFile        emp"));

ServletFileUploadupload=newServletFileUpload(factory);//maximumsizebeforeaFileUploadExceptionwillbethrownupload.setSizeMax(1000000);try{ListfileItems=upload.parseRequest(req);//assumeweknowtherearetwofiles.Thefirstfileisasmall//textfile,thesecondisunknownandiswrittentoafileon//theserverIteratoriter=fileItems.iterator();

//正则婚配,过滤路径取文件名StringregExp=".+\(.+)$";

//过滤失落的文件范例String[]errorType={".exe",".com",".cgi",".asp"};Patternp=Pattern.compile(regExp);while(iter.hasNext()){FileItemitem=(FileItem)iter.next();//疏忽其他不是文件域的一切表单信息if(!item.isFormField()){Stringname=item.getName();longsize=item.getSize();if((name==null||name.equals(""))&&size==0)continue;Matcherm=p.matcher(name);booleanresult=m.find();if(result){for(inttemp=0;temp<errorType.length;temp++){if(m.group(1).endsWith(errorType[temp])){thrownewIOException(name+":wrongtype");}}try{

//保留上传的文件到指定的目次

//鄙人文中上传文件至数据库时,将对这里改写item.write(newFile("d:"+m.group(1)));

out.print(name+""+size+"<br>");}catch(Exceptione){out.println(e);}

}else{thrownewIOException("failtoupload");}}}}catch(IOExceptione){out.println(e);}catch(FileUploadExceptione){out.println(e);}

//保留上传的文件到指定的目次

//鄙人文中上传文件至数据库时,将对这里改写

}

/***Initializationoftheservlet.<br>**@throwsServletExceptionifanerroroccure*/publicvoidinit()throwsServletException{//Putyourcodehere}

}对应的哀求文件:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><title>index.html</title>

<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"><metahttp-equiv="description"content="thisismypage">

<!--<linkrel="stylesheet"type="text/CSS"href="./styles.css">-->

</head>

<body><formaction="./servlet/FileUpload"method="post"enctype="multipart/form-data"name="form1"><inputtype="file"name="file"><inputtype="submit"name="Submit"value="upload"></form><formaction="./servlet/HelloWord"method="post"><inputtype="submit"/></form><formname="uploadform"method="POST"action="./servlet/FileUpload"ENCTYPE="multipart/form-data">

<tableborder="1"width="450"cellpadding="4"cellspacing="2"bordercolor="#9BD7FF">

<tr><tdwidth="100%"colspan="2">

文件1:<inputname="x"size="40"type="file">

</td></tr>

<tr><tdwidth="100%"colspan="2">

文件2:<inputname="y"size="40"type="file">

</td></tr>

<tr><tdwidth="100%"colspan="2">

文件3:<inputname="z"size="40"type="file">

</td></tr>

</table>

<br/><br/>

<table>

<tr><tdalign="center"><inputname="upload"type="submit"value="入手下手上传"/></td></tr>

</table>

</form>

</body></html>注:该代码由部分来自网上!

java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-20 16:00:23 来自手机 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
admin 该用户已被删除
板凳
发表于 2015-1-27 05:21:01 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
活着的死人 该用户已被删除
地板
发表于 2015-1-27 09:10:51 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
若天明 该用户已被删除
5#
发表于 2015-2-5 03:59:35 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
冷月葬花魂 该用户已被删除
6#
发表于 2015-2-10 11:05:04 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
小妖女 该用户已被删除
7#
发表于 2015-2-11 02:14:17 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
若相依 该用户已被删除
8#
发表于 2015-3-1 19:32:40 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
爱飞 该用户已被删除
9#
发表于 2015-3-10 22:32:14 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
再现理想 该用户已被删除
10#
发表于 2015-3-17 11:10:48 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
再现理想 该用户已被删除
11#
发表于 2015-3-17 11:10:47 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
再现理想 该用户已被删除
12#
发表于 2015-3-17 11:10:53 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
精灵巫婆 该用户已被删除
13#
发表于 2015-3-17 16:09:24 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
透明 该用户已被删除
14#
发表于 2015-3-24 10:49:17 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
深爱那片海 该用户已被删除
15#
发表于 2015-3-24 12:09:17 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
愤怒的大鸟 该用户已被删除
16#
发表于 2015-3-28 06:05:35 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
谁可相欹 该用户已被删除
17#
发表于 2015-4-1 17:51:36 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
金色的骷髅 该用户已被删除
18#
发表于 2015-4-1 21:34:09 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
再见西城 该用户已被删除
19#
发表于 2015-4-3 19:25:16 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
灵魂腐蚀 该用户已被删除
20#
发表于 2015-4-4 20:55:13 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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