收藏 分享(赏)

学生请假管理系统.docx

上传人:cjc2202537 文档编号:6585322 上传时间:2019-04-18 格式:DOCX 页数:37 大小:331.13KB
下载 相关 举报
学生请假管理系统.docx_第1页
第1页 / 共37页
学生请假管理系统.docx_第2页
第2页 / 共37页
学生请假管理系统.docx_第3页
第3页 / 共37页
学生请假管理系统.docx_第4页
第4页 / 共37页
学生请假管理系统.docx_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、中原工学院软件学院软 件 工 程 实 践 一 设 计 任 务 书姓名 * 软件工程 专业 JAVA123 班题目 学生请假管理系统的开发设计任务开发一个基于 Web 的学生请假管理系统,包括教师端和学生端。主要功能包括:1. UI 设计:界面(参与)2. 学生端:请假申请、销假申请、查询自己请假记录;(独立完成)3. 教师端:请假审批、销假审批、查询学生请假记录;(参与)开发工具:Java、JSP、MySQL、Photoshop、MyEclipse8.6时间进度第 1 周(9-99-13 ):完成需求分析、 UI 设计第 2 周(9-169-21 ):完成代码第 3 周(9-249-29 ):

2、完成报告原 主始 要资 参料 考与 文献01 http:/ 程序设计实用教程例M北京:电子工业出版社. 2003.503李兆峰.庞永庆.java 程序设计与项目实践M北京:电子工业出版社.2011.6指导教师签字: 年 月 日学生请假管理系统摘 要当前信息化时代,讲究高效,准确,及时的完成事情,近年来学校都在开展信息化部署,实现了多媒体教学,网上提交作业,在线考试等学生考勤对学校教务管理是至关重要,在以前,学生请假要去找班主任或者领导批准,并且不一定每次都能顺利的找到班主任,完成请假批准。如果学生不在学校,没办法向班主任提交请假单;对于学生出勤检查,是学生会根据纸制名单逐一点名,或老师根据学生

3、上交课堂作业来判断学生是否来上课。这些方法往往具有考勤差错率比较高,考勤效率也比较慢,没有一个总体的的记录和整理,并且纸制的点名册容易丢失遗漏,耽误时间等缺点。针对以上的问题,开发一种针对学生请假的考勤网上管理系统,通过请假管理系统,任课老师可以在课堂上直接登录考勤记录网站进行课堂查看哪些学生请假,记录学生考勤情况等。此外,在其他时间,班主任以及其他老师也可以登录该网站查询学生在某课程的出勤情况。该系统是基于 Java web 的简单型设计,它体现了对一些简单的 JSP 标签语言的运用,该系统界面简单、操作方便。根据实际需要将系统分为学生端和教师端,学生请假和教师批假都需要首先登录,学生端实现

4、了学生申请请假、申请销假、查询自己请假记录功能;教师端实现了教师对学生请假的批准、销假批准以及查询学生的请假记录功能。关键词: 学生; 请假管理; Java Web目 录摘 要 .2第 1 章 项目分析 11.1 问题描述 .11.2 技术分析 .11.3 工程进度计划 .2第 2 章 系统分析与设计 32.1 系统分析 .32.1.1 参与者 32.1.2 用例图 32.1.3 用例及用例规约 42.1.3.1 UC001 登录 .42.1 .3.2 UC002 申请请假 .52.1.3.3 UC003 申请销假 .62.1.3.4 UC004 查询请假记录 .72.2 系统设计 .72.2

5、.1 顺序图 82.2.2 类图 112.2.3 系统体系结构设计 112.2.4 设计时序图 12图 2.10 学生销假申请设计时序图 142.3 数据库设计 .142.3.1E-R 图 152.3.2 关系模式 162.3.3 表的设计 16第 3 章 实现与测试 193.1 请假申请功能 .203.1.1 活动图 213.1.2 界面 213.1.3 代码 213.1.4 测试用例 223.2 销假申请功能 223.2.1 活动图 223.2.2 界面 223.2.3 代码 223.2.4 测试用例 223.3 请假记录查询 223.3.1 活动图 233.3.2 界面 233.3.3

