大学生信息管理系统的设计与实现工程硕士学位80243444.doc
《大学生信息管理系统的设计与实现工程硕士学位80243444.doc》由会员分享,可在线阅读,更多相关《大学生信息管理系统的设计与实现工程硕士学位80243444.doc(74页珍藏版)》请在三一文库上搜索。
1、De 电 子 科 技 大 学 UNIVERSITY OF ELECTRONIC SCIENCE AND TECHNOLOGY OF CHINA 工程硕士学位论文 ENGINEERING MASTER DISSERTATION 论 文 题 目 大学生信息管理系统的设计与实现 - 2 - 学 位 论 文 StrutsStruts 框架在大学生信息管理系统中的应用框架在大学生信息管理系统中的应用 指导教师姓名 教 授 成 都 申请专业学位级别 硕士 专业学位类别 工程硕士 工程领域名称 软 件 工 程 提交论文日期 论文答辩日期 学位授予单位和日期 电 子 科 技 大 学 答辩委员会主席 评阅人 2
2、011 年 月 日 注 1:注明国际十进分类法 UDC的类号 独 创 性 声 明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名: 日期: 年 月 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅
3、。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 (保密的学位论文在解密后应遵守此规定) 签名: 导师签名: 日期: 年 月 日 摘要 2 摘摘 要要 随着 Internet 技术的迅速发展及 Web 应用的范围越来越广。在今天的 Web 应用系统 中,存在着诸多的不足之处,比如维护的工作比较繁琐,可重用的程度较低1,应变能力 比较薄弱等,这些问题都迫切需要改进与完善。但是随着实践中使用,Web 被人们所看重并 广泛使用。随着 Web 的使用加剧,对应用中的各种那个需求是越来越复杂,也是越来越高了, 同时对开
4、发上也提出周期短的要求。目前,对 Web 的应用不但要求提高了,就是系统的扩展 性、稳定性以及可维护性也提出更高的目标。在开发 Web 应用程序的时候,以提高开发效率, 考虑到应用系统的安全性,灵活性和实用性的过程中,需要采用一个良好的设计环境,用一 个比较好的系统框架来解决这一常见的问题。也只有解决了常见的问题,才能给维护该设计 能够正常使用。现在,随着中国高等教育招生规模的日益扩大,大学生的信息管理的信息数 据是日渐剧增,且如果还按照传统的人工管理,不但处理不了如此庞大的数据,就是能够处 理也是经常出现各种各样的错误。在这样的情形之下,迫切需要开发出一种管理学生信息的 管理系统。 因此,基
5、于网络的大学生信息管理系统己经适应高等教育规模,成为了发展先进的关键 人员的跨世纪工程,而且还是顺利发展高等教育的基本条件。同时为学生管理建立相应的信 息管理系统,必将促进高等教育的发展。同时采用基于 Web 的信息管理系统,成为了研究高 等教育发展的跨世纪工程,也是现在高校扩大招生规模的必备基础条件,因为只有这样才能 够应对庞大的信息数据。从实际情况可以看出来,学生信息管理系统融合管理、信息科学与 技术一体的系统,是现代通信技术和计算机技术为一体先进的管理手段,也是一门实用性比 较强是技术。近年来,随着信息技术、计算机技术及管理技术的进展。对于高校学生信息管 理系统的发展,从理论上讲,已经取
6、得了很大的改善和发展,其应用也是越来越广泛,成为 了高校每个部门使用的管理体制。并对大学生的实时信息跟踪,高校学生的信息整合,以及 信息共享提供了保障,同时也提高了高校学生信息管理上的便利,促进管理效率。因此,在 导师的指引下做了如下工作: (1)需求的分析 所谓的需求分析主要是根据用户要求开发软件,并且要评估项目的代价与软件的风险, 让整个开发计划得以实现。在这个过程之中,用户占据了主要的地位,开发人员要根据用户 摘要 III 的要求进行数据分析,通过数据整理、分析与验证等用户需要的工程。也就是开发软件中的 该软件开发出来之后,究竟要解决一个什么问题。笔者在构思这个文章之前,就深入到学校 中
7、进行实地了解,熟知大中专学校对学生信息管理的复杂与困难。而笔者又在软件工程系统 中学习,所以才产生了做一个大学生信息管理系统的毕业设计的想法。在广泛听取了学校一 线管理教师的需要与需求,以及其他的一些使用者的意见,并且根据如今的大学生管理工作 作出了该开发系统的需求分析。 (2)该系统的设计和实现 经过对开发该系统的需求分析之后,笔者头脑中对大学生信息管理系统已经有一个大概 的轮廓。紧接着再对这个系统进行了全面的规划和设计,并做出了系统主框架,才着手对信 息管理系统进行最后的设计。对于一个可行高效的系统来说,统一的规划设计是非常重要的。 如果没有规划设计,设计出来的系统可能能够完成相应的功能并
8、在实践中使用,但是后期的 维修费用相当昂贵且测试也比较困难。对于一个开发设计来说,必须具备直接实现、易于维 护以及易懂与可靠,也只有具备这个特征的开发系统才具有市场价值。 本文就是依据目前中国大学生的管理制度作为开发的背景,将 J2EE 架构使用到高校学 生信息管理系统中去。并且对 MVC 模式的设计思想进行深入的分析,了解基于 MVC 的 Web 应 用程序的发展优势和劣势。研究 Struts 框架基于 MVC 模型的工作原理和实施机制;发展注重 实际应用程序的 StrutsWeb 应用程序框架的过程。在发展过程中,通过应用 MVC 设计模式的 实现逻辑和业务逻辑的发展,体现出更大的灵活性和
9、更好的管理系统维护的分离。经过实践 证明,基于 MVC 设计模式和 Struts 框架不但可以有效地解决传统 Web 应用程序开发中存在 的问题,还可以采用分层和模块化设计,使得系统流程清晰,易于扩展和维护。 关键词:J2EE 模式 MVC Struts 信息管理系统 ABSTRACT ABSTRACT I ABSTRACT With dramatic development of Internet technology, Web applications have drawn wider attention than ever before. Nevertheless, low mainta
10、inability and reusability, and inflexibility are very common phenomena in Web applications. Consequently, hierarchical designing, the framework of each sub-tier, and selection of development technology become more and more important with complexity of requirement analysis. Constraints of R import or
11、g.apache.struts.action.*; import org.apache.struts.validator.*; import com.lixin.graduate.model.*; public class CourseForm extends ActionForm private int courseid = 0; private String coursename=“; /以上定义了这个 Bean 类的五个私有字段,与课程表的五个字段对应。 public Int getCourseid() return courseid; public String getCoursena
12、me()return coursename; /定义了五个私有字段的公有 Get 方法 public void setCourseid(Int courseid) this.courseid= courseid; /以上定义了五个私有字段的公有 Set 方法 成都电子科技大学学位论文 40 this.courseid=0; /以上定义了 reset 方法,它用于把属性值重新设置为默认值。 public ActionErrors validate() ActionErrors errors=new ActionErrors(); if(courseid=0)|(courseid=null)/课程
13、编号不能为空或者为0 errors.add(“courseid“ new ActionMessage(“course.no.courseid.error“); return errors; /以上定义了 validate 方法,用于表单验证信息 运行的时候,控制器接收到了传送过来的请求,就会对这个请求进行判断,经过搜索发现这 个实例不存在的时候,控制器就会自己创建出一个新的实用实例。 ActionForm 实例的生命周期如图5.14所示。 图 5.14 ActionForm 的生命周期 5.3 设计与实现模型组件 在整个框架之中,模型应该算是比较重要的一部分了,模型之中一定要包含业务规则与 第
14、五章 系统测试 41 业务的实体两个部分,主要是为了负责去访问与更新那些持久化的数据。开发者是开发系统 的时候,就要将开发中涉及到的一切模型组件放在系统之中同一个位置。 从分层框架的结构之中可以看出,处于最上层的视图与控制器都必须依赖处于下层的模型才 能够实现。STRUTS 框架中的应用各个层次之间也存在一些依赖关系,其依赖关系如图5.15 所示。 图 5.15 Struts 应用的各个层次之间的依赖关系 事实上,STRUTS 框架根本就没有为创建模型的组件以及设计提供现成的模型,必须要 开发者自己构建才行。但是 STRUTS 的兼容性比较好,它能够运行开发者采用其他的模型框 架,进来处理 W
15、EB 的应用28。比如 JDO(JAVA DATA OBJECT) 、EJB、JAVABEAN 与 ORM(OBJECT-RELATION MAPPING) 。 本文开发的系统中采用的模型就是由 JAVABEAN 来实现的。也是由 JAVABEAN 来实现系统 的业务规则与业务实体。下面以课程信息管理模块来讲述模型组件的构建过程。 课程管理功能实现了对课程的管理,是大学生信息管理系统的一个基础数据管理模块。它包 括对课程表的添加、维护和查询等操作。数据表包括以下字段:课程号、课程名称、课程类 型、课程学时、课程学分。 模型 COURSE.JAVA 类,定义包名为 COM.LIXIN.GRADU
16、TAE.MODEL,主要是对表 COURSE 的封装,实现了对于表中字段的 GET 和 SET 方法。 其中系统的业务层采用了 DATAACCESSOBJECT 的设计模式,并且通过封装了系统业务逻 辑,还针对系统之中出现的不同操作来实现相对应的业务逻辑,达到开发的目的。 COURSE.JAVA 的功能相对比较强大,它能够实现开发系统中所有业务逻辑实现,就因为去功 能的强大而被广泛使用。 其实现的方法很多,本文就阐释一下这种方法: list():从系统表中取出所有记录; 成都电子科技大学学位论文 42 list(int offset,int limit):从课程表中按照参数 offset 和
17、limit 来取出数据; insert(Course course):实现了课程增加的操作; update(Course course):实现了课程更新的操作; delete(Course course):实现了针对课程表中记录的删除操作; retrieve(String str):实现了从课程表中查询记录的功能。 在具体的操作中,根据不同的要求来调用不同的方法。我们以 list()方法为例来讲述模型 的构建过程。 以下是 List list()方法的实现代码: public List list() throws SQLException String objKeys = “Course“,
18、“list“; String objKey = CacheManager.createKey(objKeys); ArrayList list = (ArrayList) DAOCacheManager.getCache(objKey); if (list != null) return list; list = new ArrayList(); Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try conn = ds.getConnection();/建立数据库连接 String sq
19、l = “SELECT * FROM course“;/查询数据库 sql 语句 pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while(rs.next() Course course = new course();/建立 Course 类的实例对象 populate(course, rs); list.add(course); /将 Course 实例对象添加到集合变量中 第五章 系统测试 43 close(rs); close(pstmt); catch (SQLException e) /若查询出错,执行以
20、下语句 close(rs); close(pstmt); rollback(conn); e.printStackTrace(); finally close(conn); /关闭数据库的连接 DAOCacheManager.putCache(list, objKey, 1); return list; /返回集合对象 上面的 LIST LIST()方法通过访问数据库将所有保存在课程表中的信息读入到动态集合 变量 LIST 中,以便 ACTION 组件 COURSEACTION.JAVA 读取,将检索到的结果显示给用户。 从上面的程序运行情况可以看出来,在 STRUTS 框架之中所采用了其他模
21、型组件,展现出了 这种方式的优势。同时这种模型还将业务逻辑实现与应用和其他的一些组件部分分离开来, 这样就能够提高整个模型应用具备了可重用性、灵活性以及可扩张性。 5.4 控制器的设计和实现 开发系统中,负责接受客户的请求和更新模型由 STRUTS 的控制器组件所作用, STRUTS 框架的控制器组件主要包括以下几个部分: REQUESTPROCESSOR 组件:这个组件主要充分的处理功能,这样就可以对每一个子应用 模块发出的请求进行处理。 ACTIONSERVLET 组件:充当 STRUTS 框架的中央控制器。 ACTION 组件:这个组件主要是处理具体的业务,处理众多的项目中的具体一项业务
22、。 STRUTS 框架所采用的控制器组件,主要是对用户发送来的请求进行预处理,其功能主要体 现在如下的两个方面: 其一,控制器所扮演的角色比较特殊,它主要是在模型与用户输送的数据之间提供一些 成都电子科技大学学位论文 44 有针对用户的具体请求,控制器都必须要承担重要的任务;在运行的时候如何这些通用的功 能发生变更的时候,根本没有必要去修改整个控制器中的应用,只是对出现变更的控制器组 件局部进行一些修改就行了。 其二,控制器并不是一味的接受请求,还会根据一些标注对用户的请求进行甄别并过滤, 这样就可以提升到每一个组件具备的相互对立性。处理结果出来之后,控制器的组件还会比 较合适的视图组件重新返
23、回到用户,这样就能够减少视图组件之间的相对独立性29。 将哪种视图组件返回到用户由控制器组件经过处理之后再决定,这样视图组件之间直接的与 错综复杂的连接关系就可以减少,提高了整个系统的灵活性与可维护性。 STRUTS 框架控制器组件功能,多是以下一些任务: (1)接收用户的请求; (2)处理用户的请求,并根据用户的请求将比较合适模型组件从组件中去调用,让其执行 出相应业务逻辑,实现开发的目标。 (3)用户的请求处理完毕之后,控制器组件就要从中获取业务逻辑结果,并返回到用户。 (4)控制器组件必须要根据实际的状态,返给用户合适的视图组件,等待用户的下一步指 示。 5.4.1创建 ActionSe
24、rvlet 类 所有的用户请求必须要先经过 ACTIONSERVLET 的处理,接着再经过 ACTIONSERVLET 将用 户的请求转给其他的控制组件。在运行之中,STRUTS 框架只能同意一个 ACTIONSERVLET 类 中使用一个相应的应用配置。在整个应用生命的周期之中,只能够创建出 ACTIONSERVLET 的 实例,就是这个 ACTIONSERVLET 的实例就能够同时对多个用户发出的请求作出响应。 SERVLET 容器启动的时候,或者的用户首次发出请求 ACTIONSERVLET 的时候,必须都去 加载 ACTIONSERVLET 类。只要出现了上面的两种情况的时候,SERV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学生 信息管理 系统 设计 实现 工程 硕士学位 80243444
链接地址:https://www.31doc.com/p-2059220.html