1、本 科 毕 业 论 文基于 SSH 架构的课程中心系统的设计和实现教师和课程管理子系统Design and Implementation of Course Center System Based on SSH ArchitectureManagement Subsystem of Teacher and Course姓 名: 学 号:学 院:软件学院系:软件工程专 业:软件工程年 级: 指 导 教 师: 教授II年 月摘 要I摘 要随着计算机技术和网络技术的飞速发展,世界进入了前所未有的全球信息化时代。本文针对目前厦门大学课程网站的现状和存在的一些不足,设计并实现了基于 SSH 架构的厦门大
2、学课程中心系统。该系统的目标是为厦门大学的老师和学生建设一个优秀的、可管理的、易维护的、多层次的和开放式的课程中心系统。论文首先介绍了系统所采用的 J2EE 架构、轻量级框架 SSH 的组成部分和工作原理。接着阐述了课程中心系统的建设目标和功能模块的划分,并对教师子系统和课程子系统后台管理部分的设计展开详细说明。最后围绕着 SSH 架构技术,结合系统的分层结构,具体描述了教师子系统和课程子系统后台管理部分的实现。厦门大学课程中心系统的建设完善了用户的管理体系、丰富了课程的表现形式、加强了师生间的互动交流,达到了预期的效果。实践表明,SSH 架构在构建复杂业务系统中的应用,可以使得开发过程简洁高
3、效、结构清晰,同时还可以使系统具有较强的灵活性、可维护性和可扩展性。关键词:课程中心系统;J2EE;SSH 架构AbstractIIAbstractAs the fast development of computer science and computer network, the world has entered an unprecedented global information age. In the foundation of studying the present situation and existing deficiencies of current course w
4、ebsite of Xiamen University, the Course Center System of Xiamen University based on SSH architecture is designed and implemented. This system is aimed to achieve the goal, which is to develop an excellent, multi-level, opening course center system with high manageability and maintainability.First, t
5、he popular architecture of J2EE, the model and operational principle of SSH are discussed in detail. Then the objectives and functional module division of this system is described, especially the subsystem module of teacher and the back-stage management of course subsystem module, which are took cha
6、rge by myself. According to the technology of SSH architecture and the hierarchical structure of the system, the implementation of the subsystem module of teacher and the back-stage management of the course subsystem module are minutely introduced. It can be seen that the system helps to improve the
7、 management system of user group, enrich the expression of the course, and enhance the communication between the teacher and student. The development results show that SSH architecture not only can improve efficiency of system development, but also can make the system more flexible, maintainable and
8、 extensible.Key words: Course Center System; J2EE; SSH Architecture目 录III目 录第 1 章 绪论 .11.1 概述 11.2 项目背景 11.3 论文组织结构 2第 2 章 系统设计中的相关技术 .32.1 Java EE 技术 32.1.1 Java EE.32.1.2 Java EE 的模型 32.1.3 JSP 技术 42.2 SSH 框架 .52.2.1 SSH 框架 52.2.2 表现层框架 Struts2 72.2.3 业务逻辑层框架 Spring.92.2.4 数据持久层框架 Hibernate102.3 其
9、它相关技术 122.3.1 Ajax122.3.2 jQuery 框架 .132.4 本章小结 .14第 3 章 课程中心系统的需求分析和设计 .163.1 建设目标 163.2 系统功能模块划分 .163.2.1 系统面向的用户群体和角色功能 163.2.2 总体功能模块划分 183.2.3 教师子系统详细功能模块设计 223.2.4 课程子系统详细功能模块设计 243.3 本章小结 .27第 4 章 课程中心系统的实现 .29目 录IV4.1 系统总体框架设计和实现 294.1.1 系统的分层结构 .294.1.2 系统的包结构 .304.1.3 系统的部署 .324.2 教师子系统的实现
10、 324.2.1 概述 324.2.2 个人信息模块的实现 334.2.3 课程申报模块的实现 354.2.4 课程权限设置模块的实现 374.2.5 课程风格设置模块的实现 384.2.6 课程内容管理模块的实现 404.2.7 学生管理模块的实现 404.2.8 留言板管理模块的实现 404.2.9 站内信模块的实现 414.3 课程子系统后台管理的实现 434.3.1 概述 434.3.2 申报表格模块的实现 434.3.3 课程简介模块的实现 454.3.4 教学大纲模块的实现 474.3.5 教师队伍模块的实现 474.3.6 通知公告模块的实现 484.3.7 章节目录模块的实现
11、504.3.8 课件教案模块的实现 514.3.9 作业习题模块的实现 534.3.10 实验指导模块的实现 534.3.11 教学录像模块的实现 534.3.12 课程试卷模块的实现 554.3.13 参考书籍模块的实现 554.3.14 教学成果模块的实现 55目 录V4.3.15 课程评价模块的实现 574.4 其他功能模块的实现 594.4.1 Struts2 拦截器在系统中的实现 .594.4.2 课程页面切换风格的实现 .624.5 本章小结 64第 5 章 总结与展望 .655.1 总结 .655.2 工作展望 .65参考文献 .67致 谢 .68ContentsVIConten
12、tsChapter 1 Preface11.1 Overview .11.2 Development Background .11.3 Structure of This Dissertation.2Chapter 2 System Related Technologies Outline .32.1 Java EE .32.1.1 Java EE.32.1.2 Model of Java EE.32.1.3 What is JSP 42.2 SSH Architecture .52.2.1 SSH Architecture .52.2.2 Struts2 72.2.3 Spring.92.2
13、.4 Hibernate102.3 Other Related Technologies 122.3.1 Ajax122.3.2 jQuery 132.4 Summary.14Chapter 3 Requirement Analysis and System Design163.1 Objectives163.2 Functional Module Division163.2.1 User group and Role Functioning163.2.2 Functional Module Division 183.2.3 Subsystem Module of Teacher.223.2.
14、4 Subsystem Module of Course 243.3 Summary.27Chapter 4 Implementation .29ContentsVII4.1 Design and Implementation of System Architecture294.1.1 Hierarchical Structure 294.1.2 Package Structure.304.1.3 Deployment324.2 Implementation of Teacher Subsystem Module324.2.1 Overview324.2.2 Personal Informat
15、ion Module 334.2.3 Apply for Course Module 354.2.4 Authority Module.374.2.5 Style Module384.2.6 Course Management Module.404.2.7 Student Management Module 404.2.8 Message Management Module 404.2.9 Mail Management Module.414.3 Backstage Management of Course Subsystem Module434.3.1 Overview434.3.2 App
16、lication Form Module434.3.3 Course Information Module.454.3.4 Course Outline Module474.3.5 Teacher Team Module .474.3.6 Notice Module .484.3.7 Chapter Module .504.3.8 Courseware Module.514.3.9 Exercise Module 534.3.10 Lab Instruction Module534.3.11 Course Movie Module .534.3.12 Examination Module554
17、.3.13 Refference Book Module.554.3.14 Achievement Module.554.3.15 Evaluation Module.57ContentsVIII4.4 Implementation of Other Modules .594.4.1 Struts2 Interceptor594.4.2 Changing Style of Page624.5 Summary.64Chapter 5 Conclusions and Expectations655.1 Conclusions.655.2 Expectations65References 67Ack
18、nowledgements68第 1 章 绪论1第 1 章 绪论1.1 概述计算机技术、网络技术、通讯技术和多媒体技术等信息技术的迅速发展为推动社会信息化提供了强有力的技术支撑。信息技术在教育领域的应用促进了教育信息化。上世纪90年代,多媒体技术、音视频技术等己开始广泛运用于课程教学中,技术与课程进行整合有效地推动了课程教案电子化、课程建设数字化 1。随着网络技术和通讯技术的深入应用,传统的课堂教学方式开始无法满足教育信息化的需求,课程中心系统由此应运而生。构建课程中心系统的根本目的是为教师和学生提供一个优质的课程教学平台,提高教学质量。该系统运用网络技术和多媒体技术将教师的教学思想和教学内容
19、整合成一流的教学资源,供学生学习。它允许学生按照自己的思考方式探索信息、检索资源,构建自己的知识体系网络。本文讨论的是一个基于J2EE平台,采用目前主流的 SSH框架实现的课程中心系统,内容主要包括:系统实现的相关技术和软件结构设计;系统的建设目标、需求分析过程、功能模块的划分和详细设计;系统功能模块的具体实现。1.2 项目背景目前,全国很多高校都开始尝试将课程与网络相结合,并建设具有各自特色的课程中心系统。但由于网络技术在课程中的应用尚处于尝试阶段等原因,目前的课程中心系统仍存在许多不足:第一,无法形成统一的管理体系,学校与学院之间、学院与教师之间、教师与学生之间没有形成一个有组织、有条理的
20、用户层次结构,造成各个用户的职责模糊不清、分工不明确,无法有效的进行管理;第二,各个课程的形式结构没有标准和规范,每个教师都在构建自己独有的课程,每个课程形式各异,最后形成了“各自为战”的局面;第三,师生之间缺乏互动,课程仍只是教师单方面展示内容给学生,教师与学生之间缺乏交流和沟通。针对以上不足,本研发小组经过资料调研和需求分析,拟建立厦门大学课程中心系统。该课程中心系统主要面向的用户群体为厦门大学全体师生,通过基于 SSH 架构的课程中心系统的设计和实现2该系统,教师可以将课堂教学与网络教学有机结合,丰富课程内容,提高教学质量;学生可以自主学习,以自己的思考和认知方式来构建知识网络。同时,该
21、系统还为老师和学生提供了一个开放式的交流平台,使得师生之间的沟通互动不再仅仅局限于课堂之上。最后,还为学校与学院分别设计了后台管理系统,明确不同用户角色的职责与分工,以便有效地管理和维护。1.3 论文组织结构本文共五章,详细地阐述厦门大学课程中心系统开发周期的过程,具体安排如下:第 1 章 介绍项目背景及其意义。第 2 章 介绍系统开发中采用的相关技术及其基本工作原理。第 3 章 介绍了该系统的建设目标,对项目进行功能模块划分,最后针对本人所负责的功能模块的内容和设计进行详细的阐述。第 4 章 讨论本人所负责的系统功能模块的具体实现,主要从模块的逻辑、具体操作流程和运行结果三大方面来阐述。第
22、5 章 对全文进行总结,并展望下一步工作。第 2 章 系统设计中的相关技术3第 2 章 系统设计中的相关技术2.1 Java EE 技术2.1.1 Java EE J2EE,即Java 2平台企业版(Java 2 Platform Enterprise Edition) ,是Sun公司为企业级应用推出的标准平台。J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,企业内部或外部难以互通的窘境。J2EE体系结构提供中间层集成框架用来满足无需太多费用
23、而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能 2。J2EE并不是一门编程语言,而是一个体系结构,是一个开发标准。 J2EE为企业级应用开发提供了一套完整的解决方案,同时,对开发者和用户来说,它又意味着更短的开发时间、更简化的连接。2.1.2 Java EE 的模型J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。以下是J2EE典型的四层结构 2:(1) 运
24、行在客户端机器上的客户层组件(2) 运行在J2EE服务器上的Web层组件(3) 运行在J2EE服务上的业务逻辑层组件(4) 运行在EIS服务器上的企业信息系统层软件(Enterprise Information System) 基于 SSH 架构的课程中心系统的设计和实现4图 2.1 J2EE典型四层结构模型图图 2.1 为 J2EE 典型的四层结构模型图,很好的反映了 J2EE 的模型组成和关系。客户层包括客户端的应用程序和操作页面等。Web 层指 JSP 页面和Servlet,它们被部署在服务器提供 Web 服务,处理用户请求。业务层的关注点主要集中在业务规则的制定和业务流程的执行。企业信
25、息系统层处理企业基础系统、数据库系统和其他遗留的系统。现在人们更多的将 J2EE 分为三层架构,分别为表现层、业务逻辑层(也叫中间层)和数据持久层。其中客户层与 Web 层共同组成表现层,业务层和业务逻辑层相对应,企业信息系统层则为数据持久层。2.1.3 JSP 技术JSP(Java Server Pages)是 1998 年由 Sun 公司推出的基于 Java 语言的动态网页技术标准。JSP 大部分的页面都是使用常规的 HTML,同时使用某些特殊的标签将 Servlet 标记出来。在运行的时候, JSP 整个页面最终转换成 Servlet,实际上被调用的是 Servlet。图 2.2 显示了
26、 JSP 的基本运行原理。首先由浏览器向 Web 服务器提出访问JSP 页面的请求(Request) ,然后由 JSP 容器负责将 JSP 转换成 Servlet,产生的Servlet 经过编译后生成 类文件,然后再把类文件加载到内存进行执行。最后由Web 服务器将执行结果响应( Response)给客户端浏览器 3。第 2 章 系统设计中的相关技术5W e b 服务器浏览器J S P 页面R e q u e s tR e s p o n s e产生 S e r v l e t经编译 S e r v l e t图 2.2 JSP 运行原理JSP 技术具有如下几个特点4:(1) JSP 中 HT
27、ML 的编写和维护更为简单。(2) 一次编写,随处运行,不必依赖特定的平台支持。(3) JSP 拥有极为广泛的工具和服务器提供商的支持。(4) 对要求组件重用的大型复杂 Web 应用支持良好。(5) 可以对开发团队进行划分。JSP 是 J2EE 整个系统规范中一个非常重要的组成部分,是 J2EE 的核心技术。在整个系统中,表现层部分,即用户与系统的数据交互以及数据的展现部分都是利用 JSP 页面实现的。包括本文下述将介绍到的 Struts 框架,也是以 JSP技术为基础的。2.2 SSH 框架2.2.1 SSH 框架厦门大学课程中心系统是基于 J2EE 标准规范实现的,采用当前主流的SSH(S
28、truts + Spring + Hibernate)主流架构。上一节已经详细介绍了 J2EE 这一技术规范,而其复杂的多层结构决定了大型的 J2EE 项目需要运用优秀的框架来控制软件质量。SSH 框架是基于 J2EE 规范实现的一个轻量级的架构。作为由 Struts、Spring 和 Hibernate 整合而成的组合框架,其设计目标是提供一个更加简洁,功能更完善的 Web 框架,提高组件的可复用性,降低层与层之间的耦合度,有利于系统的可维护性和可扩展性。该组合框架具备 J2EE 典型基于 SSH 架构的课程中心系统的设计和实现6的三层结构,分别是表现层、中间层和数据持久层,Struts 主
29、要实现MVC(Model-View-Controller)的分离,负责与用户交互,为表现层;Spring 则支持业务层,所有的业务逻辑都在 Spring 中实现;Hibernate 主要进行与数据库的交互,为数据持久层 5。图 2.3 展示了 SSH 三层架构的分层情况及与 Web 和数据库之间的联系。图 2.3 SSH 三层结构图应用 SSH 框架的厦门大学课程中心系统业务流程如图 2.4 所示。在 Web 表现层通过 JSP 页面的交互负责 Request 和 Response 的传输。控制层引入 Struts分发请求,依据接收的 Request 指定相应的 Action,由 Action
30、 向业务层传递参数和指定调用 Service。在业务层中,Service 根据具体的业务逻辑来组装不同的DAO 完成一个业务模块功能,即 Service 中的每一个方法对应一个业务逻辑,而每个业务逻辑是由不同的 DAO 组装起来协同实现 6。在数据持久层中最终由DAO 完成与数据库的交互,并返回结果给业务层中的 Service,Service 再将整个业务流程的执行结果返回给控制层中的 Action,Action 向 JSP 页面返回结果,并由 Struts 控制跳转到相应页面。这样,一个业务流程执行完毕。第 2 章 系统设计中的相关技术7图 2.4 SSH 架构业务流程图2.2.2 表现层框
31、架 Struts2 简介在厦门大学课程中心系统开发过程中,采用的是 Struts2.0 版本,因此本节将会着重介绍 Struts2。Apache Struts2 是 Struts 的下一代产品。Apache Struts2 是一个优雅的,可扩展的 J2EE Web 框架。框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程 (Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications. The framework is designed
32、 to streamline the full development cycle, from building, to deploying, to maintaining applications over time) 7。Apache Struts2 是一个基于 Action 的 MVC Web 框架。基于 Action 的框架把Servlet 和 JSP 的概念合并到了一起。它的想法是把对当前用户所见的页面请求的处理动作,分拆成处理逻辑和表现逻辑,让它们各司其职。这种方式使用了源自 Smalltalk 的一个模式,名为模型-视图-控制器,即 MVC。图 2.5 描述了 Struts2 架
33、构中的模型、视图和控制器及它们之间的关系。控制器通过 Struts2 发布 Servlet 过滤器(也就是人们常说的拦截器 )来实现,模型通过 Action 实现,视图则通过结果类型和结果组合实现 8。基于 SSH 架构的课程中心系统的设计和实现8图 2.5 MVC/Struts2 架构Struts2 的工作原理如图 2.6 所示。客户端初始化一个指向 Servlet 容器的请求(HttpServletRequest),这个请求经过一系列的过滤器(Filter) 。这些过滤器中有一个叫做 ActionContextCleanUp 的可选过滤器,这个过滤器对于 Struts2 和其他框架的集成很
34、有帮助,例如:SiteMesh Plugin。接着 FilterDispatcher 被调用,此时 FilterDispatcher 询问 ActionMapper 来决定这个请求是否需要调用某个Action。如果 ActionMapper 决定需要调用某个 Action,FilterDispatcher 把请求的处理交给 ActionProxy,ActionProxy 通过 Configuration Manager 询问框架的配置文件(struts.xml)。然后 ActionProxy 创建一个 ActionInvocation 的实例。ActionInvocation 实例使用命名模式
35、来调用,在调用 Action 的过程前后,涉及到相关拦截器,即 Interceptor 的调用。一旦 Action 执行完毕,ActionInvocation 负责根据 struts.xml 中的配置找到对应的返回结果。返回结果通常是(但并不总是,也可能是另外的一个 Action链)一个需要被表示的 JSP 或者 FreeMarker 的模版。这些组件和 ActionMapper一起返回给请求的 URL, 响应的返回是通过在 web.xml 中配置的过滤器 9。第 2 章 系统设计中的相关技术9图 2.6 Struts2 架构图2.2.3 业务逻辑层框架 Spring 简介Spring 是一个
36、轻量级的开源框架,是为了解决应用程序开发复杂性而创建的。Spring 框架主要由 AOP 模块、ORM 映射模块、Web 模块、DAO 模块、上下文模块、Spring MVC 框架和 Spring 核心模块这七大模块组成。在实际应用中,可以根据需要选择一个或者多个模块,灵活方便地部署到应用中。本节将主要介绍 Spring 的两大重要模块,分别是 Spring 核心模块(主要是 IoC 容器)和 AOP模块。IoC(Inversion of Control)即控制反转,也叫依赖注入(Dependency Injection, DI)。它不是一种编程技术,而是一种设计模式。IoC 基本概念是不创建
37、对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描基于 SSH 架构的课程中心系统的设计和实现10述哪一个组件需要哪一项服务。容器(在 Spring 框架中是 IoC 容器)负责将这些联系在一起。应该说,IoC 很好的促进了程序各个组件和类之间的松散耦合 10。AOP(Aspect-Oriented Programming)即面向切面编程,是一种编程思想,用来在系统中提升业务的分离。它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。系统中存在交叉业务,可将这些
38、业务模块划到特定对象切面中,如此有两个好处:第一,每个业务逻辑放在一个地方,而不是分散到代码的各个角落;第二,服务模块更加清晰 11。交叉业务逻辑如图 2.7 所示。图 2.7 交叉业务Spring 致力于在整个应用程序层面架构程序,使整个程序的各个层面能协调一致,而不是互相制约,从而发挥出最大的效能。Spring 能整合现有的优秀的框架,把它们组成连贯统一的架构。在厦门大学课程中心系统这个项目中,Spring 就很好的把 Struts2 和 Hibernate 整合起来。2.2.4 数据持久层框架 Hibernate 简介在介绍 Hibernate 之前,应该理解 对象关系映射 (Objec
39、t Relational 第 2 章 系统设计中的相关技术11Mapping,ORM)的概念。简单地说,ORM 就是 Java 应用中的对象到关系数据库中的表的自动的和透明的持续化,使用元数据对对象与数据库间的映射进行了描述。本质上,ORM 的工作是将数据从一种表示(双向)转换为另一种。这样子,人们就可以也使用面向对象的思想来与数据库进行交互 12。Hibernate 是一个开源的 ORM 框架,是目前非常流行的轻量级持久化框架之一。它将 JDBC 进行了轻量级的对象封装,使得开发人员可以方便地使用对象编程的思想来操纵数据库。利用 Hibernate,开发者可以按照所有 Java 的基础语义(
40、包括关联、继承、多态、组合以及 Collection 架构)进行持久层开发。只要写好相关配置文件,就可以以面向对象的方式操作数据库,大幅度减少手工编码操作JDBC 和 SQL 的时间。Hibernate 支持所有主流商业数据库和开源数据库,另外Hibernate 支持多种缓存机制 ,可大大提高系统数据操作的效率。所以现在越来越多的 Java 开发人员把 Hibernate 作为企业应用和关系数据库之间的中间件 ,以节省和对象持久化有关的 30%的 JDBC 编程工作量 13。图 2.8 显示了 Hibernate 的工作原理,它是利用数据库以及其它一些配置文件如 hibernate.prope
41、rties,XML Mapping 等来为应用程序提供持久服务的。图 2.8 Hibernate 结构在厦门大学课程中心系统中,首先完成关系数据库表的创建,然后利用Hibernate 框架从关系数据库表中反向生成对象 (即项目中的 Pojo),同时还把负责对数据库操作的方法抽象出来,生成数据访问对象(Data Access Object,DAO)。基于 SSH 架构的课程中心系统的设计和实现122.3 其它相关技术介绍2.3.1 Ajax 简介Ajax 是 Asynchronous JavaScript and XML 的缩写,是一种结合了Java、 XML 与 JavaScript 等编程技
42、术的创建交互式网页应用的 Web 开发技术。它使用 XHTML 和 CSS 标准化呈现,使用 DOM 实现动态显示和交互,使用XML 和 XSTL 进行数据交换与处理,使用 XMLHttpRequest 对象进行异步数据读取,使用 JavaScript 绑定和处理所有数据。更重要的是它打破了使用页面重载的惯例技术组合,而改用客户端脚本与 Web 服务器异步交换数据的 Web 应用开发方法。使用 Ajax,可以在不中断交互流程的情况下,重新加载 Web 页面,从而实现动态更新;它可以创建接近本地桌面应用的、直接的、易用的、更丰富的、更动态的 Web 用户接口界面。传统的 Web 应用模式采用同步
43、交互模式,客户端过分依赖服务器的响应,“等待-处理-等待”的处理过程缺点比较明显,有时对部分数据的更新不得不重新加载整个页面。传统的 Web 应用同步模式效率低,同时对带宽的消耗较大。与传统的 Web 应用模式不同, Ajax 应用模式采用异步交互模式,可以仅向服务器发送并取回必需的数据,它使用 SOAP 或其它一些基于 XML 的 web service 接口,并在客户端采用 JavaScript 处理来自服务器的响应。由于在服务器和浏览器之间交换的数据大量减少,Web 应用的响应更快,提高了带宽的利用率。同时很多的处理工作可以在发出请求的客户端机器上完成,从而减轻Web 服务器的负担。使用
44、 Ajax Web 应用模式的优势有以下几个方面 14:(1) 无刷新更新页面,减少用户等待的时间;(2) 减轻服务器的负担;(3) Ajax 可以把以前的一些服务器负担的工作转到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和带宽的租用成本;第 2 章 系统设计中的相关技术13(4) Ajax 可以调用外部数据,增加 Ajax 的灵活性;(5) 基于标准化的并被广泛支持的技术,不需要下载插件或小程序;(6) 进一步促进页面呈现和数据的分离,特别是使用 XML 数据表示形式,该优势更明显。Ajax 与 Web 服务器的交互过程如图 2.9 所示。它的具体流程如下 15:(
45、1) Ajax 通过 JavaScript 脚本访问用户界面对应的 DOM 树,从 DOM 中获取用户准备提交的数据,并以一定的格式组织这些数据。(2) Ajax 获得 XMLHttpRequest 对象,并指定发送的数据、Web 服务器的地址以及回调函数。回调函数是实现异步发送和接收数据的关键部分,在发送和接收数据过程中,XMLHttpRequest 对象会调用回调函数,从而可以获得与服务器交互的情况。(3) Ajax 调用 XMLHttpRequest 对象的 send 方法发送数据。(4) WEB 服务器在接收到 Http 请求后对 Ajax 封装的数据进行解析,完成相应的业务处理,按照
46、 XML 数据格式返回结果给 Ajax。(5) 回调函数在检测到与 Web 服务器的交互完成以后,从 Ajax 中获得 Web服务器返回的数据,通过 JavaScript 对数据进行处理,以 HTML 的形式在用户界面中显示。图 2.9 Ajax 与 Web 服务器的交互过程基于 SSH 架构的课程中心系统的设计和实现142.3.2 jQuery 框架简介jQuery 由美国人 John Resig 创建,是一个快速的、简洁的 JavaScript 库,其宗旨是写更少的代码,做更多的事情。jQuery 使用户在网页上操作文档、处理事件、实现特效等变得更为简单和快捷,同时更方便的为 Web 页面
47、添加 Ajax交互功能。jQuery 是继 Prototype 之后又一个优秀的 JavaScript 框架。jQuery 能够使用户的 Html 页面保持代码和 Html 内容的分离,也就是说,不用再在 Html里面插入一堆 JavaScript 来调用命令,只需定义页面中的组件 Id 即可。(1) jQuery 具有如下一些特点 16懂、学习快速、文档丰富;(2) jQuery 是一个轻量级的脚本,其代码非常小巧,最新版的;(3) JavaScript 包只有 20K 左右;(4) jQuery 支持 CSS1-CSS3,以及基本的 xPath;(5) jQuery 是跨浏览器的,它支持包
48、括 IE 6.0+,FireFox 等主流浏览器;(6) 可以很容易的为 jQuery 扩展其他功能;(7) 能将 JS 代码和 HTML 代码完全分离,便于代码和维护和修改;(8) 插件丰富,除了 jQuery 本身带有的一些特效外,可以通过插件实现更多功能,如表单验证、tab 导航、拖放效果、表格排序、DataGrid、树形菜单、图像特效以及 Ajax 上传等;(9) 使用方法非常简单,和在页面上调用 js 一样的 jQuery 的页面中引入jQuery 的 js 文件即可。厦门大学课程中心系统大部分功能模块都采用 jQuery 框架来实现 Ajax 与Web 服务的交互。本系统还使用到许
49、多 jQuery 插件,如表格、分页、自动提示、右键菜单等,主要用于某些特定功能的实现,如网页风格切换、用户验证、弹出窗口效果等,改善了用户的体验效果。2.4 本章小结本章主要介绍系统的相关技术。首先介绍了当前非常流行的企业级应用技术规范J2EE,然后围绕 J2EE 技术规范介绍了它的模型和分层结构。但J2EE 在复杂业务系统中的应用仍存在一些不足,由此引出了目前 J2EE 应用开发中十分流行的一个轻量级框架 SSH。厦门大学课程中心系统就是基于 SSH 框第 2 章 系统设计中的相关技术15架设计和实现的一个系统。针对 SSH 架构,主要介绍了三者的特点以及它们如何无缝地整合在一起协同合作。接着分别介绍 Struts、Spring 和 Hibernate 的概念、组成部分和工作机制。通过对这部分的介绍,说明了基于 SSH 框架实现的厦门大学课程中心系统在技术上的可行性和优越性。为了让系统具有更良好的用户体验,同时为了满足一些特定的用户需求,在系统中也采用了目前非常流行的 Ajax 技术。因此本章节也对 Ajax 和 jQuery等技术做了相关介绍。基于 SSH 架构的课程中心系统的设计和实现16第 3 章 课程中心系统的需求分析和设计3.1 建设目标厦门大学课程中心