6、代码 233.3.4 测试用例 233.4 登录功能 .233.4.1 活动图 233.4.2 界面 233.4.3 代码 243.5.4 测试用例 24第 4 章 结束语 25附录 A: 附加图、表 .29附录 B: 主要源程序 .29赵万仲:学生请假管理系统的开发1第 1章 项目分析随着计算机的发展与不断进步,各个领域都出现了新的技术,曾经各种规模之间的竞争已经发展成为技术之间的竞争,管理和人才之间的竞争,然而计算机技术的发展也离不开软件的更新,在软件不断更新和替换的过程中已经渗透到各个领域,政府机关,各大高校等都不断向智能方向发展,学生请假也成为一件棘手的事情,为了请假学生需要写请假条找

7、老师批准,结果是这个时候老师不一定在,另外学生需要请假时不一定在学校,所以为了给广大师生提供方便,我们需要开发软件系统学生请假管理系统。1.1 问题描述要完成这个系统最大的问题就是所学知识是有限的,在完成其中某些功能时候所需要的可能就完全没有接触过,所以只能用一些简单的功能代替或者替换掉那些用目前的水平所不能实现的功能,再者就是对目前所需求的不是很明确,比如要做出一个请假管理如何去设置友好界面让大家都喜欢适应去使用,如何把系统做到什么程度才能够投入使用,这些都是所面临的棘手问题。1.2技术分析该系统用到 MVC 设计模式,总共建立了五个包,界面 View、数据对象DO、数据库连接 DB、数据库

8、操作 DAO、控制层 Control、业务层 BO;DO 层是对数据对象的封装,DB 层是连接数据库,DAO 层是包含对数据标的基本操作,BO 层是所有和业务相关的关于对数据的判断等,调用的是 DAO 层然后返回一个结果,Control 层是为了获取用户参数并封装,同时调用 BO 层,再根据调用得到的不同的结果在调用不同的 View 层,将处理结果显示给用户。xxx:学生请假系统管理2BOControlDAODBDOView图 1.1 包图1.3工程进度计划实际开发过程中,开发周期可以分为三个阶段:第一阶段:成果:(1)需求分析(2)对数据库进行设计目标:设计出适合学生请假管理系统的数据库;完

9、成数据库的连接 时间:一周第二阶段:成果:完成 JSP 页面和系统代码目标:能在编译器中有效正确运行。时间:一周第三阶段:成果:写报告;目标:完成系统报告。时间:一周xxx:学生请假系统管理3第 2章 系统分析与设计学生请假管理系统必须通过正确的用户名的密码方能进入系统,系统分为两大模块,学生端和教师端,学生端和教师端分别有三个模块,学生端分为请假申请、销假申请、个人请假记录查询,教师端分为请假审批、销假审批和学生请假记录查询;学生提交的请假申请需要教师的审批,只有批准之后学生方可提出销假申请。2.1 系统分析该系统有两个参与者,分别为学生和教师,学生请假需首先得到教师的批准方可奏效,学生与教

10、师都需使用自己的工号作为用户名和密码进行登录。2.1.1 参与者学生、教师2.1.2 用例图System假 假假 假 假 假假 假 假 假假 假 假 假 假 假假 假图 2.1 用例图xxx:学生请假系统管理42.1.3 用例及用例规约请假管理系统学生端共包含 1 个参与者、4 个用例。用例的编号及名称如表 1 所示:表 2.1 用例列表用例编号 用例名称 参与者UC-001 登录 学生UC-002 申请请假 学生UC-003 申请销假 学生UC-004 查询请假记录 学生2.1.3.1 UC001 登录参与者学生需要用户名和密码登录到系统,才能进行相应的操作,系统中设置学生的登录用户名为学号

