java web项目总文档
目录
第一章 概述.................................................................................................................................... 1
1.1 课程设计的核心任务................................................................................................2
1.2 课程设计工作进程......................................................................................................2
第二章 需求分析............................................................................................................................. 3
2.1 用户需求.................................................................................................................. 4
2.1.1 业务需求.............................................................................................................4
2.1.2 商业需求.............................................................................................................4
2.1.3 特殊需求........................................................................................................... 5
2.2 可行性分析............................................................................................................... 6
2.2.1 技术可行性....................................................................................................6
2.2.2 经济可行性....................................................................................................7
2.3 系统功能.............................................................................................................7
第三章 概要设计...........................................................................................................................7
3.1 系统设计思想....................................................................................................8
3.2 系统(或网络)总体结构.............................................................................9
3.2.1 项目系统架构图.........................................................................................9
3.2.2 E-R图...................................................................................................... 10
3.3数据库设计.......................................................................................................... 11
第四章详细设计.................................................................................................................... 12
4.1程序系统结构..................................................................................................... 13
4.2程序登录功能设计.............................................................................................. 14
4.2.1程序描.................................................................................................... 15
4.2.2功能描述................................................................................................... 16
4.2.3性能.......................................................................................................... 17
4.2.5输出项....................................................................................................... 18
4.2.6算法.......................................................................................................... 19
4.2.7程序流程逻辑............................................................................................ 20
4.3程序主页设计.................................................................................................... 21
4.3.1程序描述.................................................................................................. 22
4 .3.2功能描述................................................................................................ 23
4.3.3性能........................................................................................................ 24
4.3.4输入项.................................................................................................... 24
4.3.5输出项.................................................................................................... 24
4.3.6接口......................................................................................................... 24
4.3.7程序流程逻辑........................................................................................... 25
4.4程序日志管理设计.............................................................................................. 25
4.4.1程序描述.................................................................................................. 25
4.4.2功能描述................................................................................................... 26
4.4.3性能..................................................................................................................27
4.4.4输入项.......................................................................................................... 27
4.4.5输出项........................................................................................................... 28
4.4.6算法.................................................................................................................. 28
4.4.7流程图............................................................................................................ 29
4.5系统管理设计...............................................................................................................29
4.5.1程序描述.................................................................................................... 30
4.5.2功能描述.................................................................................................... 30
4.5.3性能................................................................................................................. 30
4.5.4输入项............................................................................................................. 31
4.5.5输出项......................................................................................................... 31
4.5.6算法................................................................................................................ 31
4.5.7流程图........................................................................................................ 32
4.5.8接口................................................................................................................ 33
第五章课程设计总结......................................................................................................................33
第一章 概述
我们的项目是企业办公管理软件开发,以java web技术面向企业级应用,主要解决企业在平常的实际管理中,面对的企业员工和企业之间信息的传递,消息的及时通知,建立企业员工人员信息的管理,人员的管理,便于企业与用工之间的交流,减少企业的成本,和提高生产工作的效率,提高员工对企业通知没能及时浏览,而影响正常的生产生活。
1.1 课程设计的核心任务
本次课程(项目)的主要核心人物是利用javaweb知识尝试开发企业级应用。主要使用java的相关技术和使用java框架快速完成项目的开发。
1.2 课程设计的工作流程
本次项目开发为期2个月的时间,4月15日-6月19日,主要分为以下3个阶段:
第一阶段:4月15日-5月8日:完成项目需求分析文档的编写,进行项目可行性分析,确保项目的实际意义。
第二阶段:5月9日-5月29日:完成项目设计文档的编写,记性E-R图、用例图、系统架构图的分析和项目的编码。
第三阶段:5月30日-6月19日:完成项目服务器的部署、编写项目的主要展示页面博客。
最后,完成项目总文档的整合,发布项目开发的总文档博客。
第二章 需求分析
进行项目需求分析,主要是为了在进行项目实际开发避免因没有考虑的因素,增加项目开发成本,文档的撰写在软件开发中的作用比项目实际的编码更大,通过文档细致的描述、详细的分析、提供给客户详细的说明,以检验是否满足用户的实际需求。
2.1 用户需求
用户需求,主要是针对用户提出的各种需求,进行分析,具体是用户需要达成的目标、完成什么样的功能、服务什么样的群体、采用什么技术来实现用户的而需求,优化代码、提高代码的可移植性、跨平台性,最终在完成客户要求的相应功能的情况下,提高产品用户的体验度。
2.1.1 业务需求
业务需求主要就是我们围绕客户提出的要求,我们怎样通过程序设计以满足用户的要求。通过对业务的分析,能够使我们设计出更好的程序。
业务目标:
1、项目达到能够解决一般企业的需求,如对企业人员变动信息的管理,企业发布通知、企业管理者查询员工信息。
2、通过该项目检验学习javaweb技术。
2.1.2 商业需求
因为我们的产品是服务于企业,最后要能解决企业实际遇到的员工管理的问题,所以我们的项目还是有很强的商业需求。
2.1.3 特殊需求
我们的项目怎样才能更好的服务于企业,就需要在企业的实际使用过程中,遇到的问题,能及时向我们反馈,我们就能及时修正、调整我们的项目和优化代码,增加用户的体验度。
2.2 可行性分析
可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。可行性分析应具有预见性、公正性、可靠性、科学性的特点。
2.2.1 技术可行性
我们的项目的开发环境是MyEclipse、使用的数据库是MySQL数据库,采用的技术主要是java web技术。
2.2.2 经济可行性
我们项目的开发硬件设备是我们小组成员的个人笔记本电脑、使用的服务器是腾讯云服务器,是基于云端的个人服务器。所以说,我们小组的经济方面的还有可行的,本次项目面向的是企业管理系统的开发。如果,我们的项目能够被企业采纳,那将给我们带来很高的经济效率。
2.3 系统功能
本系统首先员工要通过一定身份验证,才能进入系统,使用到本系统所提供的相应服务。基本功能描述如下。
- 用户注册:用户注册(新加入的员工需经过人事部门的身份验证才能注册本系统)、用户登录、用户退出、密码修改。通过用户在此界面输入相关的信息,完成账号与密码以及个人信息在数据库中的录入,并由此获得一个可进入系统的Id和密码。
- 登录:通过让用户输入账号与密码,再将用户Id与密码与数据库中用户注册时的数据进行比对,Id与密码都正确提示登录成功,页面跳转;如果密码与Id不对,提示用户,密码输入错误,请他重新输入。
- 职工管理功能:主要实现新入职员工的添加、删除等。
- 管理员审核:管理员后台审核用户申请的出售信息是否合规,管理员确认之后发布到平台;同时后台管理员处理接收到的举报与投诉信息。
- 修改密码:考虑到部分用户可能会忘记密码,设立此功能,使忘记密码的用户能够通过修改密码,重新进入系统。
- 个人管理:员工进入个人管理模块,可以实现个人信息的查询。
- 公告管理:主要用于企业添加、发布和删除相应公告,而员工可以进行查看。
- 培训管理:主要用于登录培训记录等,激励职工学习,提高职工的工作质量。
- 费用管理:主要用于登记每笔费用的使用情况等,方便公司统计,结算等。
- 平台维护管理:审核信息的发布和处理举报投诉,日常系统的维护功能。
- 退出:主要是为了保护用户的账户安全,防止因无法退出而产生的账户不安全行为
第3章 概要设计
3.1 系统设计思想
我们项目的设计思想,就是使用javaweb技术,想通过实际项目的形式检验自己在这一学期的学习成果,学习和巩固javaweb相关知识,学习java技术在实际开发中是如何使用的,以达到真正的与企业开发相联系,毕业后能够找到适合自己工作的岗位。
3.2 系统(或网络)总体结构
图3-1 系统总体结构图
3.2.1 项目系统架构图
我们项目的总设计思想是采用java web面向企业级开发的特点,来进行项目的开发。下面图3-2是项目设计总架构图。
图3-2 项目设计总架构图
3.2.2 E-R图
项目E-R图,有管理员和职工模型、管理员和资料模型、管理员和培训模型和管理员和公告模型。
管理员和职工模型如图3-3所示
图3-3 管理员与职工模型
管理员和资料模型如图3-4所示
图3-4 管理员和资料模型
管理员和培训模型如图3-5所示
图3-5 管理员和培训模型
管理员和公告模型如图3-6所示
图3-6 管理员和公告模型
3.2.3用例图
项目用例图如图3-7所示
图3-7 用例图
3.3 数据库设计
用户信息表
存储分配表
第4章 详细设计
4.1程序系统结构
图3-1 系统总体结构图
4.2程序登录功能设计
4.2.1程序描述
改程序时OA办公自动化的入口,体现了程序的安全性。
(1)功能类型:查询数据。
(2)功能描述:提高系统的安全性。
(3)前提业务:无。
(4)后继业务:04(日程管理。
(5)功能约束:权限约束(6)操作权限:系统管理员,登录用户。
4.2.2功能描述
(1)录入项检测使用javascript和后台代码实现(各项必须非空)。
(2)在Login.aspx.cs中只提交用户名和密码。
数据处理:1.登录验证,2.记录登录用户信息。
4.2.3性能
确保系统能正确运行和进行高效访问。
4.2.4输入项
4.2.5输出项
页面能正确的跳转到日程管理模块下的个人便签页面下。
4.2.6算法
登录验证:使用javascript进行表单验证,完成登录验证页面。
1 Ext.onReady(function(){ 2 3 Ext.QuickTips.init(); 4 var form=new Ext.form.FormPanel({ 5 renderTo:'login', 6 defaultType:'textfield', 7 title:'欢迎登录OA系统', 8 frame:true, 9 width:300, 10 defaults:{ 11 allowBlank:false 12 }, 13 labelAlign:'right', 14 items:[{ 15 cls : 'user', 16 fieldLabel:'用户名', 17 emptyText:'请输入用户名', 18 name:'oaUser.name', 19 blankText:'用户名不能为空' 20 },{ 21 cls : 'key', 22 fieldLabel:'密 码', 23 inputType:'password', 24 name:'oaUser.password', 25 blankText:'密码不能为空' 26 }], 27 buttonAlign:'center', 28 buttons:[{ 29 text:'登录', 30 handler:function(){ 31 if(!form.getForm().isValid()){ 32 return; 33 } 34 form.getForm().submit({ 35 waitTitle:'温馨提示', 36 waitMsg:'正在登录...', 37 url:'user!login.action', 38 success:function(f,action){ 39 if(action.result.success){ 40 Ext.Msg.alert('提示',action.result.msg,function(){ 41 window.location.href='main.jsp'; 42 }); 43 } 44 }, 45 failure:function(f,action){ 46 Ext.Msg.alert('错误',action.result.msg); 47 } 48 }); 49 } 50 }] 51 }); 52 });
记录登录用户的信息
1 UserInfo user; 2 LoginLog log = new LoginLog(); 3 //获取用户登录名 4 log.UserId = txtUserId.Value; 5 //获取登录时间 6 log.LoginTime = DateTime.Now; 7 log.LoginUserIp = Request.UserHostAddress.ToString(); 8 log.LoginDesc = "用户登录成功"; 9 log.IfSuccess = 1; 10 //数据验证成功着将数据传入查询方法进行数据操作 11 LoginLogManager.AddLoginLog(log); 12 //获取当前登录用户 13 Session["CurrentUser"] = user; 14 //判断用户角色进行页面转换 15 if (user.RoleInfo.RoleId == 1) 16 { 17 Response.Redirect("~/ManualSign/ManualSign.aspx"); 18 } 19 else 20 { 21 Response.Redirect("~/ScheduleManage/PersonNote/PersonNote.aspx"); 22 }
4.2.7程序流程逻辑
4.3程序主页设计
4.3.1程序描述
(1)功能类型:查询、添加、修改数据。
(2)功能描述:按照要求对数据进行查找、添加、修改。
(3)前提业务:登录用户为系统管理员。
(4)后继业务:密码修改、重新登录。
(5)功能约束:权限约束。
(6)操作权限:登录用户。
4.3.2功能描述
1.重新登录,回转到登录页面进行重新输入数据进行登录。
2.修改密码,通过Session获取当前登录用户信息,根据用户信息进行密码修改。
3.个人便签盒添加便签在日程管理有讲解。
4.3.3性能
能进行数据的高效访问。
4.3.4输入项
注:添加便签和修改便签输入项在日程管理中有说明
4.3.5输出项
个人日程信息。
4.3.6接口
重新登录
图4-3-1 重新登录
修改密码
图4-3-2 修改密码
注:添加和修改便签在日程管理中有说明。
4.4程序日志管理设计
4.4.1程序描述
(1)功能类型:查看、添加、修改、删除数据
(2)功能描述:按照要求对数据进行查查看、添加、修改并删除
(3)前提业务:登录用户为系统管理员
(4)后继业务:031(我的日程)032(部门日程)033(我的便签)
(5)功能约束:权限约束
(6)操作权限:系统管理员、一般登录用户,
4.4.2功能描述
1.利用树形控件加载出功能页面的链接
2.在我的日程子模块中添加日程是在时间列表控件中点击链接进行跳转
4.4.3性能
确保系统能高效的进行数据访问
4.4.4输入项
4.4.5输出项
查看:显示数据库中存在的数据
删除:显示删除后数据库中存在的数据
添加:将数据天津啊进入数据库在显示添加后的数据信息
修改:对数据库中原本存在的某条数据进行修改后在进行展示
4.4.6算法
1 HyperLink link = new HyperLink(); 2 link.ImageUrl = "~/images/add_Schedule.gif"; 3 link.ToolTip = "新增个人日程"; 4 link.NavigateUrl = "SaveMySchedule.aspx?userid=" + user.UserId + "&today=" +day.Date.ToShortDateString(); 5 tc.Controls.Add(link);
4.4.7流程图
部门日程
图4-4-1部门日程
我的日程
图4-4-2 我的日程
我的便签
图4-4-3 我的便签
4.4.8 接口
图4-4-4 接口
4.5系统管理设计
4.5.1程序描述
(1)功能类型:查看、添加、修改、删除数据。
(2)功能描述:按照要求对数据进行查查看、添加、修改并删除。
(3)前提业务:登录用户为系统管理员。
(4)后继业务:051 角色管理 052 登陆日志 053操作日志 054 菜单排序。
(5)功能约束:权限约束。
(6)操作权限:系统管理员。
4.5.2功能描述
图4-5-1 系统管理功能
组织机构部门设置、用户管理、流程管理、表单管理、公文模版管理、角色管理、系统设置、系统日志、数据备份和恢复管理。
4.5.3性能
系统能高效的进行数据访问和各项操作的更改。
4.5.4输入项
4.5.5输出项
角色管理:输出角色信息;登录日志:输出相应时间内的登录日志。
操作日志:输出相应时间内的操作日志。
菜单排序:输出通过上下移动后的树形菜单排序情况。
4.5.6算法
1.分配角色权限中关于复选框选择的问题,怎样处理好选择一个模块时选择其下的子模块而不选中其他模块的子模块,需要使用用户自定义控件来完成,在后台代码显示方法中这样写。
//得到所有父级点信息
IList sysFuns = SysFunManager.GetAllParentNodeInfo();
//根据父节点得到对应子节点生成用户控件,然后循环插入到PlaceHolder容器中
1 foreach (SysFun sysFun in sysFuns) 2 { 3 //得到父节点Id 4 string nodeId = sysFun.NodeId.ToString(); 5 //得到父节点名称 6 string displayName = sysFun.DisplayName; 7 //实例化用户控件 8 SysManage_RoleManage_WebUserControl roleCotrol = (SysManage_RoleManage_WebUserControl)LoadControl(@"RoleUserControl.ascx"); 9 //实例化隐藏区域,用以存父节点Id 10 HtmlInputHidden hidParentMeu = (HtmlInputHidden)roleCotrol.FindControl("hidParentMenu"); 11 hidParentMeu.Value = nodeId; 12 //实例化隐藏区域,用以存储角色Id 13 HtmlInputHidden hidRoleId = (HtmlInputHidden)roleCotrol.FindControl("hidRoleId"); 14 hidRoleId.Value = roleId.ToString(); 15 16 //实例化用户控件中的CheckBox 17 CheckBox chkParentMenu = (CheckBox)roleCotrol.FindControl("chkParentMenu"); 18 19 //显示父菜单名称 20 chkParentMenu.Text = displayName; 21 22 if (arrRoleParentNodes.Contains(nodeId)) 23 { 24 chkParentMenu.Checked = true; 25 } 26 //把父节点生成的用户控件追加打破PlaceHolder容器中 27 phRoleDistribute.Controls.Add(roleCotrol); 28 }
2.查看登录日志和操作日志时,开始时间和结束时间的获取使用javascript代码来实现
1 function fillstring(str) 2 { 3 if(str.length==1) 4 { 5 str = "0" + str; 6 } 7 return(str); 8 } 9 function quickseldate(type) 10 { 11 var begintime,endtime; 12 var oneminute = 60*1000; 13 var onehour = 60*oneminute; 14 var oneday = 24*onehour; 15 var oneweek = 7*oneday; 16 17 var todayDate = new Date(); 18 var date = todayDate.getDate(); 19 var month= todayDate.getMonth() +1; 20 var year= todayDate.getYear(); 21 var day = todayDate.getDay(); 22 if(navigator.appName == "Netscape") 23 { 24 year = 1900 + year; 25 } 26 27 //--> 28 29 if(type=="day") 30 { 31 begintime = year.toString() + "-" + fillstring(month.toString()) + "-" + 32 33 fillstring(date.toString()); 34 endtime = begintime; 35 } 36 else if(type=="week") 37 { 38 var daytoMon = day-1; 39 if(day==0) 40 daytoMon = 6; 41 42 todayDate.setTime(todayDate.getTime()-daytoMon*oneday); 43 date = todayDate.getDate(); 44 month= todayDate.getMonth() +1; 45 year= todayDate.getYear(); 46 day = todayDate.getDay(); 47 48 begintime = year.toString() + "-" + fillstring(month.toString()) + "-" + 49 50 fillstring(date.toString()); 51 52 todayDate.setTime(todayDate.getTime()+6*oneday); 53 54 date = todayDate.getDate(); 55 month= todayDate.getMonth() +1; 56 year= todayDate.getYear(); 57 58 endtime = year.toString() + "-" + fillstring(month.toString()) + "-" + 59 60 fillstring(date.toString()); 61 } 62 else if(type=="month") 63 { 64 var dateto1 = date-1; 65 66 todayDate.setTime(todayDate.getTime()-dateto1*oneday); 67 date = todayDate.getDate(); 68 month= todayDate.getMonth() +1; 69 year= todayDate.getYear(); 70 day = todayDate.getDay(); 71 72 begintime = year.toString() + "-" + fillstring(month.toString()) + "-" + 73 74 fillstring(date.toString()); 75 76 todayDate.setMonth(month); 77 todayDate.setTime(todayDate.getTime()-oneday); 78 79 date = todayDate.getDate(); 80 month= todayDate.getMonth() +1; 81 year= todayDate.getYear(); 82 83 endtime = year.toString() + "-" + fillstring(month.toString()) + "-" + 84 85 fillstring(date.toString()); 86 87 } 88 89 document.getElementById("<% =txtBeginTime.ClientID %>").value = begintime; 90 document.getElementById("<% =txtEndTime.ClientID %>").value = endtime;
4.5.7流程图
角色管理
图4-5-2 角色管理图
登录日志
图4-5-3登录日志
操作日志
图4-5-4 操作日志
菜单排序
图4-5-5 菜单排序
4.5.8 接口
图4-5-6接口
第5章 课程设计总结
本次项目历时接近两个月的时间,我们一直本着初心,围绕项目的总体目标,即运用java web技术进行面向企业级应用的开发,三个博客的编写,进行了《可行性分析报告》、《需求分析报告》、《项目设计报告》。一起可以看出我们的成长,从最初刚开始学习文档编写的格式;项目的定位目标、怎样对项目可行性进行合理、正确、客观的分析;如何把控项目在实际需求,来自用户的需求,采用什么技术设计来完成项目的搭建;学习编写用户的操作手册,项目怎样交给用户来进行使用等,让我们经历了企业项目实际开发过程中的必要阶段。学习了项目的实际开发分析思路,项目开发的先后顺序、认识到项目开发过程中文档的重要性。
在这段时间里,知道了团队协作的重要性,一个好的团队怎样攻克难题、战胜困难、超越自我,最终取得共同的进步,怎样在快速完成项目开发的过程中,又能增长自己的开发经验。
在此,非常感谢老师的指导和同学们的交流、讨论,更重要的是感谢我们小组同学的积极参与、奉献,大家一起共同完成本次的项目课题。共同经历了项目的开发流程。