




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计管理系统的设计毕业论文目 录摘 要IAbstractII目 录I第 1 章 引 言11.1 课题研究目的和意义11.2 国内外发展状况11.3 开发环境2第 2 章 技术概述32.1 设计原理42.2 系统设计模式选定52.3 数据库介绍52.4 Struts介绍62.5 系统中所应用的脚本和Ajax技术6第 3 章 需求分析83.1 项目概述83.1.1 应用目标83.1.2 作用及范围83.2 用户需求83.2.1 功能需求分析93.2.2 输入输出要求103.2.3 数据管理能力要求113.2.4 故障处理要求113.2.5 其他专门要求113.3 对功能的规定11第 4 章 系统设计与实现134.1 设计方案134.2 数据库设计134.2.1 概念设计134.2.2 逻辑结构设计144.2.3 部分存储过程实现154.2.4 数据库访问的struts实现164.3 功能模块设计与实现174.3.1 处理流程图174.4 环境配置194.5 系统出错处理设计204.6 注册功能204.7 题目申报等申报模块244.8 学生选题模块30第 5 章 系统运行和调试335.1 测试目的335.2 测试环境335.3 测试方法与测试过程335.3.1 学生模块的测试335.3.2 教师模块的测试335.3.3 领导模块的测试335.3.4 用户密码修改模块的测试335.4 运行与测试结果34第 6 章 结 论35参考文献36致 谢3736沈阳工业大学本科生毕业设计(论文)第 1 章 引 言1.1 课题研究目的和意义随着网络技术的快速发展,现在很多大学和社会其他部门都已经开设了网络管理,通过计算机网络实现异地文件传输和管理。随着网络技术的不断深入发展,就要求有更好、更完善的软件系统应用到教育教学管理当中去,这就给软件设计人员提出了更高的设计要求。毕业设计的管理是高校管理工作中的一项重要内容。随着高等教育教学改革的不断深入,对于高校毕业设计管理的规范化、科学化、信息化已成为目前面临的重要课题。目前,很多高校的毕业设计管理还存在一些问题。例如:根据教学要求,通常学生在大学最后一年需要在外地进行实习,此时又面临着毕业设计选题问题;另外,毕业设计完成时,论文的上交也存在困难。同时在做毕业设计的过程中,由于学生在外地,指导老师对学生的指导和交流也会遇到一些麻烦。要解决以上这些问题,一方面要提高管理员业务知识和管理水平;另一方面要充分利用现代科学技术,建立现代化的管理信息系统。对于校园网,我校已经进行了部分系统的建设以及使用,并在使用中取得极大方便。随着学校规模的壮大,我学院本科生毕业设计信息现急需一套规范的,实用的,安全的系统进行管理。由于学校毕业设计环节所需人力物力较大,为减少教师不必要的劳动和重复性工作,为方便学院对本科生毕业设计的管理,为学生更快捷的了解毕业设计要求和下载相关表格,特设计本系统。这样,教师只须将毕业生管理的重点放在审核上,而不是繁琐的流程,进而提高教师工作效率。 毕业设计信息管理系统能很好对本科毕业生毕业设计进行管理。通过一系列操作,完成学生毕业设计中从申报表到指导手册的下发,论文的提交,审批,统计,评分等功能。极大地便捷了学生和指导老师,方便学员管理,并且大大减轻了教师的负担,把老师从繁重而又枯燥的工作中解脱出来。1.2 国内外发展状况毕业生论文管理是大学的主要管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,毕业生工作地点的差异,毕业生论文管理工作日趋繁重、复杂。迫切需要研制开发一个基于Internet网的综合网上毕业生论文管理软件。 国外高校一般具有较大规模的稳定的技术队伍来提供服务与技术支持,纵观这些系统主要有以下几个特点:先进性:实现网络化,甚至一些著名院校都实现跨校访问历年毕业论文。通用性:各专业都能使用。方便性:无论身在何地,只要有网络,便可实现论文提交及查询。灵活性:题库随时更新。国内高校信息化建设相对起步较晚,尤其是毕业生论文方面。在数字校园理论逐步应用的过程中,各高校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内高校教务管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相比都有一定的差距。纵观目前国内研究现状,在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。目前国家的教育体制也正处在不断改革、创新的阶段,我国教育部门充分吸取国外优秀的教学模式,结合国内多年的办学经验,逐步探索出适合中国特色的教学形式,国家教育部面向各级各类学校开展了全面学分制改革。因此,毕业设计管理软件应充分依托校园网,实现教务信息的集中管理、分散操作、信息共享,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。1.3 开发环境运行环境硬件:P4以上计算机,256M内存以上。软件:Windows98以上,MySQL5.0以上,JDK1.4以上,Tomcat5.0。开发环境硬件:P4以上计算机,256M内存以上。软件:Windows2000server,MySQL5.1,JDK1.5以上,Tomcat5.0,Eclipse and Myeclipse。第 2 章 技术概述本毕业设计的管理系统主要采用B/S结构,即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-Tier结构。主要技术包括Jsp、Struts框架、Hibernate技术、MySQL数据库及MySQL数据库存储过程、JavaScript、Ajax等。并整合当今流行的网页程序开发集成工具DreamWeaver,Java开发集成工具Eclipse+MyEclipse,发布工具Tomcat。整体设计遵循软件工程生命周期方法,经过需求分析、总体设计、文档和代码的编制、模块测试和系统实现几个阶段。本系统制作工具先进、体系结构完整。本系统采用Struts作为表现层和跳转功能。并采用Hibernate作为数据持久层。采用这两种开源中间件系统的先进性和稳定性将有所提升。对于数据库采用MySQL数据库。MySQL数据库对于J2EE框架来说整合性非常强支持非常全面,而且需求服务器资源配置较小。在数据服务量较少的情况,正需选择一种中小型数据库,MySQL则是最佳选择。发布操作系统定为windows2000 or windows2003可以选用此数据库。此数据库完全可以满足本系统的需求。本系统涉及到的查询都由Hibernate实现;增,删,改操作主要依赖于Hibernate事务实现。部分重要功能,需多步操作或者需安全控制的功能采用MySQL数据库的存储过程和触发器来实现。这样程序将更具稳定性,并且使程序效率更高程序的重用性更好。页面许多功能采用客户端程序JavaScricpt脚本编写,使服务器端大大降低了客户端请求,更有效的利用了服务器资源。本系统JavaScricpt脚本在一定意义上实现了Ajax。更体现出程序的先进性。JSP(Java Server Pages)是一种动态网页技术标准。JSP是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术是用Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于Http的应用程序。在传统的网页Html文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以Html格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 e-mail 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。 Web系统本身的复杂性与业务流程的不确定性,是相当难于处理的。用户可能随时使用一个链接从系统的这部分跳到另一部分。Struts项目的目标是为创建Java Web应用提供一个开放源代码的Framework。Struts Framework的内核是基于例如Java Servlets, JavaBeans, ResourceBundles, 和 XML,以及各种 Jakarta Commons包的标准技术的灵活的控制层。Struts提供了它自身的控制器组件,并整合了其他技术,以提供模型和视图。对于模型,同大多数的第三方软件包一样,如Hibernate, iBATIS, 或者 Object Relational Bridge,Struts能够和标准数据连接技术相结合,如JDBC和EJB。对于视图,Struts与JavaServer Pages协同工作,包含JSTL和JSF。大多数应用程序都需要处理数据。Java应用程序运行时,往往把数据封装为相互连接的对象网络,但是当程序结束时,这些对象就会消失在一团逻辑中,所以需要有一些保存它们的方法。有时候,甚至在编写应用程序之前,数据就已经存在了,所以需要有读入它们和将其表示为对象的方法。手动编写代码来执行这些任务不仅单调乏味、易于出错,而且会占用整个应用程序的很大一部分开发工作量。2.1 设计原理本系统前台运用Ajax,使程序运行速度等快更稳定,减少服务器的工作量,大大提高了效率。在J2EE框架上,本系统采用Struts和Hibernate。其中Struts控制MVC流程;Hibernate作为中间层,持久层。Struts是系统结构更鲜明,更典型,更符合J2EE规范。Hibernate使程序更简单,更快速,更稳定。在数据库上使用了存储过程,使程序更安全,更快速,更具有重用性。2.2 系统设计模式选定目前,网络应用软件运行的模式主要有二类:Client/Server模式,Browser/Web模式。前者主要的缺点是维护、升级较麻烦,后者是近几年伴随Internet迅速发展起来的一种技术,它与客户/服务器方式类似,客户端是一个标准的浏览器,服务器端是Web Server ,而Web Server与数据库和应用服务器的紧密结合,使得这种模式的应用范围不断扩大,它已不仅仅用于网上查询,有很多部门的业务系统、企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。另外,毕业设计管理系统的软件也必将不断的更新;同时软件产品本身就要经过一个不断自我完善的过程。基于上述考虑,用Browser/Web模式来设计考试系统比较合适,服务器端本系统采用MySQL数据库系统和J2EE框架来构成毕业设计管理系统;客户端采用浏览器来完成毕业设计从拟题到提交全过程,同时可进行远程系统维护和管理。B/S优点是:客户端无需下载。具备了很好的移动性,确保不同的使用者都能以最佳的方式来使用所需的系统,普通使用者只需要使用浏览器就可以在任何地方通过身份权限确认后就可以进行相关操作,极大的发挥了B/S结构的优点。图2-1 三层体系结构2.3 数据库介绍MySQL是一个精巧的SQL数据库管理系统。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与Apache和PHP/PERL结合,为建立基于数据库的动态网站提供了强大动力。MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序MySQL和很多不同的客户程序和库组成。2.4 Struts介绍在Struts中,用户的请求一般以*.do作为请求服务名。如图1-2,是Struts MVC 体系结构。所有的*.do请求均被指向ActionSevlet, ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此 FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的 FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。图2-2 STRUTS MVC 体系结构2.5 系统中所应用的脚本和Ajax技术本系统的前台部分功能采用Ajax来实现。这使系统大大提升了性能。Ajax技术以Javascript为依托,而JavaScript是一种解释性的,基于对象的脚本语言(an interpreted, object-based scripting language)。HTML网页在互动性方面能力较弱,例如下拉菜单,就是用户点击某一菜单项时,自动会出现该菜单项的所有子菜单,用纯HTML网页无法实现;又如验证HTML表单(Form)提交信息的有效性,用户名不能为空,密码不能少于4位,邮政编码只能是数字之类,用纯HTML网页也无法实现。要实现这些功能,就需要用到Javascript。JavaScript作为一种脚本语言,比HTML要复杂,但是因为JavaScript写的程序都是以源代码的形式出现的,正因为可以借鉴、参考优秀网页的代码,所以让JavaScript本身也变得非常受欢迎,从而被广泛应用。原来不懂编程的人,多参考JavaScript示例代码,也能很快上手。JavaScript主要是基于客户端运行的,用户点击带有JavaScript的网页,网页里的JavaScript就传到浏览器,由浏览器对此作处理。前面提到的下拉菜单、验证表单有效性等大量互动性功能,都是在客户端完成的,不需要和Web Server发生任何数据交换, 因此,不会增加Web Server的负担。第 3 章 需求分析3.1 项目概述该软件为节省毕业设计环节的人力物力,减少手工操作,提高工作效率设计。使用范围初步为软件学院,可作为沈阳工业大学主页教学管理系统的子系统。本系统将成为毕业设计管理系统。根据沈阳工业大学毕业论文的具体需求,可以做到学生毕业论文的规范管理、科学统计和快速查询,论文审阅等各项功能。主要包括学生选题、中期进度考核表、相关文档下载,教师拟题申报、查看相关报告、毕业设计中期检查、审评毕业论文、归档总结,学院审核论文、成绩评定、查询等功能。3.1.1 应用目标系统界面简洁,操作方便、简易,最大限度地满足外出实习学生的选题需求,以及教师异地审阅、评定。学生毕业设计管理人员使用本系统可以进行快速的毕业生毕业设计信息管理、检索,以节省大量的工作时间和工作量,提高毕业设计管理效率。3.1.2 作用及范围本系统适用于高等院校的学生毕业设计信息管理,有助于高校毕业设计管理,是管理更加方便、高效率,协助学院建立完备的本科毕业生毕业设计信息管理体系。3.2 用户需求毕业设计管理系统需要满足来自三方面的需求,这三个方面分别是大四毕业生、指导教师和教研组管理人员,如图3-1所示。功能是完成学生毕业设计中从选题到论文的提交,统计等功能。学生模块可实现选择课题、任务书下载、论文提交、中期抽查成绩查阅等功能。教师模块可实现学生开题报告查阅、上传文件等功能。领导模块可实现学生、教师增,删,改,论文查阅、中期评定、最终评分等功能。图3-1 系统功能模块图3.2.1 功能需求分析以下是本系统三个功能模块的模块图,学生功能模块主要实现论文提交、表格下载、成绩查看等功能如图3-2。图3-2 学生功能模块图教师模块的功能主要为查阅学生上交的相关材料、上报题目等,如图3-3。图3-3 教师功能模块图教研组领导主要实现用户添加,成绩评定等功能,如图3-4所示。图3-4 领导功能模块图3.2.2 输入输出要求解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。3.2.3 数据管理能力要求说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。3.2.4 故障处理要求列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。3.2.5 其他专门要求运行环境要求:MYSQL客户端软件、windows98以上操作系统;安全保密的要求:一般;使用方便要求:方便,实用;可维护性:3-5年可维护;可补充性:一般;易读性:强易读性;可靠性:高度可靠;可转换性:低。3.3 对功能的规定用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。如图3-5为教师题目申报处理IPO图,3-6为学生选择课题IPO图。教师题目申报处理IPO图:输入部分(I)处理部分(P)输出部分(O)1.输入教师号2.输入:题目,实习地点,题目来源,题目类型,学生专业,同题目学生人数,往届是否适用,合作指导,职单位3.输入审查意见1.提取教师信息2.提交3.处理过程1.将老师信息返回表单2.输出待审核的申报表3.输出选题表,合格及不合格申报分别标识图3-5教师题目申报处理IPO图学生选择课题IPO图:输入部分(I)处理部分(P)输出部分(O)1.学生输入专业,往届与否2.选择题目,输入学号1.根据专业往届与否及同题人数是否已满处理2. 处理过程检验学号学号已选题处理学号未选题处理1. 处理过的选题目表2. 输出不存在该学号3. 学生已选题4. 选题成功,更新后的选题表图3-6 学生选择课题IPO图第 4 章 系统设计与实现4.1 设计方案为了便于系统扩展、更加合理的设计,必须严格遵循软件工程的思想。首先利用软件工程的思想进行整个系统的分析和设计,然后做出需求分析和系统的概要设计,在详细设计阶段以解决关键问题为突破口,充分发掘代码的可复用性。本系统前台采用Java作为开发语言,MyEclipse作为开发环境,后台采用MySQL 6.0作为数据库。4.2 数据库设计4.2.1 概念设计实体-联系图:该图提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。对毕业设计管理系统的实体关系(E-R)分析是建立在UML系统模型基础上的。E-R分析的目的是确定系统中所有实体之间的关系和实体的属性,画出E-R图,为数据库建模打下基础。画E-R图通常使用自底向下的设计方法,首先对局部视图进行分析设计,然后再实现视图集成。如图4-1为本系统的部分实体-联系图。1N1111NNN111N教师制定毕业设计题目申报表审核系领导及教研室统计题目表发放学生学生选题学生选题任务书指定任务书发送11N发送图4-1 本系统部分实体关系图4.2.2 逻辑结构设计数据库设计严格按照第三范式设计。具体表名如下:design_answer 毕业论文答辩意见表sdesign_opinion 毕业设计(论文)评阅意见表design_schedule 课题进度计划excellence_design 优秀论文申请表middle_report 中期检查报告mission_letter 任务书open_answer 开题报告答辩情况表open_report 开题报告quality_analyse 质量分析报告result_judge 成绩评定表schedule 进度考核表specialty 专业表student 学生基础信息表summarize 学生工作总结teacher 教师基础信息表theme_apply 题目申报表admin 系领导与管理用户表部分表结构如下:表4-2 student 学生基本信息表 列名数据类型可否为空说明student_id Varchar(10)not null学生学号(主键)passwordVarchar(45)not null学生密码nameVarchar(45)not null学生姓名sex Char(2)null学生性别brithDatetime(8)null出生日期class_idInt(10)null班号entrance_dateDatetime(8)null入校时间addressVARCHAR(50) NULL家庭住址commentVARCHAR(200)NULL注释表4-3 teacher 教师基本信息表列名数据类型可否为空说明teacher_id Varchar(32)not null教师号(主键)passwordVarchar(45)not null教师密码teacher_nameVarchar(45)not null教师姓名sex Char(2)null教师性别brithDatetime(8)null出生日期telephonevarchar(20)null电话staffroomVarchar(45)null教研室degreeVARCHAR(45) NULL学位4.2.3 部分存储过程实现由于存储学生选题时,选择同一题目的学生容易超过教师带学生人数。所以选题时需要先查看本题是否已经达到教师拟定带学生的数量。如果超过,返回值为false,如果未达到则此学生的选择题目更新为所选题目,并返回true。存储过程具体实现代码如下:CREATE PROCEDURE choosetheme(IN intheme varchar(10),in instudentid varchar(11),out isok varchar(10) )BEGINdeclare countnum1 int;declare countnum2 int;SELECT COUNT(theme_id) INTO countnum1 FROM student where theme_id=intheme ;SELECT number INTO countnum2 FROM theme_apply where theme=intheme ;if (countnum1countnum2)thenUPDATE student SET theme_id=intheme where student_id=instudentid;set isok=true;elseset isok=false;end if;END 入口参数intheme为学生所选的题目名字符类型为10位字符型,入口参数instudentid为学生id,入口参数为11位字符型;出口参数isok为10位字符串。4.2.4 数据库访问的struts实现本项目与数据库的连接采用hibernate连接,Hibernate描述文件可以是一个properties或xml 文件,其中最重要的是定义数据库的连接。下面列出的是一个XML格式的hibernate.cfg.xml描述文件。其核心代码如下:rootjdbc:mysql:/localhost:3306/theme?useUnicode=true&characterEncoding=UTF-8org.hibernate.dialect.MySQLDialectcom.mysql.jdbc.Driver111com.mysql.jdbc.Drivertrue4.3 功能模块设计与实现4.3.1 处理流程图学生选题处理流程图,如图4-4教师拟订题目申报表题目申请表教研室审核制定任务书系领导审核统计申报题目题目表学生学生毕业设计任务书选题学生选题表图4-4 学生选题处理流程图教师上传文件处理,如图4-5教师学生填写上报教师院领导教研室领导评分存档。 。沈阳工业大学毕业设计(论文)学生工作总结沈阳工业大学毕业设计(论文)进度考核表毕业设计成绩评定表沈阳工业大学毕业设计(论文)中期检查表图4-5 教师文件处理流程图4.4 环境配置Hibernate简要配置方法:需要Java SDK、 Hibernate包、Ant包、和JDBC Driver。将Hibernate包和Ant包分别解压至c:dev下(此目录不重要,你可以换其它任何目录)。配置环境1、你需要添加一个新的环境变量: ANT_HOME,让它指向c:dev。并在PATH环境变量里添加%ANT_HOME%bin。2、你需要添加一个新的环境变量: JAVA_HOME,让它指向你的j2sdk根目录。并在PATH环境变量里添加%JAVA_HOME%bin。3、创建一个项目目录,比如c:workspaceMy1stHibernate。在项目目录下,另外创建三个目录: src, classes, lib。在lib目录下,创建两个目录: hibernate和db。这样你有了如下的文件结构:c:workspaceMy1stHibernatec:workspaceMy1stHibernatesrcc:workspaceMy1stHibernateclassesc:workspaceMy1stHibernatelibc:workspaceMy1stHibernatelibhibernatec:workspaceMy1stHibernatelibdb4、将c:devhibernate2.jar文件copy到c:workspaceMy1stHibernatelibhibernate下。将c:devlib下的所有文件同样copy到c:workspaceMy1stHibernatelibhibernate下。将你的JDBC Driver文件(一般是一个jar文件)copy到c:workspaceMy1stHibernatelibdb下。4.5 系统出错处理设计现系统抛出异常均跳转到:error.jsp页面。系统维护设计:由于模块设计规范,层次清晰。维护简单。4.6 注册功能该模块的功能是实现用户远程注册。该模块的使用用户为领导模块使用。用户输入想要注册的用户名、密码、重复密码、真实姓名和学号,提交之后由系统判断该用户是否已经存在,如果存在,提示用户注册失败,如果不存在,就把用户输入的用户名和密码写到数据库中,完成注册。系统采用了struts框架控制mvc三层结构。MVC(模型-视图-控制器)模式最重要的思想就是业务代码与视图代码分离。能有效地理清系统结构,降低系统复杂度与维护难度。而Struts 就是基于J2EE 的 web 形式 MVC 模式实现!Struts改进和提高Java Server Pages (JSPs)、Servlet、标签库以及面向对象的技术水准。Struts的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。控制:文件Struts-config.xml,与之相关联的是Controller,在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充 Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。最后动作类把控制权传给后续的JSP 文件,后者生成视图。所有这些控制逻辑利用Struts-config.xml文件来配置。视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。模型:模型以一个或多个java bean的形式存在。这些bean分为三类:Action Form、Action、JavaBean or EJB。Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。流程:在Struts中,用户的请求一般以*.do作为请求服务名,所有的*.do请求均被指向ActionSevlet,ActionSevlet根据Struts-config.xml中的配置信息,将用户请求封装成一个指定名称的FormBean,并将此FormBean传至指定名称的ActionBean,由ActionBean完成相应的业务操作,如文件操作,数据库操作等。每一个*.do均有对应的FormBean名称和ActionBean名称,这些在Struts-config.xml中配置。核心:Struts的核心是ActionSevlet,ActionSevlet的核心是Struts-config.xml。代码实现部分学生注册页面:学号: 密码: 学生注册Action:StuloginForm stuloginForm = (StuloginForm) form;Student stu=new Student();stu.setStudentId(stuloginForm.getName();StudentDao sd=new StudentDao();Map m=null;m=sd.selectById(stu);if(m!=null)System.out.println(m.get(passwd);if(m.get(passwd).equals(stuloginForm.getPasswd()request.setAttribute(stuid,(String)m.get(studentId);return mapping.findForward(stomain);elseSystem.out.println(mis);return mapping.findForward(error);elseSystem.out.println(mis);return mapping.findForward(error);学生注册部分xml: 学生注册部分dao:Transaction tran= session.beginTransaction();List list = null;Map l=null;list = session.createQuery(from Student where student_id=?).setString(0,stu.getStudentId().trim().list();System.out.println(list.size();if (list.size() = 0) HashMap map = new HashMap();map.put(name, stu.getName();(部分代码省略)map.put(studentId, stu.getStudentId();session.saveOrUpdate(Student,map);mit();session.close();return true;mit();session.close();return false;使用hibernate的saveOrUpdate方法向sutdent表添加一条记录,返回true。定义一个hibernate事务,如果添加成功事务返回成功;如果添加中断或发生以外事务不提交,返回false。使用hibernate作为数据持久层是程序编写更规范,更简单,可重用行很高。Hibernate 是当前最流行的 O/R mapping 框架。Hibernate 对数据库结构提供了较为完整的封装, Hibernate 的 O/R Mapping 实现了 POJO 和数据库表之间的映射,以及 SQL 的自动生成和执行。程序员往往只需定义好了 POJO 到数据库表的映射关系,即可通过 Hibernate 提供的方法完成持久层操作。程序员甚至不需要对 SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 JDBC 接口加以执行。教师注册模块,领导注册模块与其内容大体一致,具体代码和实现方法也大体相同就不再叙述了。4.7 题目申报等申报模块此类模块是对题目申报表等的报表申报、审批、更新、删除等功能的实现。主要使用hibernate的saveOrUpdate、Update、delete、createQuery方法实现功能。用hibernate事务控制事务的安全性、稳定性。这里正体现了hibernate的先进性、安全性。题目申报模块有21个字段,在系统流程中教师首先填报。教师填报功能拥有填写表单内除审核外所有字段权限。表单自动生成填写说明。填报提交利用struts的action将表单内容提交到dao层利用hibernate将传过来的值封装成module对象将他传给hibernate,提交到数据库。题目申报表修改功能首先访问ThemeMapAction教师修改的方法为toUpdateThemeMap,将教师号传进来返回一个list并跳转到题目列表页,同时传递一个变量。列表页将传过来的list循环读成一条条的map再将map读出需要的值。在这里是题目名称和题目申报时间。题目名称有一个超链接,链接到ThemeMapAction的toUpdataPage方法并将教师号和题目名传递过去根据题目名利用dao方法查处表单里字段的内容的map传到显示页面。显示页面读取map内容,并利用教师号赋予权限。权限控制使用了javascript的document.getElementById()方法在客户端验证权限。这样做大幅度降低了服务器端的工作量,更有效的利用了资源。并且使程序运行更快。同时减少了action的方法。普通意义上javascript+css+xml就是ajax的基本内容,和实现手段。客户端脚本语言比起服务器端语言的优点在于:Javascript主要是基于客户端运行的,用户点击带有Javascript的网页,网页里的Javascript就传到浏览器,由浏览器对此作处理。前面提到的下拉菜单、验证表单有效性等大量互
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论