11、,初始化密码为学号.表 2.2功能编号 UC-001 功能名称 登录前置条件 参与者通过浏览器打开请假管理系统的登录页面基本事件流 1. 系统要求参与者填写用户名和密码。2. 参与者填写相应信息,学生输入学号作为用户名,密码初始值为学号。3. 系统验证用户输入信息是否正确备选流 1.用户名和密码输入错误如果系统检测到用户输入的用户名和密码与数据库中不一致,给予用户“用户名和密码不正确”的错误提示,并要求用户重新输入。后置条件 如果用例成功,系统进入相应权限页面界面原型xxx:学生请假系统管理5参与者 学生2.1.3.2 UC002 申请请假该用例的主要参与者为学生,学生通过系统填写请假申请单,

12、请假申请单将会提交给辅导员审批。表 2.3功能编号 UC-002 功能名称 申请请假用例描述 学生创建新的请假申请单,录入请假资料,创建一个请假申请流程前置条件 学生正常登录到系统中,并打开请假管理页面基本事件流 1、 学生选择创建请假申请单,系统自动查询当前的学生是否存在没有销假的记录,如果存在没有销假的请假记录,执行异常流1.1,如果不存在未销假记录,执行基本事件流 22、 系统展示申请单录入界面3、 学生录入学生学号、姓名、请假事由(原因、去向),开始时间、结束时间,联系方式(个人联系方式、家长联系方式)4、 学生提交申请单,系统进行数据校验,依据业务规则 C,如果数据校验不合法,执行分

13、支流 4.1,如果数据校验合法,执行基本事件流 55、 系统为当前的请假申请单生成唯一的编号,保存该请假申请单6、 将该流程推进到下一环节系统应该向学生展现请假申请单的最终页面,用例结束分支流 4.1 请假信息填写有误,显示填写不正确的信息提示,并要求学生重新填写,显示填写请假申请单的页面。异常流 1.1 系统显示学生没有销假的记录详情1.1 学生确认自己的请假记录是否属实,用例终止后置条件 1、 系统将保存该条请假记录。2、 创建新的请假单并生成唯一的申请编号3、 创建新的请假申请流程实例4、 记录提交后不能够再修改xxx:学生请假系统管理6界面原型 无业务规则A、 包括学生姓名、辅导员姓名

14、、请假开始时间(必须选择当天及当天之后的时间)、请假结束时间(大于请假开始时间),请假理由,家长联系电话B、 系统首先判断是否存在没有销假的记录,存在的话,将该记录显示给当前学生学生进行确认,如果确认是没有销假,学生继续执行销假流程,否则,辅导员进行异常处理C、 学生姓名、辅导员姓名、请假开始时间(必须选择当天及当天之后的时间)、请假结束时间(大于请假开始时间),请假理由,家长联系电话信息为必填,不能为空。联系方式是否合法,请假开始时间是否在请假结束时间之前。执行者 学生涉及的实体1、 学生属性:学号、姓名、班级、性别、联系方式、宿舍、标志变量(tag=1)2、 请假申请单属性:学生(学号、姓

15、名),请假事由(原因、去向),开始时间、结束时间,联系方式(个人联系方式、家长联系方式)、操作 1(已批准、待批准)、操作 2(申请销假、已销假、未销假)2.1.3.3 UC003 申请销假该用例的主要参与者为学生,学生通过系统提出销假申请,若申请成功,此时请假信息中操作 2 的状态将修改为申请销假,否则提示申请销假失败。表 2.4功能编号 UC-003 功能名称 申请销假前置条件 参与者通过浏览器打开请假管理系统的登录页面成功登录进入系统主页面基本事件流1. 学生发出销假申请,并等待系统验证2. 如果提示申请成功,执行基本事件流 33. 等待辅导员销假xxx:学生请假系统管理74. 如果提示

16、申请失败,执行基本事件流 55. 提示申请销假失败,请重新申请备选流 无后置条件 如果用例成功,系统进入相应权限页面界面原型 无参与者 学生2.1.3.4 UC004 查询请假记录该用例的参与者为学生,学生通过系统提出请假记录查询,若查询成功,学生请假的记录将会显示在页面上。表 2.5功能编号 UC-004 功能名称 查询请假记录前置条件 参与者通过浏览器打开请假管理系统的登录页面成功登录进入系统主页面基本事件流1.学生发出查询请假记录,并等待系统验证2.如果提示验证成功,执行基本事件流 33.显示请假记录4.如果提示验证失败,执行基本事件流 55.提示查询失败或者无请假记录,请重新申请备选流

