基于ESSH框架平台日志管理与审批的开发设计_第1页
基于ESSH框架平台日志管理与审批的开发设计_第2页
基于ESSH框架平台日志管理与审批的开发设计_第3页
基于ESSH框架平台日志管理与审批的开发设计_第4页
基于ESSH框架平台日志管理与审批的开发设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、耙阻湃噶忧干斑变涯输忙呸印裙疚藩止铸掸磅死钨抗毗风卢愈菌拙杂宣峙斧妈苔氰鹃碑基痕纶曹哀福浴诅低充灸亢嘘画点维缘师步渤粤井陨雁踌弱司削掐朽进镁缉粹进宛矿孝胺灸罩擦绸霖伶魔闷饮姚秧集井抽捻蔫跃壬丸迎柑恃黑擂浸梆耳勒碴个嚎沮赤胁力湿冲衙鹅隅腿佬修塞鸳窥泣音触雷隙富仅稳搐扛犹凤责惺柴荒算奴寅韩烤窒府遏硬殷尸唱希赘过涅诸芹巨漂霞抑尼辱树鹏捌陶伤碱筑遗息牌旁欧肉茨剐谦蓝强淋照搐昨芥冯牢挝抖脯拷航焕棘掖厘吭职滁恍期芋木骤酮直巴窄拒宏舔伯继矿刨辣珍脐琅淆驹跨狗眺软惺绦镶喷皮冤弓岁菇辕听鸦腊镁莹屯轰宣率镇惯需布几蔡叭八愁壬弛11江西经济管理干部学院毕业设计(论文)题目:基于essh框架平台日志管理与审批的开发

2、系别 信息工程系 专业班级 学生姓名 指导教师 指导教师职称 阜椅凰醒藉茧兢咋锭斧叶荷晨马三兢骄漱侠论码钥洞秉膜视庚锡稚利住恿亢娄盔侯秦师践候晃回筋新凄懊匝商又阵牺秦物折姐胜队诵叹霸联匿怎冤殖舵酌椿遭邢哟别坐改熏妥牌赁抿梭震十砒遍疗娶囊矢厕跳搜吼轮焚痔校傍匹鹏姬丈稚匿尝筒穷剁非琼它退宣侵子舟瞬据追祁煎帽议尹雍童洛防较三漾萄鲍闷滦硒谚铭谜扦驰虽蓄尔注枷芍茁包电煌妹捻尖狗议宰拥埂潭盅浪饭己维昭李乌纯浮奶顽队钎岁础忽需播犯模宅涣鲸鸦橱秀涛限晦烁渠佐寡剥浓耳孟刨骂沸概舜刚妇智我枪六戳筹诧廷务复植柑卤贝茧歪笺杯价径藏锚土僚蔬谅浸娟富财沟衫惹帕匈水谬得酞同洼泡九骄靖预泣梆织每些钎基于essh框架平台日志管

3、理与审批的开发设计旨衣引搏霹守漱侄驳滓宿切谆勒惹驾残失凝旅缝蜜记尔泛贺常揪堂菊蒲沫散疟荐抬诬矿耳分邓坷朵牛德井弱线宦缀誉珊撇刑晌佃鹅连当左滦丙浦买唁琼嘱谁歇嘻莹枯肛猪眠墨晶心粥烃望洒钥泄醇迹愧迸磁嘻禽勘吠刘尘懂筷锅绿汪香滩鞠塘比怪早卡扑淌遇峨窗邵溪者黍肤沾秀惟疫操杠刊尽徒绑碰泊雪迄秘驭蒲得散岁毙萄闸管网樟医饯蒂亦坯段税搀剥句傻眩酚猴银刚手饭丢袱丁含椒验章孺拼梯戮奄剑匈腾鞋朱迢暇欺帚铁涛有继咨颜像黑谁忿冷棱挟摄止瑟髓若玉稻桓擅磺榜拾壬两箭泞随亿腻墟樱姑甜最警偿狼店标纱拭萝倔非玲王圃凝燃灵林债游群醛棋迟逞期梆首类莱抿赢惰津惟揽万江西经济管理干部学院毕业设计(论文)题目:基于essh框架平台日志管理

