毕业生档案管理系统_第1页
毕业生档案管理系统_第2页
毕业生档案管理系统_第3页
毕业生档案管理系统_第4页
毕业生档案管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

毕业生档案管理系统绪论1.1系统开发背景随着科技的发展,计算机本身经历了巨大的变化。计算机的概念也由原始的分立式走向今天的网络式。网络技术已逐渐成为现代信息技术的主流,网络的概念也随着Internet技术和应用的发展而渐入人心。Internet/Intranet的作用正为越来越多的人所认识,通过网络共享信息正成为科学研究的一种重要手段。可以这么说,谁拥有信息,谁就能在科技信息革命的大潮中获得主动权,就能获取成功。面对信息时代的挑战,网络的功能越来越强,国内教育系统也在积极建设或升级计算机网络,并已建成了规模较大的中国教育科研网,全国许多学校也纷纷建立或升级自己的校园网络系统,许多高校还提出了办公无纸化的口号。校园网是实现办公自动化、管理科学化、教学手段现代化和图书情报信息网络化最有利的支撑环境。但是,目前校园网的利用率却不是很高,主要原因是缺少好的网络应用平台。以前开发的MIS系统往往是在单机上运行,或者采用C/S技术开发出来的,对于今天因特网时代来说,这些系统很大程度上已经不能满足用户随时随地获取信息的需要。学校学生档案管理最初是人工方式进行,显然在信息化发展的今天,这远远不能满足档案管理的需要。后来,随着单机板档案管理系统的开发,这在很大程度上解决了上述矛盾但是,这种系统如今也不能满足档案管理的要求了,这主要是由于高校的扩招,在校学生人数的增加。因此,开发B/S结构的MIS是势在必行。本文正是在这种背景下提出的,目的是为了开发出一套功能完善、操作便捷、及时性好、适用面广学校学生档案管理系统,以提高学校学生档案管理的效率。随着计算机互联网技术的飞速发展,计算机在各行各业的应用越来越广泛,而且网络化是21世纪计算机技术发展的重要趋势之一。目前,我国的计算机网络发展己初具规模,大部分高校的校园网都已开通。因此,如何充分利用高校校园网络,发挥其巨大功能来为高校的教学和科研服务成为摆在我们面前的一个需要深入探讨和解决的重大课题。随着网络技术的日益成熟,网页技术的应用已经深入到了生活的每个角落。一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。1.2系统开发的目的及意义21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校学生档案信息管理系统软件为学校办公室带来了极大的方便。在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。毕业生档案管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以毕业生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。毕业生档案管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强,数据安全性好的数据库。而对于后者则要求应用程序功能完备,清晰明了又易操作等特点。本系统实现了查询学生档案管理系统的主要功能,以无纸化的管理及应用不但可以提高工作效率、减少学校的投资成本,而且可以实现学校或企业高效率办公的宗旨。作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。如今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。而学生档案管理系统是一个学校不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该为用户提供充足的信息和快捷的查询手段。随着计算机应用的普及与深入,利用计算机能够对所有考试档案进行统一管理,并进行分析,大大减少教务处的工作量,提高工作效率,为教学办公带来了极大的方便。本系统开发的总体任务是实现学生档案管理的系统化、规范化、自动化、达到提高学生档案管理效率的目的,本系统本着实用性、通用、开放和安全的原则,使数据库开发软件开发制作,实现了学生信息管理、学生档案管理、档案查询等功能。该设计方法易于推广至其它信息化管理系统的设计,充分利用计算机作为辅助工具,对提高管理效率和节约大量的人力、物力有一定的推动作用。本系统一切从实际出发,充分考虑了档案的内部管理、信息交流等方面的复杂需求,实现档案的有效管理,真正为学生档案管理提供一个电子平台。1.3系统开发及运行环境操作系统:WindowsXP/win7/win8;数据库:mysql;服务器:Tomcat6.0开发工具包:JDK1.670以及MyEclipse8.5;2系统可行性分析及技术简介可行性研究(FeasibilityStudy)是为了弄清所定义的项目是不是可能实现并值得进行。可行性研究的目的是用较小的代价尽可能快的确定问题是否能够解决,是否值得解决,并通过分析以避免冒太大的风险。从技术、经济和操作三个方面分析本系统的可行性。2.1技术可行性毕业生档案管理管理系统,它采用了当前流行的B/S结构和Internet网络技术。技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,软硬件配置能否满足开发者需要等,这一特点非常适合计算机的特点,发挥计算机的数据处理速度快,准确率高的优势,现代计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。由于对企业工资管理系统这一类的企业财务系统进行开发已有一定的时期,有很多成功的实例,技术基础也已经非常雄厚,因而技术上的准备应该不成问题。其相关技术简介详见2.4节。2.2经济可行性主要是对项目的经济效益进行评价,一方面是支出的费用,其中包括设备购置费,软件开发费,管理和维护费,人员工资和培训费等。另一方面是取得的收益中可以用钱来衡量的那部分(收益的另一部分难以用钱来表示)。基于企业的现有计算机及配套设备,建设MIS系统。不但能大大减少重复性的书面报告,降低办公费用,提高办公室效率,而且能提高检测数据效用,为企业提供很方便。由于企业工资管理系统是一个比较小型的系统,是由我一个人进行开发的,所以从人力、物力、财力方面来说都是可行的。2.3操作可行性网络化已经成为社会的趋势,本系统操作简单方便,用户可以通过阅读操作手册就能轻松使用该系统。采用本系统,能够使整个系统内部所有信息的工作简化,提高工作效益。由于采用统一的数据信息,使相关资料能够快速地查询所需的数据、资料及其它信息的,使信息快速高效运行。2.4相关技术简介2.4.1JSP简介JSP(JavaServerPages)是目前十分流行的一种技术,主要用于发服务器端的脚本程序和动态生成网站。它与目前同样流行的ASP技术、ASP.NET技术是相同性质的、同一层次的,它们在网站的建设中所起的作用是一样的,但是JSP技术与这两种技术相比,有着十分突出的优越性,因为JSP技术有J2EE平台支持,发展前途不可限量。众所周知,J2EE平台提供了Java企业应用编程接口(JavaEnterpriseAPIs),为企业计算以及电子商务应用系统提供了相关的技术支持和强大的类库支持。J2EE平台包含十几种技术,JSP技术正是其中的一种核心技术。J2EE的发展势头十分迅猛,在可以预见的将来,Sun的J2EE平台可能是惟一可以与微软的.NET构架相抗衡的平台。从这个意义上来说,基于J2EE平台的JSP技术与基于.NET平台的ASP、ASP+技术之争,不正好就是J2EE平台与.NET平台之争的折射吗?因此JSP技术以及它的基础J2EE技术十分值得我们关注。2.4.2Struts2简介Struts最早是作为ApacheJakarta项目的组成部分问世运做。项目的创立者希望通过对该项目的研究,改进和提高JSP、Servlet、标签库以及面向对象的技术水准。Struts的目的是为了帮助开发者减少在运用MVC设计模型来开发Web应用的时间。仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用Servlet和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml配置文件。2.4.3Hibernate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。2.4.4jqueryminiui简介jQueryMiniUI-快速开发Web界面开发框架。它能缩短开发时间,减少代码量,使开发者更专注于业务和服务端,轻松实现界面开发,带来绝佳的用户体验。使用MiniUI,开发者可以快速创建Ajax无刷新、B/S快速录入数据、CRUD、Master-Detail、菜单工具栏、弹出面板、布局导航、数据验证、分页表格、树、树形表格等典型WEB应用系统界面。易学易用:简单的API设计,可以独立、组合使用控件。性能优化:内置数据懒加载、低内存开销、快速界面布局等机制。丰富控件:包含表格、树、数据验证、布局导航等超过50个控件。行过滤、数据汇总、单元格编辑、详细行、Excel导出等功能。第三方兼容:与ExtJS、jQuery、YUI、Dojo等任意第三方控件无缝集成。浏览器兼容:支持IE6+、FireFox、Chrome等。2.4.5poi简介ApachePOI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对MicrosoftOffice格式档案读和写的功能。结构:HSSF-提供读写MicrosoftExcel格式档案的功能。XSSF-提供读写MicrosoftExcelOOXML格式档案的功能。HWPF-提供读写MicrosoftWord格式档案的功能。HSLF-提供读写MicrosoftPowerPoint格式档案的功能。HDGF-提供读写MicrosoftVisio格式档案的功能。微软在桌面系统上的成功,令我们不得不大量使用它的办公产品,如:Word,Excel。时至今日,它的源代码仍然不公开已封锁了我们的进一步应用和开发。然而在要求更高的服务器领域,微软本身的产品移植性不好,性能不佳。ApachePOI提供了很好地excel解析的解决方案,使开发者更加方便的操作excel文档的数据内容。3需求分析与设计软件需求分析是软件开发期的第一个阶段,也是关系到软件开发成败的关键步骤。准确、完整和规范化的软件需求是软件开发成功的关键。它的重要性在于让用户完全清楚对软件系统的确切要求,它不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作。也就是对目标系统提出完整、准确、清晰、具体的要求。反复的调查和研究,了解数据库的组织的详细情况,了解管理的业务流程等系统需求,它对于设计好概念模型是至关重要的。而需求分析的好坏直接影响到系统设计的好坏。3.1需求规范本系统根据毕业生档案管理手册,将毕业生档案管理整个过程分成若干环节,采用B/S模式,通过网页完成毕业生档案各环节的信息采集工作,运用数据库及网页技术,控制毕业论文各个环节,动态统计各种数据,完成对毕业论文各个环节的质量监控。3.1.1产品背景目前,我国的计算机网络发展己初具规模,大部分高校的校园网都已开通。因此,如何充分利用高校校园网络,发挥其巨大功能来为高校的教学和科研服务成为摆在我们面前的一个需要深入探讨和解决的重大课题。随着网络技术的日益成熟,网页技术的应用已经深入到了生活的每个角落。3.1.2产品概述毕业生档案管理系统根毕业生档案管理手册,将毕业生档案整个过程分成若干环节,采用B/S模式,通过网页完成毕业论文各环节的信息采集工作,运用数据库及网页技术,控制毕业生档案管理各个环节,动态统计各种数据。3.1.3性能需求本系统由Java语言所开发,所以具有高度的可移植性。在软件方面,响应时间,更新处理时间都比较快且迅速,完全满足用户需求。当用户需求,如操作方式,运行环境发生变化时,设计的软件要做适当调整,灵活性非常大。3.2系统功能描述本系统主要包括学生用户、普通管理员用户、高级管理员用户三种角色。其功能主要有:学生用户:1、修改登录账号信息。2、查看毕业生基本信息,学院,班级,学号;查看毕业生详细信息;3、查看留言,添加留言;4、修改基本信息,详细信息的审核;查看审核的结果。高级管理员用户:1、查询档案柜,综合查询学生的档案信息,档案在档案柜中的编号。2、添加查询信息,删除信息。3、单个添加毕业生信息,批量导入毕业生信息。查询,打印毕业生信息。4、修改个人信息。5、增删改查普通管理员信息。6、查询回复学生留言。7、审核待审核的学生档案。普通管理员:1、查询档案柜,综合查询学生的档案信息,档案在档案柜中的编号。2、修改个人信息。3、查询学生档案编号,打印毕业生信息。4、查询回复学生留言。3.3系统主要功能模块3.3.1管理员模块系统管理员拥有最高的权限,可以对对系统进行任意操作,能够对普通管理员进行管理,对学生档案进行管理。经分析,得出管理员具有的功能如下:查询档案柜,综合查询学生的档案信息,档案在档案柜中的编号。添加查询信息,删除信息。单个添加毕业生信息,批量导入毕业生信息。查询,打印毕业生信息。修改个人信息。增删改查普通管理员信息。查询回复学生留言。审核待审核的学生档案。具体的功能模块图如图3-1所示:系统管理员系统管理员档案柜毕业生信息普通管理员信息管理留言管理审核档案添加,删除档案柜信息查询档案信息查询毕业生档案批量导入删除信息修改个人信息添加普通管理员信息修改普通管理员信息回复学生留言删除学生留言审核学生基本信息图3-1:系统管理员模块图3.3.2普通管理员模块普通管理员只是非配出来减轻系统管理员的工作量,他的功能有限,不能像系统管理员一样可以任意操作。经分析,得出普通管理员具有的功能如下:查询档案柜,综合查询学生的档案信息,档案在档案柜中的编号。2、修改个人信息。3、查询学生档案编号,打印毕业生信息。4、查询回复学生留言。具体的功能模块图如图3-2所示:普通管理员普通管理员档案柜管理毕业生信息管理普通管理员信息管理留言管理查询档案信息查询毕业生档案管理个人信息回复学生留言删除学生留言图3-2:普通管理员模块图3.3.3学生模块学生的功能可以进行个人登录信息的修改,给管理人员留言,修改个人基本信息和档案信息,提交审核,经分析,得出学生具有的功能如下:修改登录账号信息。查看毕业生基本信息,学院,班级,学号;查看毕业生详细信息;查看留言,添加留言;修改基本信息,详细信息的审核;查看审核的结果。具体的功能模块图如图3-3所示:学生用户学生用户修改档案个人信息个人基本档案个人信息管理查看个人基本档案信息添加留言提交待审核的档案删除留言学生用户留言管理修改档案图3-3:学生模块图3.4数据库分析与设计毕业生档案系统用于对学生档案信息信息管理,系统管理员可以进行档案柜的管理,学生信息的增删改查,档案编号的查询。每个档案柜里存放着许多份的学生档案,每一份学生档案对应着一个学生和一个档案编号。档案记录表,记录下每个学生的身份证号和档案编号,形成对应关系。一个档案柜对应着多条档案记录,一条档案记录只对应着一个学生。系统管理员可以管理普通管理员。学生用户可以给管理员进行留言操作,每条留言记录包含一个学生的登陆账号和管理员的登陆账号,一个学生可以对应多条留言记录,一个管理员也对应多条留言记录。学生有基本信息表和档案信息表,一个学生只对应一个基本信息和档案信息。经分析,得出毕业生档案管理系统应具有如下的实体对象:管理员;学生;档案柜;档案记录;留言板;学生基本信息;学生档案信息。1、管理员实体对象:具有账号、姓名、登录密码、权限等属性,具体如图3-4所示。管理员用户管理员用户账号密码姓名权限图3-4:管理员用户经分析转换得到的关系表如表2-1所示。表2-1:管理员用户表编号字段名称字段类型字段宽度1admin_idVARCHAR182admin_nameVARCHAR203admin_passVARCHAR204typeINT2、学生实体对象:具有身份证号、姓名、登录密码等属性;具体如图3-5所示。姓名姓名学生用户密码身份证图3-5学生用户经分析转换得到的关系表如表2-2表2-2:管理员用户表编号字段名称字段类型字段宽度1user_nameCHAR182user_passCHAR203user_idVARCHAR18档案柜实体对象:具有学院、班级、毕业年份、编号等属性;具体如图3-6所示。档案柜档案柜毕业年份班级编码学院图3-6:档案柜经分析转换得到的关系表如表2-3表2-3:档案柜表编号字段名称字段类型字段宽度1dangangui_idINT2xueyuanCHAR103yearVARCHAR204school_classVARCHAR30学生基本信息:学院、班级、毕业年份、学号等属性;具体如图3-7所示。学生基本信息学生基本信息学院姓名身份证号班级学号类型图3-7:学生基本信息经分析转换得到的关系表如表2-4表2-4:学生基本信息编号字段名称字段类型字段宽度1school_idINT2user_idVARCHAR183xueyuanCHAR104yearVARCHAR205school_classVARCHAR306nameVARCHAR307xuehaoVARCHAR138typeINT留言实体对象:学院、班级、毕业年份、学号等属性;具体如图3-8所示。留言留言学生身份证管理员账号留言内容回复内容图3-8:留言信息经分析转换得到的关系表如表2-5表2-5留言信息编号字段名称字段类型字段宽度1Word_idINT2user_idVARCHAR183admin_idVARCHAR184typeINT1Word_idINT4系统功能实现详细设计是软件开发时期的第三个阶段,也是软件设计的第二步。总体设计阶段已经确定了软件系统的总体结构,给出了系统中各个组成模块的功能和模块间的联系。这一步的工作,就是要在上述结果的基础上,考虑“怎样实现”这个软件系统,直到对系统中的每个模块给出足够详细的过程性描述。需要指出,这些描述应该用详细设计的表达工具来表示,但它们还不是程序,一般不能在计算机上运行。详细设计是编码的先导。这个阶段所产生的设计文档的质量,将直接影响下一阶段程序的质量。为了提高文档的质量和可读性,说明书除了说明详细设计的目的、任务与表达工具外,还要介绍结构程序设计的基本原理,以及如何用这些原理来指导模块内部的逻辑设计,提高模块控制结构的清晰度。1、根据原型化的开发原则,为系统的每个模块功能进行界面设计,作为进一步优化的基础。2、进行系统的流程分析,为模块的细化做好准备。3、对每个模块进行详细的算法设计。4.1系统运行流程图毕业生档案管理系统流程图如图4-1图4-1:运行流程图4.2系统登录验证管理员、教师以及学生使用各自账号、密码以及验证码登录系统,经由系统对各自输入的账号和密码进行JS验证,如果验证成功,则进入主页面,从而进行相关操作。登录功能的实现如图4-2所示:图4-2:登陆界面4.3系统管理员功能实现当管理员正确操作登录系统后,可以进行学生档案的查询,增减,在此模块,管理员可以根据信息的不同进行模糊匹配的查询,方便人性化。可以进行新的普通管理员用户的添加,修改,删除。查看学生用户的留言,以及审核学生提交修改基本的档案信息的操作。由于系统管理员的功能最多,下面选取其中比较重要的三个功能进行详细的描述。4.3.1学生档案信息的综合查询系统管理员可以对学生档案信息就行综合查询,其中综合查询采用了模糊信息,系统会根据管理员输入的模糊信息进行最大程度的匹配,查询出相应的结果。综合查询的功能给系统管理员的操作提供了极大的方便。管理员可以输入学院、毕业年份、班级、姓名、身份证号、学号等信息,选取其中的几个组合信息进行查询。系统在接受到查询数据后,会自动进行数据的分析,如果数据为空则设置改参数的值为空字符串,避免对系统的数据查询造成影响。查询数据经过处理后,利用hibernate的hql进行模糊查询,同时进行分页的实现。每次利用hibernate只查询10条数据记录返回给用户显示。虽然,综合查询提供了极大的方便性,同时,也出现了一个麻烦。那就是,在进行分页处理的过程中,当要显示下一页的数据,系统必须能够记住前一次模糊查询中的数据参数。例如:系统管理员需要查询信息学院、2010年毕业的所有学生,请求下一页数据的时候,系统必须能够记住上次请求的数据还是信息学院、2010年毕业的学生。在此次的系统开发中,当请求下一页数据时,同时将查询关键字一同作为参数发送到程序中进行处理。学生档案信息的综合查询功能界面如图4-3所示:图4-3:主功能界面4.3.2学生档案信息的批量导入功能系统管理员可以对学生档案信息进行添加,但是,在实际生活中,只能单个的添加学生档案信息是根本不能满足需求的。日常工作中,我们可能会经常用到excel表格来处理数据。根据这一需求,本系统实现了批量导入excel数据的功能。只要数据按着excel表格中的特定格式进行输入,就能够将相应的学生档案信息录入到系统中去。录入的过程中,系统会同时操作三个数据库表。学生登录信息表,学生基本信息表和学生档案信息表。在功能实现的过程中,首先需要解决的问题是文件的上传。系统管理员将excel表格上传到服务器中,然后又程序对excel表格进行解析处理,最后插入到数据库中去。关于文件上传功能详见4.5.3struts2的文件上传;关于excel解析的操作详见4.5.6中poi进行excel的解析操作。要求excel文件具有如图4-4所示格式:图4-4:excel数据格式4.3.3管理员对学生档案信息审核系统管理员可以对学生的基本信息和档案信息的修改进行审核操作。学生提交信息审核后,在管理员的系统中可以查看待审核的信息。审核学生信息的可靠性,做出相应的判断,若信息属实,则批准学生用户对信息的修改,否则拒绝用户对信息的修改。4.3.4操作权限的拦截系统高级管理员具有着最高的权限,可以进行任意操作,所以必须对其进行合理的保护。除了判定用户是否登陆之外,还必须对每个action的访问实现权限控制,因为如果用户登陆成功了,而且以前拥有某个权限的访问,记录下访问的action,而现在没有权限了,也能直接在地址栏输入action路径直接访问,这将使权限这一模块毫无用处。我们可以利用struts2的拦截器可以很方便实现对action的访问拦截,先行判断然后再决定是否能够访问。解决方法:在struts.xml中定义拦截器的package,定义一个拦截器,配置拦截器栈,其他需要使用到拦截器的package在配置是使用extends这个拦截器package<interceptors><!--自定义拦截器--><interceptorname="permission"class="erceptor.AdminInterceptorCheck"/><!--配制默许的拦截器到拦截器栈--><interceptor-stackname="permissionStack"><!--此处先后顺序好像没影响--><interceptor-refname="permission"/><interceptor-refname="defaultStack"/></interceptor-stack></interceptors><!--配置默认的拦截器--><default-interceptor-refname="permissionStack"/><!--定义全局结果,用于在拦截器中返回登录页面或者错误提示页面--><global-results><resultname="logout">/logout.jsp</result><resultname="error">/error.jsp</result></global-results>同时,在用户登陆后从数据库查询权限,转为一个hashmap,权限id为键值为了查询方便,放入session中,每次验证只从session中取得响应的数据验证。 session.put("user",u);在拦截器中要对每一次管理员操作都进行权限的验证,如果通过才能继续进行操作,失败则登录界面。拦截器和过滤器的比较:比较一,filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数,而interceptor则基于java本身的反射机制,这是两者最本质的区别。