17、 无后置条件 如果用例成功,系统进入相应权限页面界面原型 无参与者 学生2.2 系统设计该系统分为 3 个部分,第一部分是登录,学生和教师都需要登录,第二部分是学生端,学生端 3 个功能学生申请请假、学生申请销假、查询个人请假记xxx:学生请假系统管理8录,第三个部分是教师端,教师端 3 个功能教师批准请假申请、教师批准销假申请、教师查询学生请假记录。2.2.1顺序图seq一 一 true一 一 false一 一一 一: 一 一: 一 一 一 一 一 : 一 一 一 一 一 : 一 一 一 一1 : 一 一 一 一 ()2 : 一 一 一 一 一 一 一 一 ()3 : 一 一 一 一 一 一

18、 ()4 : 一 一 一 一 一 一 一 一 ()5 : 一 一 一 一 一 一 ()6 : 一 一 userDO7 : 一 一 一 一 ()8 : 一 一 一 一 一 一 一 一 ()9 : 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 ()图 2.2 登录时序图xxx:学生请假系统管理9seq一 一 一 一 一 一 一 一 一 一 一 一 一 一一 一 一 一seqtruefalseseq一 一 一 一 一 一 一 一 一 一 一 一一 一 一 一: 一 一 : 一 一 一 一 一 一 一 : 一 一 一 一 一 一 一 : 一 一 一 一 一 一1 : 一 一 一 一

19、一 一 ()2 : 一 一 一 一 一 一 一 一 一 一 一 ()3 : 一 一 一 一 一 一 一 ()4 : 一 一 一 一 一 一 一 一 一 ()5 : 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 ()6 : 一 一 一 一 一 一 ()7 : 一 一 一 一 一 一 一 () 8 : 一 一 一 一 一 一 一 一 ()9 : 一 一 一 一 一 一 一 一 一 一 ()10 : 一 一 一 一 一 一 ()11 : 一 一 一 一 一 一12 : 一 一 一 一 一 一 ()13 : 一 一 一 一 一 一 ()14 : 一 一 一 一 一 一 一 一 一

20、 一 一 一 一 一 一 一 ()图 2.3 学生请假申请时序图xxx:学生请假系统管理10seq一 一 一 一 一 一一 一: 一 一 : 一 一 一 一 一 一 一 : 一 一 一 一 一 一 一1 : 一 一 一 一 一 一 ()2 : 一 一 一 一 一 一 ()3 : 一 一 一 一 一 一 一 一 ()4 : 一 一 一 一 一 一 一 一 一 一 一 一 一 一 ()图 2.4 学生销假申请时序图: 一 一 : 一 一 一 一 一 一 一 : 一 一 一 一 一 一 一 : 一 一 一 一 一 一1 : 一 一 一 一 ()2 : 一 一 一 一 一 一 一 一 ()3 : 一

21、一 一 一 一 一4 : 一 一 一 一 一 一 ()图 2.5 学生请假查询时序图xxx:学生请假系统管理112.2.2类图student+Sname+Sid+Sclass+Ssex+Sphone+Sdorm+tagteacher+Tname+Tid+Tsex+Tgrade+Tphone+tagrecord+Sid+Sname+date+reason+Sphone+Tname+operate1+operate2Suser+Sid+SpasswdTuser+Tid+Tpasswd图 2.6 类图2.2.3系统体系结构设学生请假管理系统统学生端 教师端学生申请请假学生申请销假学生查询请假教师审批