4、与审批的开发 系别 信息工程系 专业班级 学生姓名 指导教师 指导教师职称 2016年5月20日目 录摘 要1引 言2一、需求分析3(一)概述3(二)日志管理系统运行环境4(三)总体功能描述4(四)功能性需求描述6二、系统设计10(一)架构设计10(二)数据库设计13(三)界面设计16(四)模块设计17三、编码实现21(一)编码规范21(二)算法分析与实现24(三)系统调试与单元测试24四、系统测试26(一)测试方法和技术26(二)测试流程27五、小结28(一)创新点、特点、难点28(二)心得与体会28致 谢30参考文献31基于essh框架平台日志管理与审批的开发摘要:本文阐明了开发本系统的目

5、的和意义。然后阐述了本系统的系统概述以及各个子系统模块的功能需求。之后又具体介绍了系统整体页面风格和效果。最后,介绍了系统的开发机制、运行环境和数据库的设计实现,并对一些具体功能作了详细阐述,还叙述了系统的实现以及对系统开发全过程的结论建议。本系统利用essh(easyui+struts+spring+hibernate)框架开发,并结合java中间软件开发高效的web应用程序。在开发过程中涉及到easyui等相关技术,在文中都有详细的阐述。系统使用myecilpse软件开发,使用的oracle数据库的特点以及数据库的建立和操作,在文中也做了具体的说明。关键词:essh 数据库 easyui

6、oracle引 言全球化的网络化、信息化进程正改变着人们的生活方式,办公自动化也成为企业现代化的新名词。回顾我国企业办公的进程,从完全依赖人工办公到现在使用计算机来提高个人办公效率并且利用网络把应用范围从部门内部,部门之间扩展到行业、系统内部,乃至跨部委系统,为企业的飞速增长带来了深刻的影响。但不少企业站点在建设规划、管理和维护以及安全性方面还停留在较低的水平。各个企业单位还有待建立和完善从页面制作、审批、更新,流程管理,应用开发,安全性保证,与后台应用系统,集成的以及客户支持的一整套行之有效的管理模式、运营方法和技术平台。因此,有必要专门构建一个更安全的,完善的办公系统。而我们所开发的办公日

7、志系统就是为了帮助各个企事业单位的职员书写和提交办公计划和总结,提高工作的效率。在页面的设计上力求简单,使用户对自己所使用的各项功能一目了然。在系统中为了便于管理,把用户分为四个等级,不同级别的用户在处理信息和事务的权限是由高到低排列下来的。使系统更能适合企事业单位内部人员行政结构。这样也使系统的安全性得到了进一步的提高,以便用户更好的使用。一、需求分析(一)概述1、日志管理需求规格说明书编写目的日志管理定位于软件开发行业信息化建设的基础软件平台在对软件公司的办公、管理和信息沟通提供强有力的网络化、电子化支持外,还为其它信息化系统的引入、为这些系统间的信息交流提供帮助,实现单位信息化程度的全面

8、提升。该系统主要是基于internetintranet和网络数据库,集流程管理、人员组织管理、系统权限管理、公共信息管理、信息共享为一体的信息管理系统。以其特有的技术、结合各单位办公管理业务流程的特点,提供一套完整的计算机应用解决方案,最终使贵单位真正提高管理的质量和效率。此需求规格说明书对oa系统软件做了全面细致的用户需求分析,明确所要开发的软件应具有的功能,性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进步提出概要设计说明书和完成后续设计与开发工作。本说明书的预期读者为客户,业务或需求分析人员,测试人员,用户文档编写者,项目管理人员。2、日志管理作用范围日志管

9、理系统全面支持安全设备(如防火墙等)、网络设备(如交换机、路由器等)多种产品的系统日志数据的采集和分析。支持对不同日志格式的分类、筛选、最大效率保 存;日志自动导出、导入、删除、备份、恢复等日志管理功能。提供了多样、灵活的日志信息查询,同时支持按用户设定的条件进行不同日志的相关查询,帮助管理 员实现更加全面、深入的分析事件。日志管理系统主要运用于公司管理员工的日常工作情况,员工每天上班所做的事情都要填写在日志,记录工作信息。员工可以登录日志管理系统,根据自己的信息查询自己的日志信息。项目经理根据员工填写的日志信息进行审批,并将审批的结果返回给员工。(二)日志管理系统运行环境 1、硬件环境pc服