比较二,filter是依赖于servlet容器的,即只能在servlet容器中执行,很显然没有servlet容器就无法来回调doFilter方法。而interceptor与servlet容器无关。

比较三,Filter的过滤范围比Interceptor大,Filter除了过滤请求外通过通配符可以保护页面,图片,文件等等,而Interceptor只能过滤请求。

比较四,Filter的过滤例外一般是在加载的时候在init方法声明,而Interceptor可以通过在xml声明是guest请求还是user请求来辨别是否过滤。4.4学生用户功能实现学生用户可以登录系统对自己的个人信息进行管理操作。4.4.1学生留言功能实现毕业生档案管理系统在实际的运行过程中,可能会存在一些问题,或者操作不当。这时候,可能会需要学生和管理员取得联系。在此系统中,特定添加了留言的功能。方便学生和管理员之间取得联系。具体的留言操作界面如图4-5、4-6所示:图4-5:留言管理界面图4-6:留言添加界面4.4.2学生提交档案的审核系统管理员可以对学生的基本信息和档案信息的修改进行审核操作。学生提交信息审核后,在管理员的系统中可以查看待审核的信息。审核学生信息的可靠性,做出相应的判断,若信息属实,则批准学生用户对信息的修改,否则拒绝用户对信息的修改。4.5系统其他相关功能实现4.5.1struts2的action对表单数据的封装传统的开发模式中,采用javaBean对form数据进行封装。在这里,struts2利用反射机制,更加便捷的对请求的数据进行了完美的封装。只要form表单中的数据字段的name属性和Action实现类中的属性字段名称相同,则,struts2可以继续拧自动数据填充,为每一个字段进行复制,大大减轻的代码的工作量。4.5.2struts2的action进行业务逻辑的操作Struts2的Action只是一个非常普通的Java对象,并不具备任何Web容器的特质,但是我们需要把Action放到一个更加大的环境中来看。事实上,Struts2为Action的执行,准备了完整的数据环境和执行环境。而这个执行环境,就保证了Action在Web容器中的顺利运行。

