《Jsp课程设计企业信息管理系统设计4485.docx》由会员分享,可在线阅读,更多相关《Jsp课程设计企业信息管理系统设计4485.docx(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 企业信息管管理系统网网站设计1 需求分析设计一个小小型企业信信息管理系系统网站,实实现企业基基本信息的的在线管理理。该系统统主要包括括三大基本本模块和六六个功能扩扩展模块,模模块简介如如下:(1)用户户登录模块块:只有注注册了的用用户才可以以登录系统统,需要提提供登录的的用户名和和密码即可可登录系统统。(2)用户户注册模块块:未注册册的用户可可以提供简简单的个人人信息注册册成为注册册用户。该该模块的输输入数据项项包括:用用户名、密密码和E-maill。(3)用户户退出模块块:通过对对该模块的的调用,用用户离开系系统后其他他人不能进进行操作,提提高了系统统的安全性性。(4)通讯讯录管理模模块:
2、用作作当前的登登录用户添添加、修改改、删除和和查看自己己的日程安安排列表。输输入数据项项包括:姓姓名、性别别、手机、EE-maiil、QQQ、工作单单位、地址址、邮政编编码。(5)短消消息管理模模块:用作作当前的登登录用户给给系统内的的其他用户户发送短消消息,并可可以查看其其他用户发发来的消息息。输入数数据项包括括:接收者者、发送者者、消息内内容、发送送时间、是是否阅读。(6)日程程安排模块块:用作当当前的登录录用户添加加、修改、删删除和查看看自己的日日程安排列列表。输入入数据项包包括:用户户名、年份份、月份、日日期、安排排内容。(7)工作作记录模块块:用作当当前的登录录用户添加加、修改、删删
3、除和查看看自己的工工作日志列列表。输入入数据项包包括:用户户名、年份份、月份、日日期、日志志标题、日日志内容、记记录时间。(8)公司司公告模块块:用户发发送通知,大大家都可以以查看,只只有发送通通知的用户户才有权修修改、删除除该通知。输输入数据项项包括:公公告填写人人、公告标标题、公告告内容、公公告时间。(9)工作作会议模块块:用户发发送会议通通知,供所所有用户查查看,且只只有发送通通知的用户户才有权修修改、删除除该通知。输输入数据项项包括:会会议填写人人、会议开开始时间、会会议结束时时间、会议议地点、会会议标题、会会议内容。2 总体设设计 课程设计说说明书 在任何一个个管理信息息系统中,都都
4、包含3个个最基本的的功能:登登录、退出出与注册。在在这个功能能的基础上上,我们可可扩展各种种业务管理理系统的功功能,如图图2.1所所示。注册原型扩展功能登陆退出 图2.1 系统基础础功能状态态图系统基础功功能涉及三三个角色:未注册用用户、未登登录用户、登登录用户。这这三种用户户执行如下下三种需求求功能:用用户登录功功能、用户户注册功能能、用户退退出功能。短消息管理通讯录管理日程安排工作记录 公司公告 工作会议通信工具个人管理企业管理登录退出注册根据以上的的基础功能能扩展开发发出一个企企业信息管管理系统,它它包含通信信工具、个个人管理和和企业管理理三大方面面。提供的的功能包括括:通讯录录管理模块
5、块、短消息息管理模块块、日程安安排模块、工工作记录模模块、公司司公告模块块和工作会会议模块。各各功能模块块间的结构构如图2.2所示。图2.2 功能结构构图该系统采用用JSP技技术实现页页面的设计计,主要页页面组成如表2.1所示示:表2.1 主要页面面组成表页面名称JSP页面页面名称JSP页面页面名称JSP页面登陆页面login.jsp通讯录页面address.jsp工作记录页面worklog.jsp注册页面register.jsp短消息页面sms.jsp公司公告页面notice.jsp登陆欢迎页面welcome.jsp日程安排页面schedule.jsp工作会议页面meeting.jsp 课程
6、设计说说明书 3 详细设设计3.1 数数据库设计计本系统所用用到的数据据库数据信信息如下表表所示:表3.1 数据库逻逻辑表表格名称说明user用户表用户信息address通讯录管理表通讯录信息sms短消息管理表短消息信息schedule日程安排表日程安排信息worklog工作记录表工作记录信息notice公司公告表公司公告信息meeting工作会议表工作会议信息表3.2 用户表名称类型长度说明idint10用户编号(唯一,索引)usernamevarchar50用户名passwordvarchar50用户密码emailvarchar50用户E-mail表3.3 短消息管管理表名称类型长度说明i
7、dint10消息编号usernamevarchar50接收者用户名sendervarchar50发送者用户名messagetext消息内容sendtimevarchar20发送时间isrendvarchar1是否已读课程设计说说明书 NNO.4表3.4 通讯录管管理表名称类型长度说明idint10记录编号usernamevarchar50录入者用户名namevarchar50联系人用户名sexvarchar10联系人性别mobilevarchar20联系人手机号码emailvarchar50联系人E-mail地址qqvarchar20联系人QQ号码companyvarchar100联系人公司a
8、ddressvarchar100联系人地址postcodevarchar10联系人邮编表3.5 日程安排排表名称类型长度说明idint10安排表编号usernamevarchar50用户名yearint4日程年份monthint2日程月份dayint2日程日期plantext日程内容表3.6 公司公告告表名称类型长度说明idint10公告表编号sendervarchar50公告提交人用户名titlevarchar100公告标题contenttext公告内容sendtimevarchar20公告发布时间 课程设计说说明书 NNO.5表3.7 工作记录录表名称类型长度说明idint10记录编号us
9、ernamevarchar50记录人员用户名yearint4工作年份monthint2工作月份dayint2工作日期titlevarchar100工作标题descriptiontext工作具体内容logtimevarchar20记录时间表3.8 工作会议议表名称类型长度说明idint10会议记录编号sendervarchar50会议记录员startimevarchar20会议开始时间endtimevarchar20会议结束时间addressvarchar100会议地址titlevarchar100会议主题contenttext会议内容数据库采用用MySQQL进行存存储,其实实施情况如如图所示:
10、图3.1 数据库表表 课程设计说说明书 NNO.6 图3.2 userr表属性 图3.3 scheedulee表属性 图3.4 sms表属属性 图图3.5 meetting表表属性 图3.6 notiice表属属性 图图3.7 wworkllog表属属性3.2 动动态网页设设计3.2.11 MyySQL参参数文件ddb.jssp的设计计 由由于每一个个需要访问问MySQQL的文件件都需要创创建数据库库连接,因因此会多次次访问MyySQL连连接的参数数,为了防防止多次参参数的不同同,我们统统一了一个个MySQQL参数文文件incc/db.jsp,该该文件定义义如下: 沈 阳阳 大 学课程设计说说
11、明书 NNO.73.2.22 检查查用户名功功能模块ccheckkUserrnamee.jspp的设计通过JDBBC连接MMySQLL数据库,实实现对usser用户户表的检查查,执行的的SQL语语句为:selecct * fromm useer whhere userrnamee = userrnamee取得结果集集ResuultSeet对象后后,使用nnext()判断是是否有记录录,如果有有记录则该该用户名就就存在返回回truee,否则就就不存在返返回fallse,程程序段如下下:respoonse.setCConteentTyype(textt/xmll);respoonse.setHHe
12、adeer(CCachee-Conntroll,nno-caache);Strinng ussernaame = reqquestt.gettParaameteer(uusernname);booleean iisVallid = fallse;Strinng sqql = sellect * frrom uuser wherre ussernaame=+ussernaame+;try Classs.forrNamee(drvv).neewInsstancce();Conneectioon coonn = DriiverMManagger.ggetCoonnecctionn(urll, uss
13、r, ppwd);Stateementt stmm = cconn.creaateSttatemment();ResulltSett rs = sttm.exxecutteQueery(ssql);if(rss.nexxt()isVaalid = trrue;rs.cllose();stm.cclosee();conn.closse(); cattch (Exceeptioon e) e.priintSttackTTracee();out.pprinttln(ee); finnallyy if(issValiid) out.pprinttln(该用户户名已经存存在!);elseeout.ppr
14、inttln(ok); 沈 阳阳 大 学课程设计说说明书 NNO.83.2.33 登陆陆验证功能能模块loogin.jsp的的设计该模块需要要实现如下下功能:l 包含数据库库子文件ddb.jssp,以可可以去的数数据库的参参数变量;l 使用reqquestt的gettParaameteer()函函数取得用用户输入的的用户名参参数useernamme和密码码参数paasswoord;l 根据useernamme和paasswoord组合合查询usser表的的SQL语语句;创建建数据库连连接,执行行SQL语语句的查询询,如果查查询结果不不为空,即即rs.nnext()返回值值为turre,则表表示
15、验证成成功,否则则验证失败败;l 验证成功则则将用户名名保存在ssessiion中,并并使用reesponnse.ssendRRedirrect()跳转到到欢迎页面面welccome.jsp,验验证失败则则返回登陆陆页面loogin.jsp。该文件的代代码如下: 沈 阳阳 大 学课程设计说说明书 NNO.93.2.44 注册册功能模块块regiisterr.jspp的设计该模块需要要实现以下下功能:l 包含数据库库子文件ddb.jssp,以可可以取得数数据库参数数变量。l 使用reqquestt的gettParaameteer()函函数取得用用户输入的的用户名参参数useernamme、密码码
16、参数paasswoord、EE-maiil参数eemailll 创建数据库库的连接,查查询useer表中是是否存在该该userrnameel 如果查询结结果为空,即即rs.nnext()返回值值为fallse,则则表示不存存在,否则则该用户名名不可重复复使用。l 当用户名可可用时,组组合插入表表userr的SQLL,执行一一个用户的的插入。l 如果执行了了插入则跳跳转到登录录页面loogin.jsp,否否则返回注注册页面rregisster.jsp该文件的代代码如下: 沈 阳阳 大 学课程设计说说明书 NNO.103.2.55 通讯讯录管理功功能模块aaddreess.jjsp的设设计该页面首
17、先先需要数据据库参数文文件db.jsp。然然后取得请请求参数mmethood,用来来决定执行行什么操作作。根据mmethood的参数数值决定调调用的处理理函数如下下:l 如果metthod参参数值为llist,则则调用列表表函数liist();l 如果metthod参参数值为ddelette,则调调用删除函函数dellete();l 如果metthod参参数值为iinserrt,则调调用插入函函数inssert();l 如果metthod参参数值为eedit,则则调用修改改函数eddit();l 如果metthod参参数值为uupdatte,则调调用更新函函数upddate();完整的框架架代
18、码如下下:jsp:forwward pagee= / 1 ? pageeNo - 1 : 1;/ 前一一页iint ppageNNextNNo = pageeNo paggeCouunt ? paggeNo + 1 : paageCoount;/ 后后一页rrequeest.ssetAtttribbute(paggeFirrstNoo, ppageFFirsttNo);rrequeest.ssetAtttribbute(paggeLasstNo, paageLaastNoo);rrequeest.ssetAtttribbute(paggePreeNo, paggePreeNo);rrequee
19、st.ssetAtttribbute(paggeNexxtNo, paageNeextNoo);rss1.cllose();/ 取得当当前页数据据SQLSttringg sqll2 = sellect * frrom aaddreess wwheree useernamme= + uusernname+ ordder bby naame llimitt + staart + , + ppageSSize;LiistHHashttablee liist = neww ArrrayLiistHHashttablee();ReesulttSet rs2 = sttm.exxecutteQueery(
20、ssql2);ReesulttSetMMetaDData rsmdd = rrs2.ggetMeetaDaata();innt cools = rsmmd.geetCollumnCCountt();whhile (rs22.nexxt() / 查询每每行数据的的各个字段段数据HHashttablee hassh = new Hashhtablle();ffor (int i = 1; ii = colss; i+) Striing ffieldd = (Striing) (rsmmd.geetCollumnNName(i);/ 字字段名Striing vvaluee = (Striing) (rs22.gettStriing(ii);/ 字段段值if (valuue = nulll) valuue = ;hashh.putt(fieeld, valuue);/ 保保存当前行行llist.add(hashh);/ 保存存所有行数数据列表传传递给下一一个页面reequesst.seetAtttribuute(listt, llist);rss2.cllose();