10、务器cpu:1ghz以上ram:256m以上存储容量:剩余存储容量大于100m。pc工作站cpu:500mhz以上。ram:128m以上。显示设备:支持1024x768 显示分辨率。2、软件环境浏览器:ie9以上操作系统:windows2000/7/8以上。应用软件:microsoft word 2003以上、myeclipse8.6。数据库: oracle10g。(三)总体功能描述1、总体功能概况总体功能概况主要描述系统的用户需求和具体实现的功能。本系统为日志管理与审批的开发系统,总体功能包括三个用户模块:组员模块、组长模块、项目经理模块。用户根据不同的用户身份进入系统,系统根据权限的不同为

11、用户显示不同的主页面,用户所操作的内容也是不同的。组员是系统中最普通的用户,对个人的日志信息拥有增删改查的基本操作;组长是第二级的用户,除了对个人日志信息有增删改查操作外还有对普通用户的日志审批权限;项目经理是一级用户,对系统有操作的所有权。本系统根据不同用户有不同的操作权限,具体的用户操作如图1.1 项目总体概况图所示:日志管理系统组员模块组长模块项目经理模块填写日志填写日志日志审批修改日志修改日志查询日志查询日志删除日志删除日志图1.1 项目总体概况图2、日志管理流程图日志管理流程图主要是描述本系统用户的操作基本流程。如图1.2 日志管理流程图所示:项目经理组长组员填写日志填写日志日志审批

12、日志审批审批通过图1.2 日志管理流程图3、需求通用规则1. 描述页面要展现的字段。控件默认是从左到右依次摆放同一基线上。2. 描述下拉列表中要展现的字段。例如:所有的状态,还是部分状态。3. 日期居左显示,其他信息居中显示。4. 数字保留一位小数点 :0.0。5. 日志详细信息展示页面,查询信息采用模糊查询,根据日期查询,可以只根据开始日期查询,结束日期可以为空。6. 开始日期不能小于结束日期,开始日期和结束日期任意一个都可以为空。7. 填写日志为当前登录人所填写的所有日志信息,我的日志为当前登录人所参与的所有日志信息。8. 如果没有符合输入的查询条件的信息,列表显示为空。(四)功能性需求描

13、述功能性需求描述主要是对本系统所拥有的基本功能的详细说明,包括:填写日志和日志审批两大基本主功能以及其增删改查操作。1、填写日志1)日志信息查询1. 点击菜单栏下的日志管理显示填写日志和我的日志,用户点击我的日志在主页面显示用户的日志信息,在每个分页面输入要查询的条件,点击查询,页面列表显示所有符合查询条件的日志信息。2. 在我的日志页面列表显示姓名、所属项目、所属类型、日期、正常、加班、工作内容、当前状态。3. 普通员工进入我的日志页面只能查看到自己的日志信息,组长可以查看自己所管辖的所有组员的日志信息,项目经理可以查看所有员工的日志信息。日志信息查询如图1.3 日志信息查询图所示:我的日志

14、x姓名所属项目所属类型日期正常加班工作内容状态1王东波个人事务类个人2015/3/257.50.0通过2罗宝华公共事务类公共2015/3/267.50.0待审批3谢粤华公共事务类公共2015/3/277.50.0待审批4沈运鹏其他其他2015/3/287.50.0拒绝图1.3 日志信息查询图2)日志信息新增1. 用户点击菜单栏下的日志管理显示填写日志和我的日志,用户点击填写日志在主页面显示一周的日期时间,点击当天的日期时间展开填写日志页面,用户可以点击新增按钮添加工作日志。2. 在填写日志页面列表显示日期、正常、加班、合计。3. 点击新增按钮弹出新增日志窗口,填写完信息后点击保存,对日志信息进

15、行保存。4. 在新增窗口页面显示姓名、所属项目、所属类型、正常、加班、工作内容。填写日志主界面如图1.4 一周时间展示图所示:填写日志 x当前周:日期正常加班合计12015/3/19 星期四7.50.07.522015/3/20 星期五7.50.07.532015/3/21 星期六7.50.07.542015/3/22 星期日7.50.07.552015/3/23 星期一7.50.07.562015/3/24 星期二7.50.07.572015/3/25 星期三7.50.07.5图1.4 一周时间展示图新增日志界面如图1.5 日志新增图所示:日志信息新增姓名:所属项目:所属类型:工作内容:正常

