计算机科学与工程系天津理工大学计算机科学与工程学院实验报告2019至2019学年第2学期课程名称J2EE程序设计学号学生姓名年级专业计算机科学与技术课程代码0662813实验地点实验时间主讲教师辅导教师计算机科学与工程系2实验(一)实验名称用户登录处理Web程序软件环境STS、MySQL、Maven硬件环境PC机实验内容(应包括实验题目、实验要求、实验任务等)二人一组用所学知识开发一个javaweb存储系统,支持多个不同用户上传,下载,删除文件。1、可以支持多个用户共同操作,主要功能包括文件上传、下载、删除、创建和删除文件夹。2、用户登录系统后能够看到之前建立的文件夹,打开文件夹能够看到子文件夹和文件。3、上传文件时可以让用户指定文件夹。4、用户可以在任何文件夹下创建新的文件夹,也能删除已有文件夹。5、用户可以删除文件,也可以删除文件夹,删除文件或文件夹时需提示用户确认是否删除。当删除文件夹时,文件夹下的所有子文件夹和文件一并随之删除。6、(选做)能为每位用户指定磁盘容量配额,即每位用户可以有一个磁盘容量上限值。属于这个用户的所有文件夹下的所有文件的大小总和不能超过这个限值。当用户上传文件时,总的文件大小超过了就不能上传了。而且最好能在这个配额快达到时提醒用户注意。实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)1.文件上传页面和消息提示页面%@pagelanguage=javapageEncoding=UTF-8%!DOCTYPEHTMLhtmlheadtitle文件上传/title/head计算机科学与工程系3bodyformaction=${pageContext.request.contextPath}/servlet/UploadHandleServletenctype=multipart/form-datamethod=post上传用户:inputtype=textname=usernamebr/上传文件1:inputtype=filename=file1br/上传文件2:inputtype=filename=file2br/inputtype=submitvalue=提交/form/body/html%@pagelanguage=javapageEncoding=UTF-8%!DOCTYPEHTMLhtmlheadtitle消息提示/title/headbody${message}/body/html2.处理文件上传packageme.gacl.web.controller;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;publicclassUploadHandleServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//保存目录StringsavePath=this.getServletContext().getRealPath(D:\shangchuan\upload);计算机科学与工程系4Filefile=newFile(savePath);//判断上传文件的保存目录是否存在if(!file.exists()&&!file.isDirectory()){System.out.println(savePath+目录不存在,需要创建);//创建目录file.mkdir();}//消息提示Stringmessage=;try{DiskFileItemFactoryfactory=newDiskFileItemFactory();ServletFileUploadupload=newServletFileUpload(factory);upload.setHeaderEncoding(UTF-8);if(!ServletFileUpload.isMultipartContent(request)){return;}ListFileItemlist=upload.parseRequest(request);for(FileItemitem:list){if(item.isFormField()){Stringname=item.getFieldName();Stringvalue=item.getString(UTF-8);//value=newString(value.getBytes(iso8859-1),UTF-8);System.out.println(name+=+value);}else{Stringfilename=item.getName();System.out.println(filename);if(filename==null||filename.trim().equals()){continue;}filename=filename.substring(filename.lastIndexOf(\\)+1);//获取item中的上传文件的输入流InputStreamin=item.getInputStream();//创建一个文件输出流FileOutputStreamout=newFileOutputStream(savePath+\\+filename);//创建一个缓冲区bytebuffer[]=newbyte[1024];intlen=0;while((len=in.read(buffer))0){out.write(buffer,0,len);}//关闭输入流in.close();//关闭输出流out.close();计算机科学与工程系5//删除处理文件上传时生成的临时文件item.delete();message=文件上传成功!;}}}catch(Exceptione){message=文件上传失败!;e.printStackTrace();}request.setAttribute(message,message);request.getRequestDispatcher(/message.jsp).forward(request,response);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}}计算机科学与工程系63.文件下载packageme.gacl.web.controller;importjava.io.File;importjava.io.IOException;importjava.util.HashMap;importjava.util.Map;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassListFileServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{StringuploadFilePath=this.getServletContext().getRealPath(D:\shangchuan\upload);MapString,StringfileNameMap=newHashMapString,String();listfile(newFile(uploadFilePath),fileNameMap);//File既可以代表一个文件也可以代表一个目录request.setAttribute(fileNameMap,fileNameMap);request.getRequestDispatcher(/listfile.jsp).forward(request,response);}publicvoidlistfile(Filefile,MapString,Stringmap){if(!file.isFile()){//列出该目录下的所有文件和目录Filefiles[]=file.listFiles();//遍历files[]数组for(Filef:files){//递归计算机科学与工程系7listfile(f,map);}}else{file.getName().indexOf(_)那么file.getName().substring(file.getName().indexOf(_)+1)StringrealName=file.getName().substring(file.getName().indexOf(_)+1);map.put(file.getName(),realName);}}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}}%@pagelanguage=javaimport=java.util.*pageEncoding=UTF-8%%@taglibprefix=curi=!DOCTYPEHTMLhtmlheadtitle下载文件显示页面/title/headbodyc:forEachvar=meitems=${fileNameMap}c:urlvalue=/servlet/DownLoadServletvar=downurlc:paramname=filenamevalue=${me.key}/c:param/c:url${me.value}ahref=${downurl}下载/abr//c:forEach/body/html4.删除计算机科学与工程系8packageam.demo;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.IOException;imp