基于一卡通的学生考勤系统毕业论文.doc_第1页
基于一卡通的学生考勤系统毕业论文.doc_第2页
基于一卡通的学生考勤系统毕业论文.doc_第3页
基于一卡通的学生考勤系统毕业论文.doc_第4页
基于一卡通的学生考勤系统毕业论文.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

基于一卡通的学生考勤系统摘要 传统的点名考勤方法,不仅占用大量的授课时间,也不能真实地反映学生出勤情况,老师对学生出勤情况的报告与统计工作难度极大、信息的实时性差。尤其是在三本院校中学校教师结构复杂,考勤信息的采集就更是一大难题。基于一卡通的学生考勤管理系统就是真对这一情况,并且经过导师对院校的长时间的教学调查后,结合教学的实际情况决定开发的一套实用的系统模块。本系统由硬件和软件两大部分组成。硬件包括读卡器和射频ID卡组成。软件部分用JSP技术,应用了SSH框架(Spring ,Struts和Hibernate),在页面中使用了JQUERY和AJAX技术进行处理,数据库使用的是 SQL SERVER 2005。本课题开发有三大难题分别是数据库课程表的设计、考勤信息的获取与统计报表和系统权限分配。系统开发过程中指导老师给予的很多处理的方案和宝贵的意见,使课题中三个难题目前已经基本解决。关键字:射频卡,B/S,学生考勤系统,SSHCheck on Work Attendance for Student Base on Radio Frequency Identification Card Manager SystemAbstractThe traditional attendance checking method not only takes massively teaching time, but also can not really reflect the attendance situation.Teachers report and statistical work of the students attendance situation is very difficult,and the accrucy of the information is bad. Especially of undergraduate course teacher is very structure complex. The information gather is more bad,so check on word atterdance for student base on radio frequency card system to resolve this problem .Throughing my teacher thinking so decide to exploit this system. The databaseThe system is composed by two major parts: the hardware and the software. The hardware platform of this system contains Radio Frequency identification ID card andcard reader. The software using JSP technology , use SSH(Spring,hibernate and struts) framework. Using Ajax and Jquery technology to deal with interface.The DateBase use SQL SERVER 2005.This system comprise three difficult problem theyre Database curriculum schedule design , check on work attendance for student forms for reporting statistics and The System UserRole Manager Key words: Radio Frequency identification,IC card, checking system 目录1 绪 论v1.1 研究背景v1.1.1 软件v1.1.2 硬件:v1.2 国内外研究情况及研究意义vi1.2.1 研究意义vi2.系统需求分析i2.1 系统总体需求简介i2.2 系统功能需求分析i2.3 系统性能需求分析i2.4 系统用例模型ii3 系统概要设计v3.1 系统模块划分v3.2系统功能模块设计vi3.2.1 系统管理模块vi3.2.2 统计信息展示vi3.2.3考勤信息获取vii4 详细设计vii4.1数据库设计设计思想vii4.1.1 课程表设计vii4.1.2 系统角色数据库设计viii4.2 数据字典ix5. 系统实现的技术简介xxii5.2 开发相关技术xxii5.2.1 Spring技术xxii5.2.2 struts 技术xxiii5.2.3 hibernatexxiv5.2.4 jquery 技术xxv5.2.5 Ajax 技术xxvi5.3开发环境xxviii5.3.1 SQL Server 2005xxviii5.3.2 MyEclipsexxix6. 结 论xxx致 谢xxxi参考文献xxxii1 绪 论射频识别卡技术是近几年发展起来的一项新技术,它成功地结合射频识别技术和ID卡技术解决了无源(卡中无电源)和免接触的难题,是电子信息技术领域的一大突破.由于其方便性,耐用性,且可高速通信和多卡操作等特点,射频识别卡在门禁安防,身份识别,公共交通等众多领域正逐渐取代传统的接触式ID卡,在市场上所占的份额越来越大,射频识别卡的应用日益广泛.这为我们实现学生考勤获取智能化提供了良好的硬件平台,本课题利用射频ID卡和读卡器为硬件,应用jsp技术,真对西安工业大学北方信息工程学院量体裁衣开发的一套学生考勤系统。1.1 研究背景1.1.1 软件自从第一台计算机问世到现在不到百年的时间,计算机已经成为了相当普及的必备设备,在当前社会是信息化社会,科技是第三生产力。计算机应用程度已经成为了各行各业是否能够适应当前社会的标志。管理软件的应用就成为各大企业、学校、政府部门的首选。一套合适的管理软件能够极大的提高部门内部的执行效率,减少时间和人员浪费。所以各种管理软件已经在社会上普遍流行。各大学校都也为自己开发了各种教务系统以提高学校的教学管理效率。所以目前教务管理关键的开发技术和开发思想已经相当成熟,为本系统的开发提供了良好的软件环境和技术的支持。1.1.2 硬件:射频ID卡(俗称感应卡,又称非接触式ID卡)是世界上近十余年发展起来的一项新技术,它成功的将射频识别技术和IC卡技术结合起来,结束了无源(卡中无电源)和免接触这一难题,是电子器件的一大突破,读写操作只需将卡放在读卡器附近一定距离之内就能实现数据交换,无需任何接触,使用非常方便、快捷、不易损坏。根据射频ID卡据有防磁、防静电、抗破坏性和耐用性强、防伪性好、存储数据安全性高(可加密)、数据储存容量大、应用设备及系统网络环境成本低、成本、品种型号齐全、技术规范成熟等特点,一些功能比较完善的射频ID卡系统得到广泛的采用。中国的ID卡产业及应用从无到有,从小到大,迅速走过了启动阶段,发展的速度是惊人的,特别的这两年来,中国的年发卡量均超亿张,年增长率达到3040%,已成为世界ID 卡应用发展最快的国家之一。射频ID卡系统的应用在国内相当快。各种考勤系统,公共交通收费系统,智能水表系统,门禁系统,食堂售饭系统,节水控制系统和巡检巡更系统等等射频ID卡系统得到广泛的采用。1.2 国内外研究情况及研究意义1.2.1 研究意义当今社会日新月异,信息全球化、产业化已经是众人皆知的事实。所以在教育界实行信息化管理已经是事在必行。当前的大学教育形式多样,管理模式也各有不同,各有其长处和短处。在高校上课还存在着一位教师上多个班级,或者一位教师上大课的特点,用传统的点名考勤的方法,不仅会占用大量的上课时间而且也不能真实的反映学生的到课情况,导致学生出勤情况的报告与统计工作难度极大。虽然每个辅导员和任课老师都参与考勤信息的收集,但考勤信息的汇总和统计仍很繁琐。就大学三本的学校而言,学校的教师结构比较复杂,所以学生考勤信息的收集就更加的困难。本课题的研究就是在目标就是能够基于目前的状况,从实际出发开发出一个实用的系统,即让学生通过射频卡(ID卡)来签到,方便教师和辅导员实施考勤信息的采集。使教师能够对学生的考勤情况随时进行抽查,很方便的看出学生的平时表现情况,从而能够做出正确的管理方案对症下药,提高学校的教学效率。1.2.2 国内外研究状况2.系统需求分析2.1 系统总体需求简介 本系统的主要研究功能是,通过射频ID卡于软件相结合实现对学生和教师考勤的管理,督促学生努力学习。并且应用软件对学生和教师的考勤情况进行准确的统计。给校方管理人员提供了科学可靠的数据以便做出更好的管理方式。学生或教师通过射频ID卡在读卡器中刷卡,由读卡器获得学生或教师的基本信息(卡号、时间、地点),然后由系统对获得的信息进行分析和计算,得到学生、教师、课程、和专业的日、周、月考勤情况。本系统还可以提供各种用户的查询,以便对各自的考勤情况进行了解。 系统中还设计了管理模块,对ID卡、系统用户和用户角色进行管理。2.2 系统功能需求分析 系统功能主要有:1. ID卡管理ID卡管理主要是指对ID卡的办理、注销、挂失等操作。2. 系统用户管理该模块主要是对本系统的使用者进行统一的管理,包括用户的创建与注销,还有密码管理等等。3. 角色管理 指在系统中有各种级别的角色,要对系统的用户进行分类管理,按照角色的不同给予不同的权限,4. 考勤的查询 系统通过学生刷卡得到的信息,生成基于班级、专业、院系、年级、及课程或者基于学生和教师的日、周和月报表。5. 刷卡信息的获取 通过学生的刷卡获得学生或者教师的ID编号、教室IP号、刷卡时间进行记录。2.3 系统性能需求分析 1. 学生刷卡反应要快。 在学校中上课时间比较集中,并且相对固定。可能同一时间要有数百人的同时刷卡,所以要求刷卡反应要快。 2. 数据库信息处理要及时 由于学校学生众多,在加上同一个学生在一天中都可能刷卡数次。在数据库中的数据会相当的庞大。所以对数据库中数据的处理要及时。2.4 系统用例模型 1. 参与者(Actors)Actors系统的主体,表示提供或接收系统信息的人或系统,他们是与系统有交互作用的人或事物。参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。因此参与者可以是人,可以是事物,也可以是时间或其他系统等等。还有一点要注意的是,参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。参与者在画图中用简笔人物画来表示,人物下面附上参与者的名称。由于非压缩格式文件、压缩格式文件都分别与系统产生关系,从以上的分析中,可以创建以下角色:非压缩格式文件 压缩格式文件2.创建用例(Use Case)用例模型是系统和角色之间的对话,它表现系统提供的功能模块,系统给操作者提供什么样的使用操作,即用例是参与者想要系统做的事情。对于对用例的命名,我们可以给用例取一个简单、描述性的名称,一般为带有动作性的词。对一个Use Case应说明的基本内容是:Use Case怎样开始和结束、正常德事件流、变通的事件流、意外情况的事件流等。用例在画图中用椭圆来表示,椭圆下面附上用例的名称。在线压缩和解压缩文件根据业务流程可以分为以下几个用例:上传Use Case 压缩Use Case 解压缩Use Case下载Use Case3箭头,用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。4.创建角色用例关系图在Actor和Use Case之间存在着关联关系,这种类型的关联关系通常涉及到Actor和Use Case之间的通信关联关系。a. 管理员 管理员有用户管理,权限管理,和id卡管理等权限, 其中用户管理包括(用户的创建,注销和密码修改)。 权限管理包括(对角色权限的赋予、权限改变 和角色的创建)。 b. 学生权限 学生只能查看自己的考勤信息c. 教师教师可以查看自己的考勤信息和所带课程的考勤信息d. 辅导员辅导员可查看各个专业,课程和学生的考勤信息,e. 其他人员权限(主要指各级领导)可查看各个专业、学生、课程还有教师的考勤情况。3 系统总体设计3.1 系统模块划分 本课题由软件和硬件两部分组成,主要分为三大模块分配是考勤信息获取、系统管理和统计信息展示。其中系统管理和统计信息展示模块采用的B/S(Browser/Server)架构.运用jsp技术开发。考勤信息获取采用的是C/S架构开发。系统用户可以通过浏览器登录本系统,执行系统的查询和管理等操作。3.2系统功能模块设计3.2.1 系统管理模块系统管理模块分为了系统用户管理、ID卡管理和用户权限管理。其中系统用户管理中的用户是指本系统中的WEB用户,系统用户管理的功能有,对用户的创建和删除,用户密码的设置和修改。ID卡管理子模块是对射频ID卡进行管理,功能是对ID的用户进行创建,还有对ID卡的挂失和注销的处理。通过ID卡管理子模块可以方便学校对学生射频卡的统一管理、用户权限管理模块是对系统中各个用户的权限进行系统的管理,包括用户角色的赋予、角色操作赋予和角色创建三个字模块。3.2.2 统计信息展示统计信息展示是指对学生或教师通过读卡器获得的数据进行分析得到的考勤信息进行分类展示。分类学生考勤、教师考勤、课程考勤和专业考勤4个部分。其中各个部分都要实现对日、周和月的考勤查询。3.2.3考勤信息获取考勤信息获取是指通过读卡器来获取考勤的基本信息。读卡器通过学生或教师的刷卡来获得相应的刷卡信息,包括ID卡的卡号、刷卡时间和刷卡教师IP。本模块包括信息获取、考勤信息有效性验证、考勤分析三部分。信息有效性验证是指要对射频卡对有效性进行验证,看是否是有效的射频卡。考勤分析是指对正确的射频卡刷卡时要判断其刷卡地点是否正确,刷卡时间是否正确有没有迟到。4 详细设计4.1数据库设计设计思想4.1.1 课程表设计 数据库的设计是本系统开发的最重要也是最难的部分,是系统的支柱。其中课程表的设计设本系统数据库的核心。在数据库课程表中引入了教学班的概念。在以往各种教学管理系统中课程表一直是个难题,在很多高校中课程都是人工排课,再在电脑中查找冲突这样做费时费力。也有些学校虽然是实现了课程表的设计,但是数据库结构相当的复杂。使系统庞大运行效率降低。比如在大学的课堂并不像高中那样每个班级的上课的人数、人员和地点是固定不变的,在大学中有小课和大课,有时候会是几个班级在一块上而有时会是一个班。甚至是很多不是一个班级、年级或者专业的学生在一块上课,比如选修课,而且教师也分小教室、多媒体教师和阶梯教室等等。课程表的设计要考虑到学生、教师和教室的空闲时间,还有考虑教室的类型。在本系统的开发过程中经过导师的指导,在数据库设计时候引入了教学班的概念,教学班与我们平时所说的班级有很大的区别,我们可以认为我们每上一次课就是一个独立的课程班,一个普通的课程班是由多个教学班组成。以教学班的基础上设计课程表给数据库的设计带来了很大的方便。 本系统数据库中课程表,是多维数据库设计方式,主要由时间、教师、教室和学生四个部分组成。我们把一年的时间按周分开,一周分7天,一天又分为9节(包括晚自习)。然后以时间为轴将教师、教师和学生与时间分别建立中间表教师时间表、教室时间表、和学生时间表用于标识学生,教师和教室在某个时间的占用情况。同时一个教师可能会教授多门课程,所以在在课程与时间也建立一个课程时间表,用以标识。在本数据库中并没有设计课程表,本课题在数据库中引入了学生培养计划表,应为在大学中每个学生上的课程是不一样的即使是在同一个班级中,所以在导师的指导下引入了学生培养计划表,在培养计划表中存放了该学生在大学中所要上的课程,所以之前的课程时间表的课程指向的是学生培养计划表。 通过这样就确定了学生、教师、教室的占用情况,并且确定了所占地点的课程,但是又有了个新问题,我们并不知道该课程是由那位教师上。所以我们将教师与学生培养计划之间建立了教师授课表,这样就可以知道在某个教室,在指定的时间是在上什么课程,由那位老师教授。而且不会有重复数据出现。 4.1.2 系统角色数据库设计 在系统中登录用户众多,所以用户权限问题尤为重要,在本系统中分别设计了SystemRole(系统角色表),RoleRight(角色权限表), SystemRight(),SystemUser(系统用户表), UserRole(用户角色表)4.2 数据字典 1表AttendanceRecode表名列名数据类型(精度范围)空/非空约束条件其他说明IDint非空种子,自增1student_idint空classroom_ipnvarchar(255)空card_timenvarchar(255)空2表Card表名列名数据类型(精度范围)空/非空约束条件其他说明card_idint非空种子,自增1card_codenvarchar(50)空card_stateint空card_create_timedatetime空card_logout_timedatetime空card_lost_timedatetime非空3表Classes表名列名数据类型(精度范围)空/非空约束条件其他说明class_idint非空种子,自增1class_namenvarchar(50)空class_codenvarchar(50)空special_grade_idint非空4表Classroom表名列名数据类型(精度范围)空/非空约束条件其他说明classroom_idint非空种子,自增1classroom_namenvarchar(255)空classroom_ipnvarchar(255)空classroomtype_idnvarchar(50)空5表ClassroomClasstype表名列名数据类型(精度范围)空/非空约束条件其他说明classroom_classroomtype_idint非空种子,自增1classroom_idint空classroomtype_idint空6表ClassroomTime表名列名数据类型(精度范围)空/非空约束条件其他说明classroom_time_idint非空种子,自增1classroom_idint非空外键time_idint非空外键7表ClassroomType表名列名数据类型(精度范围)空/非空约束条件其他说明classroomtype_idint非空种子,自增1classroom_namenvarchar(50)空classroom_ descriptionnvarchar(MAX)空8表CourseClassTime表名列名数据类型(精度范围)空/非空约束条件其他说明IDint非空种子,自增1course_idint非空外键time_idint非空外键classroom_idint非空外键9表CourseData表名列名数据类型(精度范围)空/非空约束条件其他说明CourseDataint非空种子,自增1course_codenvarchar(50)空course_namenvarchar(50)非空course_typenvarchar(50)非空10表CourseStatistics表名列名数据类型(精度范围)空/非空约束条件其他说明course_statistics_idint非空种子,自增1course_to_class_ratedecimal(18, 0)空到课率course_late_timesint空迟到次数course_truant_timesint空旷课次数course_statistics_timedatetime空统计时间train_plan_course_idint外键11表CourseTime表名列名数据类型(精度范围)空/非空约束条件其他说明course_time_idint非空种子,自增1time_idint空外键course_idint空外键12表Depart表名列名数据类型(精度范围)空/非空约束条件其他说明depart_idint非空种子,自增1depart_namenvarchar(50)空depart_codenvarchar(50)空13表GradeSpecial(专业年级表)表名列名数据类型(精度范围)空/非空约束条件其他说明special_grade_idint非空种子,自增1special_idint非空外键专业编号gradeint空年级编号14表Special(专业表)表名列名数据类型(精度范围)空/非空约束条件其他说明special_idint非空种子,自增1special_namenvarchar(50)空专业名称special_codenvarchar(50)空专业编号special_std_codenvarchar(50)空专业学生编号depart_idint非空15表SpecialStatisics(专业考勤统计表)表名列名数据类型(精度范围)空/非空约束条件其他说明special_statistics_idint非空种子,自增1special_idint非空外键special_to_class_ratedecimal(18, 0)空到课率special_late_timesint空迟到次数special_truant_timesint空旷课次数special_statistics_timedatetime空统计时间16表Student(学生表)表名列名数据类型(精度范围)空/非空约束条件其他说明student_idint非空种子,自增1student_codedecimal(18, 0)非空学生编号student_namenvarchar(50)非空学生姓名student_ageint空年龄student_nationalitynvarchar(50)空民族student_birthdaydatetime空出身日期student_sexvarchar(10)空性别student_birthday_placenvarchar(50)空籍贯class_idint空外键班级编号student_identitynvarchar(50)空身份证17表StudentStatisics(学生考勤统计表)表名列名数据类型(精度范围)空/非空约束条件其他说明student_statistics_idint非空种子,自增1student_idint空外键student_to_class_ratedecimal(18, 0)空到课率student_late_timesint空迟到次数student_truant_timesint空旷课次数student_statistics_timedatetime空统计时间18表StudentTime(学生时间表)表名列名数据类型(精度范围)空/非空约束条件其他说明student_time_idint空主键student_idint空外键学生编号time_idint空外键时间编号stateint空状态(标识考勤状态)19表StudentTrainplan(学生培养计划表)表名列名数据类型(精度范围)空/非空约束条件其他说明student_plan_idint非空种子,自增1student_idint空外键学生编号statusnvarchar(50)空培养状态(在修,已修)resultnvarchar(50)空train_plan_course_idint外键培养计划课程表20表SystemRight(系统权限表)表名列名数据类型(精度范围)空/非空约束条件其他说明system_right_idint非空种子,自增1system_right_namenvarchar(50)空system_right_descriptionnvarchar(MAX)空21表SystemRole(系统角色表)表名列名数据类型(精度范围)空/非空约束条件其他说明system_role_idint非空种子,自增1system_role_namenvarchar(50)空system_role_ descriptionnvarchar(MAX)空22表SystemUser(系统用户)表名列名数据类型(精度范围)空/非空约束条件其他说明system_user_idint非空种子,自增1system_user_accountnvarchar(50)非空账号system_user_passwordnvarchar(50)空密码23表TeachClass表名列名数据类型(精度范围)空/非空约束条件其他说明teach_class_idint非空种子,自增1train_plan_course_idint空外键24表TeachClassStudent(教学班学生表)表名列名数据类型(精度范围)空/非空约束条件其他说明teach_class_student_idint非空种子,自增1student_plan_idint非空外键teach_class_idint非空外键25表Teacher表名列名数据类型(精度范围)空/非空约束条件其他说明teacher_idint非空种子,自增1teacher_namenvarchar(50)非空姓名teacher_sexvarchar(10)非空性别teacher_nationalitynvarchar(50)空民族teacher_title_idint空外键职称teacher_birthday_placenvarchar(50)空籍贯teacher_birthdaydatetime空出身日期teacher_ageint空年龄26表TeacherStatistics表名列名数据类型(精度范围)空/非空约束条件其他说明teacher_statistics_idint非空种子,自增1teacher_to_class_ratedecimal(18, 0)空到课率teacher_late_timesint空迟到次数teacher_truant_timesint空旷课次数teacher_statistics_timedatetime空统计时间teacher_idint非空外键27表TeacherTeachClass(教师教学班表)表名列名数据类型(精度范围)空/非空约束条件其他说明IDint非空种子,自增1teacher_idint空外键教师表IDteach_class_idint空外键教学班表ID28表TeacherTime表名列名数据类型(精度范围)空/非空约束条件其他说明teacher_time_idint非空种子,自增1teacher_idint非空外键time_idint非空外键stateint空29表TeacherTitle表名列名数据类型(精度范围)空/非空约束条件其他说明teacher_title_idint非空种子,自增1teacher_title_namenvarchar(50)非空30表TeachPrinciple(教学计划)表名列名数据类型(精度范围)空/非空约束条件其他说明outline_idint非空种子,自增1course_idint非空外键课程IDcourse_hourint空课时book_isbnnvarchar(50)空outline_versionint空course_pointint空31表Test(测试表)表名列名数据类型(精度范围)空/非空约束条件其他说明test_idint非空种子,自增1outline_idint空外键test_timedatetime空测试时间test_addressnvarchar(50)空地点test_main_teachernvarchar(50)空主考官32表TestScore表名列名数据类型(精度范围)空/非空约束条件其他说明score_idint非空种子,自增1test_idint空外键student_idint空学生编号score_typenvarchar(50)空考试类型score_valueint空test_sortnvarchar(50)空33表TestTeacherclass表名列名数据类型(精度范围)空/非空约束条件其他说明test_teach_class_idint非空种子,自增1teach_class_idint空外键教学班IDtest_idint空外键测试ID34表Time表名列名数据类型(精度范围)空/非空约束条件其他说明time_idint非空种子,自增1part_numberint非空节次day_numberint非空日次week_numberint非空周次35表TrainPlan(培养计划)表名列名数据类型(精度范围)空/非空约束条件其他说明train_plan_idint非空种子,自增1train_plan_codenvarchar(50)空培养计划编码train_plan_vernvarchar(50)空培养计划版本train_plan_authornvarchar(50)空作者special_grade_idint空外键专业36表TrainPlanDetail(培养计划细节)表名列名数据类型(精度范围)空/非空约束条件其他说明train_plan_course_idint非空种子,自增1培养计划课程IDtrain_plan_idint空外键培养计划IDexecute_termnvarchar(50)空学期outline_idint空degree_typenvarchar(50)空learn_typenvarchar(50)空examine_typenvarchar(50)空测试类型37表UserRight(用户与权限)表名列名数据类型(精度范围)空/非空约束条件其他说明user_right_idint非空种子,自增1用户权限表system_role_idint空外键系统角色IDsystem_right_idint空外键权限38表UserRole(用户与角色)表名列名数据类型(精度范围)空/非空约束条件其他说明user_role_idint非空种子,自增1用户角色system_user_idint非空外键用户IDsystem_role_idint非空外键角色ID39表Users(ID用户表)表名列名数据类型(精度范围)空/非空约束条件其他说明IDint非空种子,自增1user_idint空用户编号card_idint空卡号user_gradeint空外键40表UserState(ID卡用户状态)表名列名数据类型(精度范围)空/非空约束条件其他说明user_grade_idint非空种子,自增1user_grade_namenvarchar(50)空 5. 系统实现的技术简介5.1 系统机构5.2 开发相关技术5.2.1 Spring技术 Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 控制反转Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。 框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。5.2.2 struts 技术Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。早期Smalltalk 程序语言便采用了MVC(Model-View -Controller) 模式( Patterns ) 以增加程序代码弹性,MVC模式将程序代码整理切割为三部份,Model 部分是业务与应用领域( Business domain) 相关逻辑、管理状态之对象,Controller 部分接收来自View 所输入的资料并与Model 部分互动,是业务流程控制( Flow Control) 之处,View 部分则负责展现资料、接收使用者输入资料。在Java 应用中,JFC/Swing、AWT、JSP 皆是可用作View 之技术规格,而JavaBean 与Enterprise JavaBean 规格则可用于Model 程序代码,一旦应用程序以MVC 模式加以适当之分割,Model 部分程序代码可在不同使用者接口外观之应用程序中重复使用。Struts是Apache软件基金下Jakarta项目的一部分。除Struts之外,还有其他成功的开源产品,包括Tomcat, Ant 和Velocity。2000 年Craig R. McClanahan 先生贡献了他编写的JSP Model 2 架构之Application Framework 原始程序代码给Apache 基金会,成为Apache Jakarta 计划Struts Framework 前身。Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用。和其他的java架构一样,Struts 也是面向对象设计,将MVC模式分离显示逻辑和业务逻辑的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles与XML等标准技术,以及 Jakarta Commons 的一些类库。Struts有一组相互协作的类(组件)、Serlvet以及jsp tag lib组成。基于struts构架的web应用程序基本上符合JSP Model2的设计标准,可以说是一个传统 MVC设计模式的一种变化类型。Struts的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。5.2.3 hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在J

温馨提示

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

评论

0/150

提交评论