22、请假教师审批销假教师查询请假登录图 2.7 体系结构图xxx:学生请假系统管理12该系统包括基本的 3 各模块,登录、学生端、教师端。学生和教师在登录成功时分别进入不同的页面进行操作,学生端进行请假申请、销假申请、查询个人请假;教师审批请假、审批销假、查询学生请假记录。2.2.4 设计时序图altresultValidate=trueresultvalidate=false: 一 一Login.jsp StuMain.jsp LoginDOLoginDAOLoginBOLoginControl user1 : doPost()2 : doPost() 3 : create()4 : resul

23、t:l=LoginValidate()5 : create()6 : string := exite()7 : resultDAO8 : resultValidate9 : doPost()10 : doPost()图 2.8 登录设计时序图该图是学生端登录设计时序图,首先学生发送请求到控制类,然后跳出登录页面,学生填写登录信息并提交到控制类,控制类封装数据创建对象调用逻辑层进行数据校验并返回结果,逻辑层调用 DAO 层最终根据结果判断如果登录成功将跳转到学生端主页,如果登录失败将给以提示信息并请重新登录。xxx:学生请假系统管理13alttruefalse: 一 一Aleave.jsp Le

24、aveControl LeaveBO RecordsDOLeaveDAONleave.jsp1 : Http一 一 doPost()2 : checkleave()3 : SecLeave()4 : create()5 : LeaveRecords6 : null7 : 一 一 一 一 一 一 一 一 doPost()8 : !null9 : 一 一 一 一 一 一 一 doPost()altreturn=truereturn=falsealtifsuccess=trueifsuccess=falseAsuccess.jsp: 一 一Aleave.jsp LeaveControl LeaveB

25、O LeaveDAORecordsDO10 : 一 一 一 一 一 一 ()11 : doPost()12 : create()13 : LeaveValidate()14 : return15 : save()16 : addLeave()17 : ifsuccess18 : doPost()19 : doPost()20 : doPost()图 2.9 请假申请设计时序图xxx:学生请假系统管理14该图是学生请假申请设计时序图,首先学生需要成功登录,发出请假申请,这时候控制类会自发调用逻辑层,逻辑层调用 DAO 层,如果该学生之前请过假并且未曾销假,这时该学生是不能够再请假的,倘若该学生发

26、出请假申请,系统将会把该学生之前的请假未销假记录显示出来,如果没有未销假记录,将会显示请假申请页面,学生需要填写请假申请单将请假详细信息填写并提交倘若正确无误,系统将会提示请假申请成功。altresult=trueresult=false: 一 一XJSucess.jsp XJError.jsp StudentControl StudentBO StudentDAO RecordsDO1 : doPost()2 : XJValidate()3 : XJUpdate()4 : create()5 : return6 : result7 : doPost()8 : doPost()图 2.10 学

27、生销假申请设计时序图该图是学生销假申请设计时序图,在学生成功登录之后,学生在申请请假时候必须不存在未销假记录,所以在学生请假完成到校报到后必须进行销假,然而这时需要发出销假申请,这时候在业务逻辑层将会给予判断,如果销假申请成功将会提示申请成功,如果有错误将会提示申请失败或者不存在未销假记录。2.3 数据库设计数据库在该系统中是为了存储数据,学生所提交的请假记录是通过保存到数据库中来实现申请请假、销假等功能的,在我们目前所学的有限的知识内,没有数据库该系统是没法运行和实现的。xxx:学生请假系统管理152.3.1 关系模式(1)学生信息:(学号、姓名、班级、性别、宿舍、联系方式、tag)(2)教

28、师信息:(工号、姓名、联系方式、性别、年级、tag)(3)登录:(用户名(学号、工号),密码)(4)请假信息:(学号、姓名、事由、请假开始时间、请假结束时间、联系方式)2.3.2 E-R图E-R 图在数据库设计里面是至关重要的一步,它是整个数据库设计的关键,下面使用实体联系(E-R)模型来描述系统的概念结构,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑设计打下基础。图 2.11 E-R 图请假记录理由开始时间学号操作 2操作 1结束时间姓名联系方式xxx:学生请假系统管理16用户 1教师 n学生 n属于姓名联系 班级学号性别宿舍Tag属于性别 年级电话姓名工号 Tags用