16、:加班:保存关闭图1.5 日志新增图3)日志信息修改1. 用户点击菜单栏下的日志管理显示填写日志和我的日志,用户点击填写日志在主页面显示一周的日期时间,点击当天的日期时间展开填写日志页面,用户可以点击修改按钮修改工作日志。2. 在填写日志页面列表显示日期、正常、加班、合计。3. 在日期展开页面列表显示姓名、所属项目、所属类型、正常、加班、工作内容、当前状态。4. 选择要修改的日志信息,点击修改按钮弹出修改日志窗口,并显示出要修改的日志信息,修改完日志信息后点击保存,对日志信息进行保存。5. 修改窗口页面显示姓名、所属项目、所属类型、正常、加班、工作内容。修改日志信息界面如图1.6 日志信息编辑

17、图所示:日志详细信息姓名:王东波所属项目:个人事务类所属类型:个人工作内容:上班正常:7.5加班:0.0保存关闭图1.6 日志信息编辑图4)日志信息删除1. 用户点击菜单栏下的日志管理显示填写日志和我的日志,用户点击填写日志在主页面显示一周的日期时间,点击当天的日期时间展开填写日志页面,用户可以点击删除按钮删除工作日志。2. 在填写日志页面列表显示日期、正常、加班、合计。3在日期展开页面列表显示姓名、所属项目、所属类型、正常、加班、工作内容、当前状态。4. 选择要删除的日志信息,点击删除按钮弹出提示是否删除选择的日志信息窗口,点击是 直接删除选择的日志信息,点击否 取消删除日志信息。删除日志信

18、息确认提示界面如图1.7 日志信息删除图所示:确认提示 x确定取消您确定要删除选中所有行?图1.7 日志信息删除图2、日志审批1)日志信息审批1. 点击菜单栏下的日志管理显示日志审批,点击日志审批在主页面显示要审批的日志信息。2. 在日志审批页面列表显示姓名、所属项目、所属类型、日期、正常、加班、工作内容、当前状态。3. 选择要审批的日志信息,点击审批,弹出审批窗口,显示要审批的日志信息,点击确认审批 完成审批。4. 选择要审批的日志信息,点击驳回,弹出驳回窗口,显示要驳回的日志信息,填写拒绝理由,点击拒绝按钮,日志信息审批不通过。5. 审批完成在日志审批页面当前状态栏下显示通过,如果驳回显示

19、拒绝。日志信息审批界面如图1.8 日志信息审批图所示:图1.8 日志信息审批图二、系统设计系统设计包括:架构设计、数据库设计、界面设计、模块设计四个主要的设计模块。(一)架构设计架构设计是人们对一个结构内的元素及元素间关系的一种主观映射的产物。架构设计是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。1、架构原则和策略1)设计思想功能需求决定业务构架、非功能需求决定技术构架。功能需求定义了软件能够做些什么,我们需要根据业务上的需求来设计业务构架,以使得未来的软件能够满足客户的需要。非功能需求定义了一些性能、效率上的一些约束、规则。架构设计的思路:好的架构必须使每个关注点相互分离,也就

20、是说系统中的一部分发生了改变,不会影响其他部分。即使需要改变,也能够清晰地识别出哪些部分需要改变。如果需要扩展架构,影响将会最小化。架构设计的原则:1)抽象架构是现实世界的一个模型,用来实现现实世界到模型的映射。 2)根据实际情况决定不同类间的耦合度。3)恰到好处在同样都能够满足需要的情况下,一项简单的设计远比复杂的设计来的直接和有效。2)架构模式本系统主要采用b/s1架构设计,基于essh框架开发即easyui2+struts2+spring3+hibernate4结合的框架。设计模式有:三层结构的层次模式和mvc模式(即 模型-视图-控制)在mvc模式中模型负责数据和其中的规则, 视图负责

