《jsp个人信息管理系统实训报告.pdf》由会员分享,可在线阅读,更多相关《jsp个人信息管理系统实训报告.pdf(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、郑州轻工业学院实 训 报 告实训名称:实训名称:基于基于 MVCMVC 模式的个人信息管理系统模式的个人信息管理系统姓名:、院 (系) :专业班级:学号:指导教师:成绩:时间:年月日至年月日一实训目的一实训目的本项目根据本学期所学的相关知识概念与原理,设计和开发基于 MVC 设计模式的个人信息管理系统。通过本项目的实训对所学知识进行掌握以及综合运用。二实训内容二实训内容2.12.1项目分析项目分析a)a)用户需求用户需求随着社会的不断发展,人们生活节奏越来越快,认识的人也越来越多, 交际圈越来越广,需要记录的东西越来越多, ,对于日常办公的人来说迫切需要一个日常信息管理系统记录自己的日常生活和
2、活动的安排比如朋友和同事的电话、 邮箱、办公地址;自己的日程、会议、活动安排,日常记事等都需要一个工具帮助自己, 以便于合理的安排自己的日常生活。而此项目个人信息管理系统正是基于这样的一个应用需求而设计的。b)b) 业务流程分析业务流程分析用户需要使用账号与密码通过登陆页面登陆个人信息管理系统。登陆后进入系统主窗体,可对个人信息管理、日程安排、通讯录管理、个人文件管理。退出系统时返回登陆页面c)c) 系统功能分析系统功能分析个人信息管理系统主要由:个人信息管理系统主要由:个人信息管理、备忘录管理、通讯录管理、日记管理、财务管理等模块组成。进入该系统后,用户可以对系统中的信息进行添加、修改、删除
3、和查询等操作。包括以下功能:(1)(1)(2)(2)(3)(3)(4)(4)个人基本信息管理模块。 个人的姓名、 性别、 出生日期、 民族、 学历、职称、登录名、密码、电话和家庭住址等。用户个人通讯录模块。个人姓名、电话、邮箱、工作单位、地址、QQ等、可以自由添加联系人的信息,查询或删除某些联系人。日程安排模块、添加从某一时间到另一时间要做什么事,日程标题、内容、开始时间和结束时间、可以自由查询、修改和删除。个人文件管理模块。用户在网上需要存储的临时文件。用户可以新建文件夹,修改、删除、移动文件夹,上传文件、下载文件、删除文件、移动文件等。系统功能描述如下系统功能描述如下:(1)(1)用户登录
4、、个人使用用户名和密码以及输入验证码登录系统、(2)(2)查看个人信息。主界面显示个人基本信息,如姓名、性别、出生日期、民族、学历、职称、电话、家庭住址、邮箱地址和登录名等、(3)(3)修改个人信息。用户可以修改自己的基本信息。如果修改了登录名,下次应使用新的登录名。(4)(4)修改登录密码。用户可以修改登录密码。(5)(5)查看通讯录。浏览通讯录列表,按照姓名检索等。(6)(6)维护通讯录。增加、修改、删除联系人。(7)(7)查看日程安排。查看日程安排列表,可以查看某一日的内容时间等。(8)(8)维护日程。一个新的日程安排包括日程标题、内容、开始时间和结束时(9)(9)可以对日程进程进行添加
5、、修改、删除等操作、(10)(10)浏览下载文件。任意浏览文件、文件夹,并可以下载到本地2.22.2项目设计项目设计a)a) 系统总体设计系统总体设计个人信息管理系统业务流程图如图所示个人信息管理系统业务流程图如图所示用户登陆是否登陆是系统主窗体个人信息备忘录日程安排系统业务流程图个人信息管理系统个人文件退出个人信息备忘录日 程 安排个人文件退出系统修改密码查看个人信息修改个人信息查看备忘添加备忘修改备忘添加日程删除日程上传文件下载文件退出系统系统功能结构图b)b) 系统数据库设计系统数据库设计在需求分析阶段已经完成系统的所有数据分析。 根据该阶段建立的概念模型,已经得出满足第三范式的几个关系
6、描述, 此阶段主要的工作就是把前一阶段的成果转化为具体的数据库。系统的基本系统的基本 E-RE-R 图图根据之前的分析规划出的个人信息管理系统实体有: 个人信息实体、日程实体、通讯录实体、个人文件管理实体。个人信息实体图如图所示账号姓名密码年龄电话号码个人信息出生日期QQ工作个人信息实体地址同通讯录实体如图所示性别姓名出生日期通讯录电话城市地址工作QQ3.3 通讯录实体日记实体如图所示日程安排事件时间日程安排实体财务管理实体如图所示个人文件管理文件上传文件下载财务管理实体关系描述的设计关系描述的设计根据数据库原理,并结合以上 E-R 图,经转换,可以导出各个关系。其转化规则为首先每个实体应该转
7、换成一个关系,有属性的联系也应转化为一个关系然且需要给出每个关系的关键字。根据以上规则直接给出所有关系。个人信息(用户 ID 号,用户密码,姓名,出生日期,电话号码,QQ,工作,地址,民族)关键字为用户 ID 号。日程安排(标识,日期,地点,日记标题,备注)关键字为标识。通讯录(标识,名字,性别,关系,添加时间,电话, QQ,出生日期,工作,地址,城市)关键字为标识。个人文件管理(上传文件,下载文件)关键字为标识。在得出以上关系后, 根据关系数据库的理论要求, 需要对所有的关系进行关系规范化,至少要求各个关系达到第三范式的要求。按照第三范式的要求对比以上各个关系,在所有关系中都不存在非主属性对
8、关键字的部分依赖,即满足第三范式。数据库的逻辑设计数据库的逻辑设计数据库逻辑设计即把得到的满足第三范式的关系转化为特定的数据库系统下的数据表。根据前面得到的各个关系,现把它们转化为数据表。用户信息表:用户 ID 号,用户密码,姓名,民族,出生日期,电话号码,QQ,工作,地址。日程表:标识,日期,事件,备注。通讯录表:标识,姓名,性别,关系,添加时间,电话, QQ,出生日期,工作,地址,城市个人文件管理表:文件上传,文件下载。数据库设计数据库设计用 Access 作为数据库,实现数据的存储和访问。在数据库中构建以下几张数据表用户表(user)字段名称字段类型UsernamevarcharPass
9、wordVarchar个人信息表(userinfo)字段名称字段类型IDVarcharUsernameVarcharUsersexVarcharUserbirthdayVarcharUsernationalVarcharUserdegreeVarcharUserperfessionVarcharUserrelephoneVarcharUserhomeVarcharuseremailVarchar字段长度5050字段说明用户名用户密码字段长度50501020303050508050字段说明用户编号用户名用户性别出生日期民族学历职称电话家庭住址电子邮件通讯录表(telephone)字段名称字段类型
10、TelephonenameVarcharTelephoneVarcharEmailVarcharWorkVarcharHomeVarcharQQVarchar日程安排表(day)字段名称字段类型DatetimeVarcharThingVarchar文件表(file)字段名称字段类型fileIdnumberfilenameVarchar字段长度505050808030字段说明记录用户名用户电话用户电子邮箱用户工作单位用户家庭住址用户 QQ 号码字段长度2080字段说明日程日期日程内容字段长度1050字段说明文件编号文件名2.32.3项目实现项目实现登录模块登录模块个人信息管理系统实训functi
11、on chk_image()var img = document.getElementById(pic);img.src = image.jsp? + Math.random(); 账号:密码:验证码: 验证用户名密码以及验证码JSP Page%String username=request.getParameter(username);String password=request.getParameter(userpass);String rand = (Str
12、ing)session.getAttribute(rand);String input = request.getParameter(userimage);Connection con=null;Statement st=null;ResultSet rs=null;if(username.equals()response.sendRedirect(index.jsp);tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);con=DriverManager.getConnection(jdbc:odbc:stuInfo);st=con.createSt
13、atement( );String sql=select * from user where username=+username+;rs=st.executeQuery(sql);if(rs.next()/用户判断密码是否正确String sql2=select * from user where password=+password+;rs=st.executeQuery(sql2);if(rs.next()if(rand.equals(input)out.print(alert(验证通过!););response.sendRedirect(main.jsp);elseout.print(
14、alert(请输入正确的验);location.href=index.jsp;);elseout.println(用户名或密码错误,请重新输入!);/response.sendRedirect(index.jsp);catch(Exception e)e.printStackTrace();证码!finallyrs.close();st.close();con.close();%主界面个人信息管理系统实训主界面左边JSP Page个人信息管理通讯录管理日程安排管理 个人文件管理 退出主页面 主界面右边JSP Page个人信息管理(查看个人信息)JSP Page查看个人信息修改个人信息修改密码查
15、看个人信息姓名性别出生日期民族学历职称电话家庭住址邮箱地址登录名个人信息管理(修改个人信息)JSP Page查看个人信息修改个人信息修改密码修改个人信息姓名性别出生日期 民族学历职称电话家庭住址邮箱地址登录名 个人信息管理(修改密码)JSP Page查看个人信息修改个人信息修改密码修改密码新密码 通讯录管理(查询通讯录)认JSP Page查看通讯录增加联系人修改联系人删除联系人查看通讯录姓名电话邮箱工作单位地址QQ通讯录管理(增加联系人)JSP Page查看通讯录增加联系人修改联系人删除联系人增加联系人姓名电话邮箱
16、工作单位地址QQ 通讯录管理(修改联系人)认JSP Page查看通讯录增加联系人修改联系人 删 除 联 系 人修改联系人姓名电话邮箱工作单位地址QQ 通讯录管理(删除联系人)JSP Page查看通讯录增加联系人 修 改 联 系 人删除联系人删除联系人姓名输入要删除的人的姓名 日程安排管理(查看日程)JSP Page查看日程增加日程修改日程删除日程查看日程时间内容日
17、程安排管理(增加日程)JSP Page查看日程增加日程修改日程删除日程增加日程时间内容 日程安排管理(修改日程)JSP Page查看日程增加日程修改日程删除日程修改日程时间内容日程安排管理(删除日程)%page contentType=text/html pageEncoding=UTF-8%JSP Page查看日程增加日程修改日程删除日程删除日程时间输入要删除的日程的时间   个人文件管理上传文件程序
18、应用示例请选择要上传的文件upFile= 0)/读入上传的数据in = new DataInputStream(request.getInputStream();int formDataLength = request.getContentLength();if(formDataLength MAX_SIZE)out.println(上传的文件字节数不可以超过 + MAX_SIZE + );return;/保存上传文件的数据byte dataBytes = new byteformDataLength;int byteRead = 0;int totalBytesRead = 0;/上传的数据
19、保存在 byte 数组while(totalBytesRead formDataLength)byteRead = in.read(dataBytes,totalBytesRead,formDataLength);totalBytesRead += byteRead;/根据 byte 数组创建字符串String file = new String(dataBytes);/out.println(file);/取得上传的数据的文件名String saveFile = file.substring(file.indexOf(filename=) + 10);saveFile = saveFile.
20、substring(0,saveFile.indexOf(n);saveFile = saveFile.substring(saveFile.lastIndexOf() + 1,saveFile.indexOf();int lastIndex = contentType.lastIndexOf(=);/取得数据的分隔字符串String boundary = contentType.substring(lastIndex + 1,contentType.length();/创建保存路径的文件名String fileName = rootPath + saveFile;/out.print(fil
21、eName);int pos;pos = file.indexOf(filename=);pos = file.indexOf(n,pos) + 1;pos = file.indexOf(n,pos) + 1;pos = file.indexOf(n,pos) + 1;int boundaryLocation = file.indexOf(boundary,pos) - 4;/out.println(boundaryLocation);/取得文件数据的开始的位置int startPos = (file.substring(0,pos).getBytes().length;/out.printl
22、n(startPos);/取得文件数据的结束的位置int endPos = (file.substring(0,boundaryLocation).getBytes().length;/out.println(endPos);/检查上载文件是否存在File checkFile = new File(fileName);if(checkFile.exists()out.println( + saveFile + 文件已经存在.);/检查上载文件的目录是否存在File fileDir = new File(rootPath);if(!fileDir.exists()fileDir.mkdirs()
23、;/创建文件的写出类fileOut = new FileOutputStream(fileName);/保存文件的数据fileOut.write(dataBytes,startPos,(endPos - startPos);fileOut.close();out.println(saveFile + 文件成功上载.);elseString content = request.getContentType();out.println(上传的数据类型不是 multipart/form-data);catch(Exception ex)throw new ServletException(ex.getMessage();%三实训总结与心得通过这次实训,对 jsp 这门课程有了深刻的理解,也对 java 设计动态页面各方面的学习得到很大的提高。有些东西在课堂上的理论知识中掌握不深,但是在实训中通过努力一一解决,心里很有成就感,也对设计产生了浓厚的兴趣。总之这次实训带给我各个方面的体会,非常高兴。