web实验报告--网盘系统.doc_第1页
web实验报告--网盘系统.doc_第2页
web实验报告--网盘系统.doc_第3页
web实验报告--网盘系统.doc_第4页
web实验报告--网盘系统.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 Web开发与应用实验报告系 别电子信息系专 业计算机科学与技术班级学号姓 名指导教师2010年 12 月 27月27欢迎下载27欢迎下载。一, 相关技术本系统主要采用jsp,servlet,session,mysql,html,xml,等知识点,配合Navicat软件,采用以下技术实现:1数据存储由于本系统是个简易网盘,故涉及到的数据量比较小,故采用小巧的MySQL,鉴于MySQL没有企业管理器,于是采用Navicat软件以简化mysql的使用。2页面显示由于涉及到的动态页面,故页面的主语言选用jsp。3后台处理由于涉及到连接数据库,处于安全考虑,有关数据库的连接操作至于后台;而动态页面需要的动态事件的触发、以及响应等主要事件均放在servlet中进行。4数据传递鉴于本系统的页面较多,故使用session进行数据的传递。二, 系统需求分析1. 用户登陆未注册用户可以进入注册页面进行注册,已注册的用户可以进行登录,若用户不存或者密码错误则提示重新输入。用户名密码匹配,则进入个人主页。2. 用户注册能够进行注册验证,对“用户名重复”,“密码与确认不一致”等问题就行纠错,并能将正确的数据输入到数据库中。3. 上传文件能够上传文件到D:中,并能将文件的名字存入到数据库中。4. 下载文件会在页面中显示每个用户已经上传的全部文件,并可以下载上述文件。三, 系统设计1.数据库drop table if exists user;drop table if exists file;/* Table: user */create table data( id varchar(100), password varchar(100), primary key (id);/* Table: file */create table user( id varchar(20), url varchar(20), primary key (id,url), foreign key (id) references user (id) );2. 详细代码:=Login.jsp= base href= My JSP Login.jsp starting page !- 欢迎! 用户名:   密码:                   还未注册? =testLogin.jsp=注册%String reg_name = request.getParameter(username);String reg_pass = request.getParameter(password);Connection con = JdbcUtil.getConnection();ResultSet rs = null;Statement st = null;boolean flag=false;try st = con.createStatement();rs = st.executeQuery(select * from user);while (rs.next() if (reg_name.equals(rs.getString(1)& reg_pass.equals(rs.getString(2) session.setAttribute(username, reg_name);out.println(alert(欢迎回来+ reg_name+ !);location.replace(UploadFile.jsp););flag=true;break; else if (reg_name.equals(rs.getString(1)& !reg_pass.equals(rs.getString(2) out.println(alert(密码错误!);location.replace(Login.jsp);); flag=true; break; if(!flag)out.println(alert(用户名不存在!);location.replace(Login.jsp););rs.close();con.close(); catch (Exception e) out.println(e);%=Register.jsp= base href= My JSP Login.jsp starting page !- 欢迎加入我们!   请输入用户名:     请输入密码: 请再次输入密码: =testRegister.jsp=注册%String reg_name = request.getParameter(username);String reg_pass = request.getParameter(password);String reg_rpass = request.getParameter(regpassword);Connection con = JdbcUtil.getConnection();ResultSet rs = null;Statement st = null;boolean flag1 = true;try st = con.createStatement();rs = st.executeQuery(select * from user);while (rs.next() if (reg_name.equals(rs.getString(1) out.println(请重新注册);out.println(alert(对不起,用户名+ reg_name+ 已存在);location.replace(Register.jsp););flag1 = false;System.out.println(moved1);break;if (flag1)System.out.println(moved); if(!reg_pass.equals(reg_rpass) out.println(alert(密码不一致,请重新输入);location.replace(Register.jsp); else if ( reg_pass.equals(reg_rpass) PreparedStatement stat = con.prepareStatement(insert user values(?,?);stat.setString(1, reg_name);stat.setString(2, reg_pass);stat.executeUpdate();out.println(注册成功);out.println(您的用户名是: + reg_name+ );out.println(您的密码是: + reg_pass + );stat.close();String name_reged = null;session.setAttribute(username, reg_name);out.println(alert(谢谢注册);location.replace(UploadFile.jsp);rs.close();con.close(); catch (Exception e) out.println(e);%=UploadFile.jsp=base href=UploadFile!-你的名字是:请选择你要上传的文件:  =DowmloadFile.jsp=base href=My JSP DownloadFile.jsp starting page!-你的名字是:请选择你要下载的文件:%/HttpSession session = request.getSession(); String name=(String) session.getAttribute(username);Connection con=JdbcUtil.getConnection();ResultSet rs = null ; Statement st=null; try st=con.createStatement(); rs = st.executeQuery(select * from file) ; while(rs.next() if(name.equals(rs.getString(1) String url=rs.getString(2); out.println(url); String filepath = servlet/Download?filepath=/+url; out.println(); out.println(download this file); out.println(); out.println( ); rs.close() ; con.close() ; catch(Exception e) out.println(e); %=Upload.java=package servlet;import java.io.File;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import mons.fileupload.DefaultFileItemFactory;import mons.fileupload.DiskFileUpload;import mons.fileupload.FileItem;import com.mysql.jdbc.Connection;import com.mysql.jdbc.PreparedStatement;import com.mysql.jdbc.ResultSet;import com.mysql.jdbc.Statement;import util.JdbcUtil;public class Upload extends HttpServlet public Upload() super();public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String result = ;HttpSession session = request.getSession();String name=(String) session.getAttribute(username);String path = D:;Connection con=(Connection) JdbcUtil.getConnection();String sql = insert into file values(?,?); String nm = null;File foder = new File(path);/ 如果文件夹不存在,则创建文件夹if (foder.exists() = false) foder.mkdirs();/ 多级目录/ foder.mkdir();/只创建一级目录 try DefaultFileItemFactory factory = new DefaultFileItemFactory(); DiskFileUpload up = new DiskFileUpload(factory); List ls = up.parseRequest(request); System.out.println(ls.size(); for (FileItem fileItem : ls) if (fileItem.isFormField() String FieldName = fileItem.getFieldName(); String Content = fileItem.getString(gbk); request.setAttribute(FieldName, Content); else nm = fileItem.getName().substring( fileItem.getName().lastIndexOf() + 1); File mkr = new File(path, nm); if (mkr.createNewFile() System.out.println(uploading); System.out.println(fileItem.getFieldName(); System.out.println(nm); fileItem.write(mkr); result = success!; catch (Exception e) e.printStackTrace(); result = fail!; try PreparedStatement stat=(PreparedStatement) con.prepareStatement(sql);stat.setString(1,name); stat.setString(2,nm); stat.executeUpdate(); stat.close(); catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace(); System.out.println(nm); response.setContentType(text/html);PrintWriter out = response.getWriter();out.println();out.println();out.println( A Servlet);out.println( );out.println(alert(succeess);location.replace(/Mysqltest/DownloadFile.jsp);out.println( );out.println();out.flush();out.close();public void init() throws ServletException / Put your code here=Download.java=package servlet;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.PrintWriter;import .URLEncoder;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Download extends HttpServlet public Download() super();public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String filepath = request.getParameter(filepath);String fullFilePath = D: + filepath; /*读取文件,到D盘下载*/ File file = new File(fullFilePath); /*如果文件存在*/ if (file.exists() String filename = URLEncoder.encode(file.getName(), utf-8); response.reset(); response.setContentType(application/x-msdownload); response.addHeader(Content-Disposition, attachment; filename= + filename + ); int fileLength = (int) file.length(); response.setContentLength(fileLength); /*如果文件长度大于0*/ if (fileLength != 0) /*创建输入流*/ InputStream inStream = new FileInputStream(file); byte buf = new byte4096; /*创建输出流*/ ServletOutputStream servletOS = response.getOutputStream(); int readLength; while (readLength = inStream.read(buf) != -1) servletOS.write(buf, 0, readLength); inStream.close(); servletOS.flush(); servletOS.close(); public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html);PrintWriter out = response.getWriter();out.println();out.println();out.println( A Servlet);out.println( );out.print( This is );out.print(this.getClass();out.println(, using the POST method);out.println( );out.println();out.flush();out.close();public void init() throws ServletEx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论