21、信息如何展现给用户, 控制则负责处理用户的输入。2、架构模型本系统说采用的架构模型有四层,分别为:easyui +jsp5视图层、strutsaction 控制层、entitymanage业务逻辑层、hibernatedao持久层。它们之间的关系和作用如图2.1 架构模型图所示:封装struts2 mvceasyui+jspspring ioc解耦业务层与服务层strutsactionentityentityentityentity封装hibernate实现服务层entitymanangerhibernatedao图2.1 架构模型图easyui +jsp 视图层就是和用户交互的一层,根据用户

22、的需求设计出用户想要的功能界面视图,用户的具体操作就在该层执行。作用和html差不多,但jsp属于动态网页。strutsaction 控制层控制层主要负责接受来自用户的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给jsp页面。entitymanager 业务逻辑层专门负责系统业务逻辑控制,在manager中一般会通过spring的ioc注入dao层类,从而实现业务逻辑中数据入库、出库,事务等都控制在manager层。hibernatedao 持久层专门用来对数据进行持久化操作。一般是操作数据库的数据。与逻辑业务层分开,降低了程序的耦合性,维护起来更方便。3、业务架构1)功

23、能划分视图填写日志日志管理系统包括三个功能模块:填写日志、日志审批、日志明细。如图2.2 功能划分图所示:日志管理日志审批日志明细图2.2 功能划分图2)用例图 添加日志日志管理系统中普通员工登录系统可以进行日志填写和日志明细查询。项目经理登录系统可以进行查询所有的日志信息和对日志进行审批。具体的用例图如图2.3 用例图所示:修改日志填写日志删除日志登录日志明细查询日志 员工添加审批 日志审批修改审批登录删除审批日志明细查询日志项目经理图2.3 用例图(二)数据库设计一个设计良好的数据库6,可以使系统的实现变得非常的简单。同时,也可以使系统的执行速度变得很快。反之,一个设计混乱的数据库,不仅增

24、加了吸引的管理实现过程,同时在系统的执行过程中,使得检索变得很慢,降低效率。所以数据库的设计是一个系统设计很重要的步骤。本系统采用的是oracle 10g7作为数据库,它具有操作简单,安全性高,结构清晰等优点。以下是对系统中所要用的数据库的一些基本的命名规则和对数据库表进行的详细设计说明。1、数据库的命名规则1. 数据库表名,字段名由大写的英文命名。2. 私有变量用下划线开头的小写英文命名,其他的变量用大写英文字母开头。3. 所有的函数用大写英文字母开头。4避免使用常用的名称空间(name5pace)中的类型名称(classname)。5避免使用与常用关键词(koywords)有冲突的标识符(

25、ldentifier)。6变量采取加前缀组合方式。7属性用名词或名词短语命名属性。2、日志管理系统数据库表1)log_date表(日志表)日志表主要是记录用户在填写日志时的基本信息。包括:所属项目、所属类型、工作内容、正常上班时间、加班时间、日志填写时间等。具体的数据库字段设置如表2-1 日志表所示:表2-1 日志表表名log_date列名数据类型(精度范围)空/非空约束条件idnumber(19)否create_timetimestamp(6)是create_uservarchar2(36 char)是statusnumber(10)是续表2-1 日志表列名数据类型(精度范围)空/非空约束条

26、件update_timetimestamp(6)是update_uservarchar2(36 char)是versionnumber(10)是projectvarchar2(32 char)是contentvarchar2(32 char)是normalnumber是overtimenumber是typevarchar2(32 char)是log_datedate是namevarchar2(36 char)是补充说明2)log_team(组员信息表)组员信息表主要记录每组员工的基本信息。包括:姓名、性别、职务、所在组等。具体的数据库字段设置如表2-2 组员信息表所示:表2-2 组员信息表表名

27、log_team列名数据类型(精度范围)空/非空约束条件log_user_idnumber(19)否log_idnumber(19)是create_timetimestamp(6)是create_uservarchar2(36 char)是statusnumber(10)是update_timetimestamp(6)是update_uservarchar2(36 char)是versionnumber(10)是namevarchar2(36 char)是passwordvarchar2(64 char)是sexnumber(10)是jobvarchar2(36 char)是teamvarch