29、户名:学号、工号密码2.3.3表的设计表 2.6 用户登录信息表(login)编号 字段名称 数据类型 约束条件 说明1 userid Varchar(14) 无 学号、工号2 password Varchar(12) 无 密码3 Tag Varchar(2) 无 标志该表是用户登录信息表,表中包括 3 个属性,用户名和密码、还有标志变量 tag,tag 是为了控制学生端和教师端,用户名分别为学号和教师的工号;表 2.7 学生信息表(Student)编号 字段名称 数据类型 约束条件 说明1 sid Varchar(14) 无 学号2 Sname Varchar(20) 无 姓名xxx:学生请

30、假系统管理173 Classes Varchar(20) 无 班级4 Ssex Varchar(6) 无 性别5 Sphone Varchar(12) 无 联系电话6 Dormitory Varchar(6) 无 宿舍7 Tag Varchar(2) 1 标志该表是学生信息表,表中包括 7 个属性,都是字符串类型,其中 tag 标志变量默认为 1,并且不可修改;表 2.8 教师信息表(teacher)编号 字段名称 数据类型 约束条件 说明1 tid Varchar(14) 无 工号2 tname Varchar(16) 无 姓名3 tsex Varchar(4) 无 性别4 grades V

31、archar(20) 无 所带年级5 tphone Varchar(12) 无 电话6 tag Varchar(2) 2 标志该表是教师信息表,表中包括 6 个属性,都是字符串类型,教师也包括一个标志变量 tag,也存在一个默认值为 2 ,并且不能修改;表 2.8 请假信息表(leaverecords)编号 字段名称 数据类型 约束条件 说明1 sid Varchar(14) 无 学号2 Sname Varchar(16) 无 姓名3 Starttime date 无 开始时间4 endtime date 无 截止时间5 Sphone Varchar(12) 无 联系电话6 Operate1

32、Varchar(20) 操作 17 Operate2 Varchar(20) 操作 28 reason Varchar(255) 无 理由该表示请假信息表,包括 8 个属性,其中有字符串和日期类型,操作 1 和操作 2 分别是默认值,其值是根据学生的请假申请成功,销假以及教师的审批有关。xxx:学生请假系统管理18第 3 章 实现与测试每一个项目的核心部分都是功能的实现,功能的完成标志着一个系统的完成,然而这些结果都需要一个需求和设计来作为基本的要求,以下就是该系统详细功能的实现过程:需求分析:需求分析阶段我采用了 StarUML 工具做了详细的分析,根据自己的需要画出了包图、时序图、用例图、

33、类图、活动图、设计时序图等所需要的几类基本图,项目的框架是根据包图来创建的,时序图主要就是项目的每一个功能所要求的基本流程,设计时序图就是将时序图给详细化,具体到每一步所走的流程返回什么样的数据或者类型,也就是说画设计时序图时基本上已经把代码在脑子里有了型,用例图其实就是项目所有的功能,每一个用例就代表一个基本的功能,数据库的设计是根据类图来实现的,类图就表示了数据库中的表以及各表之间的关系。界面设计:用户界面设计要求友好合理,要充分考虑到用户的操作习惯,而且要有良好的显示效果。此外界面的配色方案要协调,使用的主色,背景色,前景色,按钮大小,文字,格式,表格等要统一标准。由于该系统主要用于公司

34、人员管理的,所以界面框架的主色采用较为严肃的浅蓝色,在此基础上用到了 PhotoShop 技术,dreamweaver 以及 css 和 Java script 等,里面的登录那个信息是一个图片用 ps 加工修改写上了艺术字,界面的代码是在 dreamweaver 里面直接设计好的,然后将代码复制粘贴过去,因为在 dreamweaver 里面设计的界面在 MyEclipse 里面是不能运行的,需要一个脚本来支持,所以只需要在MyEclipse 里面建好 jsp 页面只需将 dreamweaver 里面 body 里面的东西复制粘贴到 MyEclipse 里面就可以运行了;每一个界面里面都有一个

