|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
再说第三点:我并没有提到服务器也要整合,然后是IDE,一个好的IDE能够200%提高开发的速度,就说图形方面:你是经过简单托拽和点击就能实现功能好那。
1、能够完成一个或多个文件的上传,也能够吸收一般的form表双数据。
2、复杂测试了一下,对内存的占用仍是能够忍耐的,并且速率也能够。偶然会招致内存利用的上升并且不会下落,长工夫后是不是会降上去还没有测试。
关头点:
1、提交文件上传的form的method属性为post,enctype属性为multipart/form-data。
2、input标签必要有name属性,不然取不到内容。
看看servlet的完成,正文已很具体了:
Java代码- packageorg.xxm;
- importjava.io.BufferedInputStream;
- importjava.io.BufferedOutputStream;
- importjava.io.File;
- importjava.io.FileOutputStream;
- importjava.io.IOException;
- importjava.util.Iterator;
- importjava.util.List;
- importjavax.servlet.http.HttpServlet;
- importjavax.servlet.http.HttpServletRequest;
- importjavax.servlet.http.HttpServletResponse;
- importdareway.org.apache.commons.fileupload.FileItem;
- importdareway.org.apache.commons.fileupload.FileUploadBase.SizeLimitExceededException;
- importdareway.org.apache.commons.fileupload.disk.DiskFileItemFactory;
- importdareway.org.apache.commons.fileupload.servlet.ServletFileUpload;
- importdareway.org.apache.commons.fileupload.util.Streams;
- /**
- *@authorxuxiaoming
- *2009-03-19
- *以tomcat6.0为服务器
- */
- publicclassUploadFileServletextendsHttpServlet{
- publicvoiddoGet(HttpServletRequestreq,
- HttpServletResponseres){
- return;
- }
-
- publicvoiddoPost(HttpServletRequestreq,
- HttpServletResponseres)throwsIOException{
- /**
- *form中的enctype必需是multipart/...
- *组件供应办法检测form表单的enctype属性
- *在isMultipartContent办法中同时检测了是不是是post提交
- *假如不是post提交则前往false
- */
- if(ServletFileUpload.isMultipartContent(req)){
- req.setCharacterEncoding("utf-8");
- DiskFileItemFactoryfactory=newDiskFileItemFactory();
- /**
- *一时文件存储路径要实在存在
- */
- factory.setRepository(newFile("../webapps/fileupload/tmp"));
- //内存最年夜占用
- factory.setSizeThreshold(1024000);
- ServletFileUploadsfu=newServletFileUpload(factory);
- //单个文件最年夜值byte
- sfu.setFileSizeMax(102400000);
- //一切上传文件的总和最年夜值byte
- sfu.setSizeMax(204800000);
- Listitems=null;
- try{
- items=sfu.parseRequest(req);
- }catch(SizeLimitExceededExceptione){
- System.out.println("sizelimitexception!");
- }catch(Exceptione){
- e.printStackTrace();
- }
-
- Iteratoriter=items==null?null:items.iterator();
- while(iter!=null&&iter.hasNext()){
- FileItemitem=(FileItem)iter.next();
- //复杂的表单域
- if(item.isFormField()){
- System.out.print("formfield:");
- System.out.print(item.getFieldName()+"");
- System.out.print(item.getString());
- }
- //文件域
- elseif(!item.isFormField()){
- System.out.println("clientname:"+item.getName());
- StringfileName=item.getName().substring(item.getName().lastIndexOf(""));
- BufferedInputStreamin=newBufferedInputStream(item.getInputStream());
- //文件存储在工程的upload目次下,这个目次也得存在
- BufferedOutputStreamout=newBufferedOutputStream(
- newFileOutputStream(newFile("../webapps/fileupload/upload/"+fileName)));
- Streams.copy(in,out,true);
- }
- }
- }else{
- System.out.println("enctypeerror!");
- }
- }
- }
复制代码 由于利用tomcat做得服务器,以是内里的路径都是以tomcat为基本来写得,详细情形必要修正。
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发 |
|