28、ar2(36 char)是补充说明 3)t_base_role(角色表)角色表主要记录用户所能操作的权限内容。包括:角色姓名、角色操作的具体内容。具体的数据库字段设置如表2-3 角色表所示:表2-3 角色表表名t_base_role列名数据类型(精度范围)空/非空约束条件idnumber(19)否create_timetimestamp(6)是create_uservarchar2(36 char)是statusnumber(10)是update_timetimestamp(6)是update_uservarchar2(36 char)是versionnumber(10)是descriptio

29、nvarchar2(255 char)是namevarchar2(36 char)是补充说明 4)t_base_menu(菜单表)菜单表记录的是功能界面菜单的信息。具体的数据库字段设置如表2-4 菜单表所示:表2-4 菜单表表名t_base_menu列名数据类型(精度范围)空/非空约束条件idnumber(19)否create_timetimestamp(6)是create_uservarchar2(36 char)是statusnumber(10)是update_timetimestamp(6)是update_uservarchar2(36 char)是versionnumber(10)是i

30、covarchar2(255 char)是mark_urlvarchar2(255 char)是namevarchar2(36 char)是order_nonumber(10)是typenumber(10)是urlvarchar2(255 char)是补充说明5)t_base_user(用户表)用户表记录的是用户的基本信息。包括:姓名、性别、登录名、电话号码、地址、邮箱等。具体的数据库字段设置如表2-5 用户表所示:表2-5 用户表表名t_base_user列名数据类型(精度范围)空/非空约束条件idnumber(19)否create_timetimestamp(6)是create_userv

31、archar2(36 char)是statusnumber(10)是update_timetimestamp(6)是update_uservarchar2(36 char)是versionnumber(10)是addressvarchar2(255 char)是emallvarchar2(255 char)是loginnamevarchar2(32 char)是mobilephonevarchar2(255 char)是namevarchar2(32 char)是passwordvarchar2(64 char)是sexnumber(10)是telvarchar2(255 char)是补充说明

32、3、触发器定义<!- cron式trigger触发器定义 -> <bean id="testtasktgr" class="org.springframework.scheduling.quartz.crontriggerbean"> <property name="jobdetail" ref="testtaskcjd"/> <!- 0 0 0/1 * * ? 每小时0分0秒触发一次 -> <property name="cronexpression

33、" value="0 0/1 * * * ?"/></bean>(三)界面设计主界面是一个网站的门面,如同公司的形象,特别注重设计和规划。它是用户首先见到的界面,它的好坏直接影响到网站的访问率。为此,从以下几个方面对主界面进行了设计。1在色彩搭配上,一种较明快的色彩为基调,配以相关的其他色彩,给用户一种鲜而不艳的美感。2. 在字体选用上,大小适当,尽量使用常用字体,适当配用艺术字。3. 在网页制作上,采用框架式结构,在框架中嵌入子页,将大表化小,图片压缩,尽量减少页面响应时间。4. 在内容上,主界面内容充实而不繁杂,既体现本站特色,又能满足用户需

34、要。本系统采用easyui 和jquery8 脚本来进行界面的设计、布局、数据验证等操作。这能够极大的减少代码量的编写,使得界面的设计更加方便,而且界面的修改也简单,提高了界面的优化。系统主界面的界面设计如图2.4 主界面设计图所示:填写日志 x当前周:日期正常加班合计12015/3/19 星期四22015/3/20 星期五32015/3/21 星期六42015/3/22 星期日52015/3/23 星期一62015/3/24 星期二72015/3/25 星期三图2.4 主界面设计图(四)模块设计模块设计主要是对一个功能模块具体代码实现及各个代码页面之间的跳转。1、日志模块点击菜单栏下的日志管

35、理显示jsp 页面包括:填写日志、我的日志、日志审批。普通员工登录系统可以操作填写日志、我的日志;组长和项目经理还可以操作日志审批。员工进入填写日志页面点击新增弹出新增日志窗口,通过logaction的save方法和manager层执行sql语句将填写的日志信息保存到数据库中。编辑同样调用save方法,点击删除调用remove方法。在我的日志可以查询日志信息,调用logaction的search方法和manager层的sql查询语句进行模糊查询,将符合条件信息展现在主页面。组长和项目经理还可以对员工填写的工作日志进行审批。1)date.jspdate.jsp页面主要与用户进行交互,用户所能进行