35、表格,表格里面有许多其他的元素之类,比如:按钮,标题,下拉框等许多细小的知识,外面有一个表单,这个表单是必须有的,他是为了在前台与后连接时候提交一个数据来运行这个项目的;在这些界面里面,时间是用 js 来完成的,统一的 css 样式表;还有就是在查询过程中将所显示的数据设置为某一属性他将无法在查询显示这个页面来任意修改一些信息功能描述:首先这个系统除了界面其他的代码分别写在 5 个包中,第一个DO 包,它里面从某种意义上说在这个包里面的每一个类都是创建某一个实例xxx:学生请假系统管理19的方法,它里面定义了相对属性,以及 get()和 set()方法;第二个是 DAO包,它里面是对于每一个管

36、理模块的一些基本小的功能的实现,说白了主要就是增删改查之类的它是对数据库语句的一个应用;第三个包是 DB 包,这个包可以说是只为了一件事,就是数据库的连接,之所以这样写专门用一个包来写关于数据库的连接目的只是为了看到数据与的封装,体现一个面向对象的思考,从而在某些方面也能够减少代码的重复率,提高代码的可读性;第四个包是control 包,这个包是最重要的,因为在 web 应用开发的过程中每一个项目要想与前台数据连接并能够成功把数据相互传递,servelet 里面有两个方法,一个是doGet(),一个是 doPost(),两者最大的区别就是前者对数据没有保密,就是随时都会泄露一些重要的信息,因为

37、每一提交的表单都会随着浏览器的浏览网址显示出来,然而要想从前台获得数据,就好比添加员工就得用到客户端所发出的请求 request.getParameter()得到。第五个包是 BO 包,这个是业务逻辑层,主要是调用 DAO 包里面的方法,数据校验等功能。在该系统中我主要完成的是学生端的功能,以下为学生端的功能:3.1 请假申请功能在学生请假申请这个功能里面其实所做的就是对数据的添加,界面是简单采用了 CSS 样式的界面,如果学生登录成功点击申请请假,如果该学生存在未销假记录系统将会把该学生的未销假记录显示出来,如果不存在未销假记录,此时学生请假信息界面会显示出来,在学生填写完请假信息出发右下方

38、的一个提交按钮,倘若提交成功会提示申请成功,如果失败会跳转到信息填写页面并提示错误信息。xxx:学生请假系统管理203.1.1活动图一 一 一 一一 一 一 一 一 一 一 一 一 一 一 一 一 一一 一 一 一一 一 一 一 一 一 一 一一 一 一 一 一 一一 一 一 一 一 一 一 一 一 一 一图 3.1 学生申请请假活动图3.1.2界面图 3.2 学生请假申请页面xxx:学生请假系统管理213.1.3代码public void doPost(HttpServletRequest request, HttpServletResponse response)throws Servle

