一种基于MVC框架的校园管理系统的设计
来源:小侦探旅游网
・40・ Computer Era No.8 2010 一种基于MVC 架的校园管理系统的设计 翟高粤,魏娜 f苏州经贸职业技术学院,江苏苏州215009) 摘要:针对B/S模式校园管理系统的建设与应用,提出了基于Spring MVC技术架构的解决方案,该方案在Web系统 架构对于构建复杂的业务系 快速设计与开发中得到了具体的应用。结果证明,采用Spring内置的MVC和Hibernate ̄关键词:Spring MVC ̄_架;校园管理系统;Hibemate- ̄术;sp g技术;J2EE Design of Campus Management System Based on MVC Framework ZHAI Gao—yue,WEI Na 统,较传统的Stmts+Spring+Hibemate(SSH)组合,提高了开发效率和系统的质量,降低了系统的复杂性。 (Suzhou Institute of Trode&Commerce.Suzhou,Jiangsu 215009,China) Abstract:Aiming at the construction and application of B/S model—based campus management system,a solution based on Spring MVC technology framework is proposed,and it gets applied to the rapid design and development of Web system.Result proves that the technology framework of Spring MVC and Hibernate,compared with the traditional combination of Struts,Spring and Hibernate,call not only improve development eficifency and system quality,but also reduce system complexiy itn constructing complicated business system. Key words:Spring MVC framework;campus management system;Hibernate technology;Spring technology;J2EE 0引言 随着我国教育体制改革的深入,教育得到了前所未有的发 展,校园管理正逐步迈向管理信息现代化。但是,我国的校园 管理信息化水平还处在初级阶段,主要表现在对学生的交费管 理、学生的档案管理和职工人事管理还在采用原有的人工管理 方式。这就造成工作效率低、误差大,也造成了人力、物力、财 力资源的浪费。学校是培养国家栋梁之才的场所,无论是在教 学,还是在管理上都应走在最前列,而其中管理又是学校良好 运转的关键。采用先进的软件技术,设计功能强大的校园管理 图1 Spring的7个模块 1.1 Spring MVC框架简介 Spring MVC模块是Spring提供的优秀的MVC框架,它具 系统软件,可以提高管理水平,保证学校教学活动正常运转。 有使用Spring的Ioc(控制反转)和AOP(面向切面编程)的能 尽管校园管理系统软件的开发方法多种多样,但传统的开发方 力,拥有完善的Controller(控制器)继承架构,能够根据需求使 法难以快速开发出功能强大、可扩展性强的基于Web的应用系 用适当的控制器。在整个Spang MVC架构中,使用者并不是 统。目前提高应用系统开发效率的方法较多,其中比较成熟的 直接连接到所需要的资源,而是先连接到前端控制器,再由前 技术有基于MVC(Model—View—Controller)模式SSH(Struts+ 端控制器判断使用者的请求,然后分派给合适的控制器对象来 Spring+Hibernate)技术…。虽然SSH技术应用广泛,得到了大 处理请求。另外Spring MVC框架还提供了控制器、命令、表 量开发人员的青睐,但是使用比较复杂。本文采用Spring内置 单、视图和视图模型等对象,利用这些对象可使Web开发更为 的MVC和Hierbnate技术,将这两种技术有机结合起来构建出 方便。 J2EE轻量级的开发框架,不但可以有效提高系统开发效率,降 低开发的复杂性.而且在系统安全性、稳定性和健壮性上都有 良好的改进。 1.2 Hibernate简介 Hibernate框架是Java应用和关系数据库之间的桥梁,它负 责Java对象和关系数据库之间的映射 。Hibernate内封装了通 过JDBC访问数据库的操作,向上层应用提供面向对象的数据 库访问API,它协调应用程序与关系数据库的交互,使开发者可 Spring是一个开源框架,它能够降低开发企业级应用程序 以专心于解决业务问题”-。 的复杂性 。Spring框架主要由七大模块构成,他们提供了企 1 Spring MVC框架和Hibernate简介 业级开发需要的所有功能,每个模块即可以单独使用,也可以 1.3 Spring对Hibernate的支持 与其他模块组合使用,且灵活方便部署可以使开发的程序更加 简洁灵活。Spring的七个模块如图l所示。 目前,Hibernate框架已经成为业界标准的O/R(对象/关系) 映射技术 。Spring框架整合了对Hibernate的设定,并且提供 计算机时代2010年第8期 ・41 ・ -config.xml来实现的。相关配置文件的部分内容 ̄ttlT: 了HibemateTemplate类和HibernaeDaoSupport类以及相应的子 beans类,使用户在结合Hibernate使用的时候可以简化程序的编写; 同时它还提供使用Hibernate时的编程式的事务管理与声明式 的事务管理功能。另外,Spring对Hibernate框架进行了最深入 的集成,即借助于Spring Ioc和Spring AOP对Hibernate框架进 行了最为有效的集成 ,。 web.xml <servlet> <servlet-name>d <servlet—class> org.springframework.web.servlet.DispatcherServlet </semiet-class> 2校园管理系统的设计与开发 校园管理系统的建设目标是构建一个技术先进、安全稳 <init-param> <param-name>contextConfigLocation</param-name> 定、便捷高效、可扩展和可维护性强的师生信息管理系统。系 统需要实现登录、代码维护、学生管理、教工管理、图书管理、系 统管理、成绩管理等功能。系统采用基于三层的浏览器,服务器 <param-value> NVEB-INF/beans—conflg.xml『/加栽Spdng配置文件  ̄pamm-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> (B/S)体系结构。其中表示层用JSP结合Spring MVC提供的 控制器对象、表单对象和视图对象等技术来实现;业务层由 Spring MVC实现业务组件的组件关联,通过依赖注入、AOP和 面向接口编程,降低业务组件之问的耦合度,增强系统的兼容 性、可维护性和可扩展性;持久层通过Spring集成的Hibenatre <ud-pattem>*.do</ud一阳nem>//.do的请求由DispatcherServlet 分发给相应的控制器处理 </servlet・mapping> beans—config.xml <beans default-autowire=”byName’’> 来完成Java对象和关系的映射,并借助数据库技术来实现整个 Web的应用。系统开发环境主要采用Eclipse7.0+SQLServ— er2005+Tomcat6.0。本文将以系统登录模块为例说明系统的设 计与开发技术,该模块主要实现用户登录的合法性验证功能。 系统功能结构如图2所示。 <!一定义控制器转发视图类一> <bean id=”viewResolver”class=。'org.springframework.web. servlet.view.InternalResourceVJewResolver”> <property name=”prefix”> <value>l</value>//定义视图对象路径 </property> <property name=’’suffix’‘) 图2校园管理系统功能结构 2.1视图层应用Spring MVC框架 2.1.1系统登录功能介绍 <value>.jsp</value>//定义视图对象文件后缀名 </property> </bean> <j一.定义请求映射处理器类一> <bean id=”urlMapping”class=”org.springframework.web.servlet. handler.SimpleUrlHandlerMapping”> <pmperty name=”mappings”> <props> <pmp key=”/Iogin.dO”>login</prop> 系统登录模块是校园管理系统中最先使用的功能模块, 是进入系统的入口。在系统登录页面中,系统管理人员通过 输入正确的管理员名称和密码进入到系统,当用户没有正确 输入管理员名称或密码时,系统会禁止访问系统功能,并给予 提示信息。 2.1.2实现原理 『,定义请求映射控制器处理标识 </props> </property> </bean> 视图层是面向客户的界面,负责用户与系统的交互。log— in.jsp是登录页面文件,根据表单提交信息进行身份合法性验 证。在登录页面提交登录信息时,通过web.xrnl配置文件,由 DispatcherServlet(分发器)进行处理调度给LoginController控 制器处理登录的业务逻辑,它以Spring Ioc注入的dao属性来 操作数据库。LoginController实现了Spring的org.springframe. <!一定义登录模块控制器处理类~> <bean id=’’Iogin”class="corn.spring.controller.LoginController'。> <property name=’’dao’’> <ref bean=”DAOPmxy”/>ULoginController类注入数据库 work.web.servlet.hive.Controller接口,并执行接口包含的处理 请求的handleRequest0方法。当控制器LoginController收到 操作代理bean,实现验证功能 </property> </bean> DispatcherServlet(分发器)分配的请求时,会执行控制器的 </beans> handleRequest0完成登录的业务逻辑,判断登录的用户名和密 码是否正确。如果用户存在并且密码属实,由控制器通过In— 2.2持久层应用Hibernate技术 ternalResourceViewResolver(视图解析器)返回的ModelAnd— 持久层在系统开发中负责与数据库进行交互。在开发过 View(视图模型)对象转向到登录成功页面;否则转向到登录失 程中应用Hibernate有以下优势:首先,Hibernate是一个高性能、 败页面。转向的控制是通过Spring使用的Bean配置文件 开放源码的持久层,是对象/关系映射的优秀解决方案,它将 ・42 - Computer Era No.8 2010 Java中的对象实体以及实体之间的关系映射至关系数据库中 表与表之问的关系,并实现这个过程的自动对应转换方案。其 次,Hibernate封装了数据库访问、事务管理、数据缓存等工作, 省去了这些代码的编写。最后,Hibernate将数据表数据映射为 对象,数据能更好地在系统各层传输。因此,使用Hibernate可 以减轻编写SQL语句的工作量,大大提供编程的效率。而常规 的数据库操作占用了系统操作的大部分时间,系统内部的持久 层调试也需要大量的时间。 建立Hibernate的持久层,首先要将域对象持久化, Hibernate通过XML文件来映射对象。在登录模块中,为了实 现登录验证操作,定义了Login.hbm.xml文件,该文件对应数据 库的login表,包括编号、呢称、用户名、密码等所有字段信息。 以下截取Login.hbm.xm】的部分代码以作说明: <hibernate・mapping> <class name=”com.hibernate.mode1.Login’’table=”Iogin” schema=”dbo”catalog=”dbschool’’> _<id name=”id”type=’'java.1ang.Integer’’> <column name=”id”,> <generator class=”identity”,> <lid> <property name=”name”type=’'java.1ang.String’’> <column name=”name”length=”1 0”not-null=”true”,> </property> <property name=’’username。’type=’'java.1ang.String’。> <column name=”username”length=”50”not—null=”true”,> </property> <property name=。’password”type=’j'ava.1ang.String”> <column name=”password”length=”50”not—null=”true”,> </property> </class> </hibernate—mapping> 2.3业务层应用Spring MVC框架 业务层组件一般被控制层组件调用。控制层组件以接口 的形式声明所需的业务层组件的服务,由Spring框架根据 Spring配置文件配置实例化业务层组件,并注入到控制层组件 中。在业务层应用Spring MVC框架有以下优势:首先,方便管 理业务层的对象依赖;其次,使应用程序具有良好兼容性和可扩 展性;最后,方便处理应用程序中的业务逻辑、业务校验和事务管 理 。以下截取Hibernate—Config.xm]部分代码以作说明: <beans> <!一定义JDBC数据源,设置数据库连接参数一> <bean id=”dataSource’’class=”org.springframework.jdbc. datasource.DriverManagerDataSource’‘ <property name=”driverClassName”> <value>oom.microsoft.jdbc.sqlserver.SQLServerDriver</value> </property> <property name=”url。’ <value>jdbc:microsoft:sqlserver://Iocalh0st:1433: DatabaseName=dbschool</value> _</property> <property name=’ username > <vaIue>sa<,vaIue> </property> <property name=’’password’’> <value></value> </property> </bean> <!一定义Hibernate的会话工厂sessionFactory一> <bean id=”sessionFactory”class=”org.springframework.Orm hibernate3.LocalSessionFactoryBean’。> <property name=”dataSource”> <ref Iocal=”dataSource”/> </property> <property name= ’mappingDirectoryLocations”> <list> <value>classpath:com/h > </list> </property> </bean> <!一定义事务管理Bean..> <bean id=’’transactionManager”class=”org.springframework. orm.hibernate3.HibernateTransactionManager'’’ <property name=”sessionFactory”> <ref local=”sessionFactory”,’ </property> </bean> <!一定义数据库操作Bean一> <bean id=。’dan”class=”com.hibernate.dan.DAOSupport’’> <property name=”sessionFactory‘’> <ref local=”sessionFactory”, </property> </bean> <!一一定义数据库操作代理Bean一> <bean id=”DAOProxy”class=”org.springframework. transaction.interceptor.TransactionProxyFactoryBean”> <property name=”transactionManager'。> <ref bean=”transactionManager'’,> </property> <property name=“target’‘> <ref local=”dan”/> </property> <property name=”proxyTargetClass”value=”true”,’ <!一定义事务属性,设置代理对象中的所有以“insert”或“get”做前缀 的方法都在事务中完成一> <property name=”transactionAttributes”> <props> <prop key=”insert*”>PROPAGATION_REQUIRED</prop> <prop key=“get ‘>PROF,AGATlON—REQUIRED, readOnly</prop> </props> </property> </bean> </beans> (下转第45页) 计算机时代2010年第8期 ・45・ 标。考试效度指的是根据考试分数做出推论或预测的准确性 程度,是程度上的概念。对于一份合格试卷的基本要求有嘲: (1)试卷考查的覆盖面广,考查点分布合理,考查的内容对 整个考试内容有足够好的代表性。 (2)试卷中试题的难度比例、考查深度要符合教学大纲的 要求。对于等级考试,尤其要掌握好合格的标准线,力求使成 绩合格者都能达到规定的标准,达到规定要求的学生都能取得 合格的成绩。 (3)试卷中各道试题间要有相对独立性。任一试题的表述 及正确解答不要构成对其他试题正确解答的提示,任一试题的 正确解答不能以其他某一试题的正确解答为前提。 (4)试卷中的试题排放要合理,一般应按试题类型,同类试 题集中排放,而不按章的顺序排放;在同类试题中,一般按由易 到难的顺序排列。 4结束语 在考试系统中,决定组卷效率和试卷质量的主要因素有两 个:一是试题库的结构;二是组卷算法的设计是否合理。因此, 在精心设计合理的试题库结构的同时,如何选择一个高效、科 学、强壮的智能组卷算法就成了实现自动组卷的关键,相关技 术也是目前CAI领域的一个研究热点。 参考文献: 【1l叶晓彤等.基于校园网的考试管理系统体系的构建【J】.计算机系统应 用.2003.10:120-123 f2j月丽莉.基于B/S结构的等缀考试管理系统【JJ.计算机工程,2005.4: 图1组卷算法流程图 195-197 3试卷质量衡量 【3l罗钫著.高校体育招生考试管理信息系统的镘计与应用lJ].体育科学 衡量试卷质量的基本指标是试卷的信度和效度。信度是 研究,2006.10(2):71-74 表征试卷作为测试工具的可靠性程度的指标。任何一项有效 【4l杜汀.网络考试管理信息系统【J】.中央民簇大学学报(自然科学版), 2005.1:86-88 的测量,如果对同一对象实施多次测量,各次所测的结果应该 [51王大康,李智宏等.学校考试管理信息系统的设计与研究【J1.北京工业 比较一致,比较稳定。一致性程度越高,稳定性越高,则测量越 可靠。效度是反映一项考试实现其既定目标的成功程度的指 文学学报,2000・3:123-126豳 (上接第42页) 通过在配置文件中定义Hibernate资源,配置DataSource、 【2J李钟尉,冯东庆.Spring应用开发览全手册fM1.人民邮电出版社, SessionFactory等JavaBean,应用对象对资源的访问只需要通过 2007. Bean的引用,实现Hibernate资源的依赖注入㈣。 【3l孙卫笨.精通Hibemate:Java对象持久化技术详解[M1.电子工业出 版社.2005. 3结束语 【4l霍高粤.基于Struts和Hibernate的文本按行分页技术【J】.计算机时 本文采用Spring MVC框架结合Spring内置Hibernate技 代.2009.8:34~35 术,设计出基于J2EE平台的校园管理系统,其创新点在于采用 【5l王国噼,马文强.Hibernate应用开发完全手册IMI.人民邮电出版社, Spring MVC框架和内置的Hibernate技术实现了传统Struts+ 2007. Hibernate+Spring的组合功能,这无论在开发和应用上,相对于 【6】Rob Harrop,Jan Machacek,Redsaga翻锋小组锋.Spring专业开发 SSH框架的组合设计,更为简捷方便,降低了SSH的xml文件 招南【M】.电子工业出版社,2006. 配置的复杂性,为web开发提供了—个高效的解决方案。 【7】Johnson R,Hoeller J,Arendsen A,蒋培锋.Spring框架高级编程 参考文献: 【M1.机械工业出版社,2006. I1】罗时飞.精通Spring一深 JavaEE开发挂心技术IM1.电子工业出版 【8】Craig Walls,Ryan Breidenbach,李磊,程立,周悦虹译.Spring in 社.2008. action中文版fM】・人民邮电出版社,2006・ 鼬