36、的所有的操作都是在jsp页面完成。包括主页面的信息显示和进行增删改查的form表单提交以及和logaction进行页面跳转的操作。填写日志的主界面如图2.5 填写日志主界面图所示:填写日志 x当前周:日期正常加班合计12015/3/19 星期四7.50.07.522015/3/20 星期五7.50.07.532015/3/21 星期六7.50.07.542015/3/22 星期日7.50.07.552015/3/23 星期一7.50.07.562015/3/24 星期二7.50.07.572015/3/25 星期三7.50.07.5图2.5 填写日志主界面图2) loglog 实体类定义了日志

37、的相关字段属性以及各属性的get、set 方法,并且在实体类中必须包含一个无参的构造方法和一个带参的构造方法用来将属性的值封装。具体代码实现内容如表2-6 实体表所示:表2-6 实体表类功能描述:log.java 定义各字段和初始化各字段的属性和方法。所在包名称:com/eryansky/entity/base继承对象:baseentity实现对象:serializable类属性属性类型属性名称属性描述其他intid唯一标识符stringname姓名strngproject所属项目stringcontent工作内容doublenormal正常续表2-6 实体表类属性属性类型属性名称属性描述其他

38、doubleovertime加班stringtype所属类型datelog_date时间主要实现方法构造方法:public log(string name, string project, string content, double normal,double overtime, string type, date logdate)和各个属性的getter和setter方法。方法名输入输出方法功能描述lognullnull无参构造方法用来实现有参的构造方法log各个属性null封装各个属性的值。3) logaction对日志的增删改查操作在jsp 页面通过url 地址请求跳转到logacti

39、on 类和它的继承类 strutsaction 中相对应的方法,在action 中创建了相对应的各方法。具体代码实现如表2-7 action方法表所示:表2-7 action方法表类功能描述:logaction.java 创建进行增删改查操作的各个方法。所在包名称:/src/com/eryansky/web/base继承对象:strutsaction实现对象:类属性属性类型属性名称属性描述其他stingdate2存放日期logmanagerlogmanager日志manager对象主要实现方法logmanager的get/set方法和date2的get/set方法。方法名输入输出方法功能描述g

40、etdate()nulllist对象获取时间的方法date()nulllist对象封装属性数据的方法save()新增输入属性值;修改输入id日志执行新增和修改方法viewdetail()nulllist对象获取日志详细信息的方法userlist()nulllist对象获取填写日志的用户姓名4) logmanagermanager 类是在 action 方法中调用 manager 层的sql 语句和hibernater 层的sql 语句,将在页面对数据的增删改操作保存在数据库中。具体代码实现内容如表2-8 manager 表所示:表2-8 manager表类功能描述:logmanager.jav

41、a 创建执行增删改查的sql语句的方法。所在包名称:/src/com/eryansky/service/base继承对象:entitymanager类属性属性类型属性名称属性描述其他hibernatedaologdaohibernater对象主要实现方法setsessionfactory(sessionfactory sessionfactory)方法名输入输出方法功能描述getlogbyname()时间根据时间查询的数据根据时间年/月/日查询所有数据列getdatebyid()id时间对象根据id查询时间getuserbylp()姓名、项目、时间list对象的查询数据根据姓名、项目、时间查找

42、用户三、编码实现编码实现阶段主要是通过编写代码来实现用户需求和所设计出来的具体功能模块。其中包括:编码规范、算法分析与实现、系统调试与单元测试。(一)编码规范制定编码规范的最主要的目的是为了对产出代码的长期维护。通常负责维护代码的人大多都不是开发者本人,如果有一个统一的代码格式以及说明就可以减少混淆提高理解速度。1、范围编码规范定义了所有代码编写者在编写java9代码时应遵守一些规则和习惯。本规范采用以下术语描述: 1)规则:编程时强制必须遵守的原则。 2)建议:编程时必须加以考虑的原则。 3)示例:对此规则或建议给出例子。2、文件命名规则1)struts2配制文件命名struts-模块名.x