39、tException, IOException request.setCharacterEncoding(“UTF-8“);response.setContentType(“text/html;charset=UTF-8“);String str=“已销假“;String type=request.getParameter(“type“);LeaveRecordDO ld=null;LeaveRecordDO lrd=new LeaveRecordDO();StudentBO sb=new StudentBO();if(type.equals(“add“)lrd.setSname(reques

40、t.getParameter(“sname“);lrd.setSid(request.getParameter(“sid“);lrd.setSphone(request.getParameter(“sphone“);lrd.setStarttime(Date.valueOf(request.getParameter(“starttime“);lrd.setEndtime(Date.valueOf(request.getParameter(“endtime“);lrd.setReason(request.getParameter(“reason“);String results=sb.valid

41、ate(lrd);if(results=null) String id=request.getParameter(“sid“);ld=sb.queryrecords(str,id);if(ld=null)sb.save(lrd);request.getRequestDispatcher(“/success.jsp“).forward(request, response);return;elserequest.setAttribute(“ld“, ld); request.getRequestDispatcher(“/deleteleave.jsp“).forward(request, resp

42、onse);return;elserequest.setAttribute(“message“, results);request.getRequestDispatcher(“/askforleave.jsp“).forward(request, response);xxx:学生请假系统管理22return;3.1.4测试用例表 3.1序号 功能模块 测试数据 预期结果1 请假申请姓名:韩一正学号:123电话:15903613946理由:回家申请成功3.2 请假记录查询在学生请假记录查询里面和学生请假申请基本是一样的,这个实际上的就是对数据库里面的数据的一个查询,并将查询记录显示到网页上,如果

43、不存在请假记录,将不会显示任何记录。3.2.1界面图 3.3 请假记录3.2.2代码HttpSession session=request.getSession();session.setAttribute(“username“, request.getParameter(“sid“);ArrayList list=(ArrayList) sb.getrecords(request.getParameter(“sid“);request.setAttribute(“list“, list);request.getRequestDispatcher(“/SseclectDisplay.jsp“)

44、.forward(request, response);return;xxx:学生请假系统管理233.2.3测试用例序号 功能模块 测试数据 预期结果1 请假查询 学号:123 查询成功3.4登录功能登录是该项目最基本的一个功能,这其实也是一个查询,只不过是根据数据库中的数据和从网页中得到的数据进行对比,如果匹配成功将会进入到另外一个页面,如果登录失败将会进行提示并重新登录,登录过程中在后台数据中定义了标志变量来表示学生和教师,所以在登录时候根据这个属性来判断登录成功后跳转到学生端还是教师端。登录过程中进行了简单的数据校验,就是说用户名和密码不能为空,倘若为空将会提示错误信息并提醒重新登录。3

45、.4.1代码public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(“UTF-8“);response.setContentType(“text/html;charset=UTF-8“);LoginDO ld=new LoginDO();LoginBO lb=new LoginBO();int tags;String userid=request.getParamete

46、r(“username“);String passwd=request.getParameter(“password“);ld.setUserid(userid);ld.setPasswd(passwd);String message=lb.validate(ld);if(message!=null)request.setAttribute(“message“, message);request.getRequestDispatcher(“/loginerror.jsp“).forward(request, response);elsetags=lb.login(ld);if(tags=1)x

47、xx:学生请假系统管理24HttpSession session=request.getSession();session.setAttribute(“username“, ld.getUserid();request.getRequestDispatcher(“/smain.jsp“).forward(request, response);return;else if(tags=2)HttpSession session=request.getSession();session.setAttribute(“username“, ld.getUserid();request.getReques

48、tDispatcher(“/tmain.jsp“).forward(request, response);return;elserequest.getRequestDispatcher(“/error.jsp“).forward(request, response);return;3.4.2界面图 3.4 登录界面xxx:学生请假系统管理253.4.1活动图一 一 一 一一 一 一 一 一 一一 一 一 一一 一 一 一 一 一 一 一 一 一 一 一 一一 一 一 一 一 一 一 一 一 一 一 一 一 一一 一一 一图 3.5 登录活动图3.5.4测试用例序号 功能模块 测试数据 预期结果

49、1 学生登录 用户名:123密码:123 登录成功xxx:学生请假系统管理26第 4章 结束语这次的课题我用的 web 开发来完成的,从我对这三个字母的不理解到学习它再到用它们来完成我的课题,这个过程并不是想象的那么容易,今天终于完成了,长呼了一口气,同时在内心深处,也默默地为接下来的学习,做一个前段时间的项目总结,也是学习的总结,吸取之前的经验教训,错误并不可怕,可怕的是再在同一个地方犯同样错误,所以对于我来说,更多的去自我认知,知我批评要比表扬和赞许来的更加深刻 ,非常有必要做一个总结。虽然时间略显仓促,但在项目开发过程中我学习到了很多之前没有接触过的内容,也发现了自己的很多不足,感悟颇深。主要包括以下几个方面:1.在需求分析阶段,由于对学生请假管理系统真正的需求并不了解,还有就是自己在做这个需求的过程当中总觉得想到了自己做不出来,就好比没想到一个需求的功能脑子里就会闪现出一个画面,我该如何去实现它,正是因为这些错误的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报