在Struts2中,每个Http的请求,会被发送到一个Filter。而这个Filter,就会针对每个请求,创建出一个代码的执行环境,并在这个基础上,为每个执行环境配备与之对应的数据环境,这个数据环境中的内容,就来自于Web容器中的一个又一个对象。这样,就能够顺利调用Action执行代码而无需担心它是否运行在Web容器中了。Action是一个普通的Java类,而不是一个Servlet类,完全脱离于Web容器,所以我们就能够更加方便地对Control层进行合理的层次设计,从而抽象出许多公共的逻辑,并将这些逻辑脱离出Action对象本身。事实上,Struts2也正是这么做的,无论是Interceptor,还是Result,其实都是抽象出了Action中公共的逻辑部分,将他们放到了Action的外面,从而更加简化了Action的开发。实例代码:在action中可以方便的进行业务处理,大大降低了程序的耦合度。publicStringexecute()throwsException{ Maprequest=(Map)ActionContext.getContext().get("request"); Mapsession=(Map)ActionContext.getContext().get("session"); StringsessionCode=(String)session.get("certCode"); code=person.getCheckcode(); if(!code.equals(sessionCode)){ request.put("info","验证码输入错误"); return"result"; } if(type.equals("student")&&person!=null){ StudentDaosd=newStudentDao(); if(sd.checkStudent(person)){ Studentst=sd.getStudent(person.getUsername()); session.put("student",st); return"student"; } }elseif(type.equals("teacher")&&person!=null){ UserDaoud=newUserDao(); if(ud.checkUser(person)){ Useru=ud.getUser(person.getUsername()); session.put("user",u); if(u.getType()==1){ return"teacher"; }else return"admin"; } }elseif(type.equals("manager")&&person!=null){ UserDaoud=newUserDao(); if(ud.checkUser(person)){ Useru=ud.getUser(person.getUsername()); session.put("user",u); if(u.getType()==1){ return"teacher"; }else return"admin"; } } request.put("info","请检查登录账号,密码,身份"); return"result"; }4.5.3struts2的文件上传Struts2本身并没提供上传的组件,我们可以通过调用上传框架来实现文件的上传。一、配置上传解析器首先要配置项目的框架,也就是倒导入"struts2-core-2.2.1.jar"库文件,找到org.apache.struts2包下的default.porperties资源文件。如下图;资源文件中给出了不同的strus2的默认配置,我们可看到struts2默认是jakarta作为其文件上传的解析器。jakarta是Commo-FileUpload的框架。如果要使用Commo-FileUpload框架来上传文件,只需将"commons-fileupload-1.2.1.jar"和"commons-io-1.3.2.jar"两个jar复制到项目中的WEB-INF/lib目录下就可。如果想要使用COS框架来上传文件,只需将“cos.jar”复制到项目中就可以,然后在修改struts.multipart.parser常量值。修改常量值有两种方法,一是在"struts.xml"中修改,代码如下:<constantname="struts.multipart.paeser"value="cos"></constant>二是在perties中修改,代码如下:sruts.multipart.parser=cos创建一个文件夹让系统默认指象C:\upload文件夹,如果不设置的话系统会去指向服务器的指定目录,比如TOMCAT里的\Tomcat6.0\work\Catalina\localhost\Struts2,我们来创建这个指向,来临时存储上传文件,在src下创建perties文件perties:里面输入以下内容保存程序中的配置是:<constantname="struts.multipart.saveDir"value="/tmp"/><constantname="struts.devMode"value="true"/>Action实现的上传功能同时将excel文件进行解析,然后保存到数据库中:Filesavefile=newFile(newFile(realpath),fileFileName); if(!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs(); FileUtils.copyFile(file,savefile); ExcelPausepoi=newExcelPause(); if(poi.pauseExcel(savefile)){ request.put("info","成功导入数据!"); }elserequest.put("info","导入数据失败!");4.5.4hibernate完成数据对象的映射Hibernate帮助基于普通的Java对象模型的持久对象的创建,从而允许持久对象拥有复杂的结构如混合类型、集合和属性,还可以拥有用户自定义的类型。现在这些持久对象可以有效的反映出底层数据库模式的复杂结构。Hibernate依赖于“运行期反射”。“运行期反射”在运行期收集关于对象和它们相应的数据库映射的信息,这就废除了持久层内对象数据库映射的硬编码。这样,Hibernate使得持久层以持久层代码的最小修改就能够适应底层数据库模式的任何未知变化。反射是核心Java的一个特征,它促使Java代码发现关于所装载的类的域、方法和构造器。反射允许使用反射的域、方法和构造器,在安全限制内,运行对象上的底层配对物。要了解更多信息请看链接。数据库关系表示为面向对象中的关系:1、关联:将数据库表之间的关系转化为对象之间的关系;在Hibernate中总指实体之间的关系。2、映射:完成java对象到数据库表的双向转换。3、级联(可选):将数据库中的级联转化为对象中的级联(两者(对象和数据库表)没关系)。4、Hibernate的表和对象的映射:1、实体类型映射:4.1.1、主键之间的映射4.1.2、类属性与表字段的映射4.1.3、组件映射4.1.4、集合映射2、实体关联关系映射:4.2.1、关联关系映射publicclassUserimplementsjava.io.Serializable{ privateStringadmin_name; privateStringadmin_pass; privateStringadmin_id; privateinttype; publicStringgetAdmin_name(){ returnadmin_name; } publicvoidsetAdmin_name(StringadminName){ admin_name=adminName; } publicStringgetAdmin_pass(){ returnadmin_pass; } publicvoidsetAdmin_pass(StringadminPass){ admin_pass=adminPass; } publicStringgetAdmin_id(){ returnadmin_id; } publicvoidsetAdmin_id(StringadminId){ admin_id=adminId; } publicintgetType(){ returntype; } publicvoidsetType(inttype){ this.type=type; }}<hibernate-mapping><classname="com.ypf.model.User"table="user"catalog="graduate"lazy="false"><idname="admin_id"type="java.lang.String"><columnname="admin_id"/></id><propertyname="admin_name"type="java.lang.String"><columnname="admin_name"length="18"/></property><propertyname="admin_pass"type="java.lang.String"><columnname="admin_pass"length="20"/></property><propertyname="type"type="java.lang.Integer"><columnname="type"/></property></class></hibernate-mapping>4.5.5hibernate完成数据增删改查操作Hibernate中的增删改查操作都是通过session里的方法来进行的。一查询session中用于查询的有两种方法:get和load。这两种方法都是返回实体对象,不同的是,如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException。load()方法可返回实体的代理类实例,而get方法永远直接返回实体类。load方法可以充分利用内部缓存和二级缓存中的现有数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取。二保存session中的save方法可以保存,如果你查出一个对象,修改它,再用save保存,那这就是修改,所以save具有保存、修改的作用。Hibernate中还有update()和saveOrUpdate(),他们的作用又是什么。先说一说VO和PO的概念,在Hibernate中,VO是指普通的数据Bean,一个和Hibernate没有关系的数据Bean,PO也是一个数据Bean,PO是被持久化的数据Bean,并且在Session生命周期内。其实VO也是PO的一种,在Hibernate中PO总共有三种状态,1.未被持久化的VO。2.已被持久化的PO,并且在Session生命周期内。3.被持久化过,但现在不在Session的生命周期内,以VO的身份在运行。update()和saveOrUpdate()是用来对跨Session的PO进行状态管理的。假设你的PO不需要跨Session的话,那么就不需要用到,例如你打开一个Session,对PO进行操作,然后关闭,之后这个PO你也不会再用到了,那么就不需要用update()。看看下面的代码:Foofoo=sess.load(Foo.class,id);foo.setXXX(xxx);mit();PO对象foo的操作都在一个Session生命周期内完成,因此不需要显式的进行sess.update(foo)这样的操作。Hibernate会自动监测到foo对象已经被修改过,因此就向数据库发送一个update的sql。当然如果你非要加上sess.update(foo)也不会错,只不过这样做没有任何必要。而跨Session的意思就是说这个PO对象在Session关闭之后,你还把它当做一个VO来用,后来你在Session外面又修改了它的属性,然后你又想打开一个Session,把VO的属性修改保存到数据库里面,那么你就需要用update了。Catcat=(Cat)firstSession.load(Cat.class,catId);firstSession.save(cat);//inahighertieroftheapplicationcat.setMate("Mate");//later,inanewsessionsecondSession.update(cat);//updatecatcat对象是在第一个session中取得的,在第一个session关闭之后,它就成了PO的第三种状态,和Session已经分离的PO,此时他们的状态信息仍然被保留下来了。当他们进入第二个session之后,立刻就可以进行状态的更新。但是由于对cat的修改操作:cat.setMate(“Mate”);是在Session外面进行的,Hibernate不可能知道cat对象已经被改过了,第二个Session并不知道这种修改,因此一定要显式的调用secondSession.update(cat);通知Hibernate,cat对象已经修改了,你必须发送update的sql了。所以update的作用就在于此,它只会被用于当一个PO对象跨Session进行状态同步的时候才需要写。而一个PO对象当它不需要跨Session进行状态管理的时候,是不需要写update的。再谈谈saveOrUpdate的用场:当一个数据Bean,你不知道它是VO还是被持久化的VO,那么就不知道到底是该调用save还是该调用update,这时,调用saveOrUpdate会帮你解决这个问题,如果这个数据Bean是一个新对象,那么Hibernate会保存这个对象,如果是被持久化过的对象,Hibernate会在数据库中修改这个对象。三删除单个删除直接用session.delete(object),如果是批量删除,使用session.createQuery(hql).executeUpdate()。如:Stringhql="deleteUserwherename='wangning'";Queryquery=session.createQuery(hql);intcount=query.executeUpdate();也可使用session.createSQLQuery(sql).executeUpdate()。4.5.6poi进行ecxel的解析操作Poi可以很好地对excel文档进行解析操作,方便了人们的日常工作。下面的实例是poi解析excel并输出excel的每行每列的数据。下面是poi解析excel的核心代码; ExcelPausepoi=newExcelPause();//List<List<String>>list=poi.read("d:/1002.xls");List<List<String>>list=poi.read("d:/1002.xls");if(list!=null){for(inti=0;i<list.size();i++){//System.out.print("第"+(i)+"行");List<String>cellList=list.get(i);5毕业生档案系统软件测试1、集成测试集成测试将测试每一个部件之间的工作是否正常。在这个阶段,我们假设所有的单元已通过开发人员个人在单元测试阶段测试全部通过,没有任何错误。集成测试包括以下内容:连续集成测试数据库测试数据整合测试2、功能测试功能测试环境操作系统:windows98内存:128M网络环境:校园网本功能测试共分为:系统功能测试测试是否可以正常添加用户和修改密码,系统正常退出测试是否可以正常对班级进行管理,学生的单个或成批添加,删除以及新生信息的导入和学生信息备份测试成绩管理中是否可以进行分数录入,汇总及排名和成绩备份等操作测试课程信息模块中针对课程管理,老师和课程的关系之间操作是否正常测试是否可以正常查询学生,老师和成绩3、链接测试这一部分将测试系统各模块之间的超链接跳转是否正确4、文档测试本章主要内容为:测试文档是否包括全部内容测试软件功能描述与其他功能有没有冲突查看软件功能描述是否是原来系统分析和需求查看文档内容在特定的情况和进度下,以现有人力,物力和资源能否实现5、负载测试这一部分将测试正常情况下系统性能和用户数目之间的关系本章主要内容为:查看在多个用户同时使用本系统时是否正常6、极限测试这一部分将测试所有极端的情况,如速度非常快的情况下和速度非常慢的情况下,以及所有其它的极端情况。本章主要内容为:网络资源极限测试综合极限测试6结束语毕业生档案管理系统(课程设置和打印统计)的完成,它在审核这一功能中能够对不同情况的资料进行设置和打印,针对需要的信息进行设置和打印。在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对学生管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。虽然网络在学生管理系统中的应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本学生管理系统是一套学校在日常管理中必不可少的管理软件,通过开发这个系统,我掌握了的项本过程,了解了的基本知识巩固了我对javaweb的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,和整个开发流程的掌握。致谢在论文即将完成之际,回顾紧张但又充实的学习班和开发过程,本人在此向所有关心我的及帮助我的老师和同学们致以最真诚的感谢。在本次毕业设计中,我从指导老师常淑惠老师,身上学到了很多东西。他认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到很大的提高,这对于我以后的工作和学习都有一种巨大的帮助,在此感谢他耐心的辅导。在撰写论文阶段,邹老师几次审阅我们的论文,提出了许多宝贵意见,没有他的指导,我们就不能较好的完成课题设计的任务。另外,我还要感谢在这几年来对我有所教导的老师,他们孜孜不倦的教诲不但让我学到了很多知识,而且让我掌握了学习的方法,更教会了我做人处事的道理,在此表示感谢。同时,在系统开发过程中还有同组的同学也给了我不少帮助,这里一并表示感谢。参考文献[1]孙卫琴、李洪成.Tomcat与JavaWeb开发技术相机[M].北京电子工业出版社,2004年[2](美)BruceEckel,Java2编程思想2002-9[3]刘永华,于春花.Java网络编程.清华大学出版社.2008[4]印雯Java语言与面向对象程序设计(清华大学出版)[5]殷沈琴电子教学参考资料系统的研究及其基于JSP技术的设计2007大学图书[6]萨师煊、王珊.《数据库系统概述》.高等教育出版社,2002年2月[7]陈刚.MyEclipse从入门到精通[M].北京:清华大学出版社,2005年[8]贺松平.基于MVC模式的B/S架构的研究与应用[D].武汉:华中科技大学[9]朱红,司光亚.《JSPWeb编程指南》.电子工业出版社,2001年9月[10]任永功王政军基于JSP和MySQL的动态表结构的设计与实现计算机工程2006/05[11]林寒超,张南平.Hibernate技术的研究[J].计算机技术与发展,2006/16[12]孙卫琴精通struts[M]电子工业出版社2004/8目录TOC\o"1-2"\h\z\u第一章总论 1第二章项目提出的背景和必要性 4第一节项目建设背景 4第二节项目建设的必要性 4第三节项目

温馨提示

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

评论

0/150

提交评论