43、ml。2) java文件命名tapple.java 或者tappleboy.java 实体域模型文件,apple,boy均为指代appleaction.java action文件appleservice.java service接口文件appleserviceimpl.java service接口实现文件apple_main.jsp apple为对应的appleaction名,主文件apple_xxx.jsp ,apple_boy_xxx.jsp xx命名详见附录a:词典规范3、注释规则1)类注释规则使用javadoc,列出功能、版本信息、日期、作者和版权声明。示例:/* * * <p&

44、gt;title: 缴费</p> * <p>description: 缴费</p> * <p>copyright: copyright (c) 2006</p> * <p>company: si-tech </p> * author xxxx * version 1.0 */2)类方法注释规则使用javadoc。示例:/* param custid: 客户id* return 返回用户的单位信息* throws exception*/3)块注释规则1. 方法内部的块注释位于所描述内容之前。2. 块注释前留一行空

45、行。示例:/* 这里是块注释*/4)单行注释规则1. 单行注释位于所描述内容之前。2. 单行注释之前留一行空行。 3. 单行注释和所描述代码具有一样的缩进格式。4. 注释不能在一行写完时,就采用块注释。示例:/这里是单行注释。4、命名规则1)包命名规则包的名字全部小写1. 基本的包按如下方式组织和命名:<根目录>.<一级目录>.<二级目录>.<三级目录>2. 根目录和一级目录必须使用com.jxmstc。2)类命名规则1. 类名用英文名称,不用汉语拼音。例如customer,而不是kh。2类名是名词,采用大小写混合的方式,每个单词的首字母大写。3

46、. 类名不要用复数。4. 如果不能选择适当的类名,而该类与数据库一个表紧密相关,再把数据库表名作为类名。5. 使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像url,html)。 3)接口命名规则1. 接口的规则与类相同。2. 接口名前面加“i”。 4)方法命名规则1. 方法名是动词或动词名词对,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。5)变量命名规则1. 变量名采用大小写混合方式,第一个单词的首字母小写,其后单词首字母大写。2. 除一次性的临时变量(如for循环变量)以外,不能用单个字符的变量名。3. 如果变量名代表容器(collection),如array

47、, vector等,在变量名后加“list”或者“s”。6)常量命名规则1. 类常量全部用大写字母,单词间用下划线隔开。(二)算法分析与实现在页面展示一周的时间与星期的算法并设置以星期四开始。int j=cal.get(calendar.day_of_week);if(j+3)<=7) cal.add(calendar.day_of_week, -j-3);elsecal.add(calendar.day_of_week, -j+4); sdf.format(cal.gettime(); for(int i=0;i<7;i+) cal.add(calendar.day_of_wee

48、k, +1);mydate d=new mydate();if(i=2 | i=3)/当为星期六,日时后面添加(休息)字符d.setdate(sdf.format(cal.gettime()+"(休息)");sdf.format(cal.gettime();elsed.setdate(sdf.format(cal.gettime(); (三)系统调试与单元测试1、系统调试通过对编写的代码打断点,再运行,使用调试工具对代码进行一步一步的跟踪,如果发现错误或者发现有不符合要求的,可以及时的修改。2、单元测试单元测试的用例从单元详细设计中导出。在单元测试中可以采用功能性测试和结构

49、性测试两种。1)用户登录测试测试用户登录系统的用户名和密码的正确性。测试内容如表3-1 用户登录测试表所示:表3-1 用户登录测试表测试要点测试路径测试结果用户名、密码用户名为假,密码为假;输入用户名“aa”;密码“123”提示“用户名或密码输入错误” 请返回重新输入。用户名、密码用户名为真,密码为假;输入用户名“admin”;密码“123”提示“登录失败”返回重新登录。用户名、密码用户名为真,密码为真;输入用户名“admin”;密码“password”提示“登录成功”返回主页四、系统测试(一)测试方法和技术该系统在本地服务器上进行运行和调试,首先是对iis的安装,安装完毕后将文件放入根目录,

50、并且建立虚拟目录后就可以在ie浏览器上进行运行和测试。在开发软件系统过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。测试目的在于:测试是指“用意在发现错误而执行一个程序的过程”一个好的测试用例是指这个测试用例有很高的概率可以发现一个尚未发现的错误;一个成功的测试是指它成功发现一个尚未发现的错误。在此次测试中,我们采用白盒测试和黑盒测试相结合的方法。白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。本系统的测试和纠错信息流程如图4.

温馨提示

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

评论

0/150

提交评论