1、重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 编号 毕业设计(论文)题目 勤工俭学管理信息系统的设计与实现二级学院 计算机科学与工程学院 专 业 软件工程 班 级 学生姓名 学号指导教师 职称 教授 时 间 2014.6 重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 I摘 要随着各大高校不断加强勤工助学的力度,范围不断扩大,如何有效地帮助学生做好勤工助学工作,管理勤工助学的信息,成为各大高校的一个难题。由于信息化快速发展,传统手工管理模式已经不适应时代发展,开发适应当前工作需要的办公管理软件已经成为必然。本文基于 UML 建模,结合 Java 编程语言和 MySql 数据库管理服务
2、技术,设计并实现了大学生勤工俭学管理信息系统的运行管理。整个管理系统的开发包括分析、设计、实现三个主要过程。该系统有机结合了勤工助学的现实情况,运用现代信息化技术来完成管理工作,降低勤工助学日常工作成本,提高工作效率,从而实现勤工助学传统化管理和现代化管理的有效统一,为勤工助学管理工作提供了一个更加高效,便捷的平台。关键词:勤工助学 JAVA MySql全套源程序代码加 153893706重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 IIAbstractWith constantly expanding of the number of work-study students, it h
3、as become a problem of major colleges and universities to effectively help the work-study students and manage their information. The traditional manual management model has been outdated. Due to the With the rapid development of information it is urgent to develop an office management software to ad
4、apt to the current work. This article based on UML modeling, combined with JAVA programming language and MySQL database management services to technology to design and realize the running and management of the college work-study program system. The development of entire management system including t
5、hree main processes-analysis, design and implementation. The system organically combines the reality of work-study to use the information technology to accomplish the task, reducing the cost of work-study daily work, eventually to achieve the purpose of improving the efficiency of work-study.Key wor
6、ds: Work-study Java MySQL重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 III目录摘 要 IAbstract.II1绪论 11.1 引言 11.2 背景和意义 11.3 系统特点 11.4 系统目标 21.5 系统可行性分析 22系统环境介绍 32.1 概述 32.1.1 MyEclipse 基本概述 .32.1.2 MySqL 基本概述 .32.2 技术支持简介 42.2.1 UML 介绍 .42.2.2 TCP 协议简单介绍 .62.2.3 Spring 介绍 72.2.4 Struts2 介绍 .9重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 IV2.
7、2.5 Hibernate 介绍 102.2.6 JavaScript 开发技术介绍 .123 系统分析 153.1 系统分析概述 .153.1.1 需求描述 .153.1.2 流程图 153.1.3 系统功能分析 .183.2 系统需求分析 .203.2.1 系统活动者与用例模型 .203.2.2 用例图 .214 系统设计 .264.1 系统架构与设计 .264.1.1 系统设计概述 264.1.2 系统功能设计 274.1.3 类图设计 274.2 时序图 .294.2.1 用例“注册”的时序图 .294.2.2 用例“登录”的时序图 .304.2.3 用例“审核”的时序图 .304.2
8、.4 用例“报名”的时序图 .314.2.5 用例“录用”的时序图 .324.2.6 用例“解雇”的时序图 .334.2.7 用例“发放工资”的时序图 .34重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 V4.3 数据库设计 .354.3.1 CDM(Conceptual Data Model) .354.3.2 PDM(Physical Data Model) .364.3.3 领域类设计 .375 系统实现 425.1 系统实现概述 .425.1.1 实现理念 425.1.2 软件环境 425.1.3 代码层次 425.2 登录管理模块实现 .435.3 注册管理模块实现 .455.
9、4 主页面管理模块实现 .455.5 功能列表页实现 .465.6 详细信息页面实现 .465.7 新增/修改页面实现 476 系统测试 486.1 功能性测试 .486.1.1 系统登录测试 486.1.2 报名勤工俭学功能测试 .486.1.3 公司录用管理功能测试 .496.1.4 管理员审核管理功能测试 .506.1.5 用户管理模块 .516.2 非功能性测试 .52重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 VI6.2.1 UI 测试 .526.2.2 性能测试 .526.2.3 安全性测试 .527 结语 537.1 系统设计感想 .537.2 系统展望 .53致谢 .5
10、3参 考 文 献 55重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 VII重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 11绪论1.1引言在当今信息高度发达的时代,勤工助学管理涉及的各环节已经不再仅仅是传统的勤工管理,助学管理,而是更广泛、更全面的系统服务,利用计算机管理及时了解各个环节中信息的变更,有利于提高管理的效率。同时,勤工助学工作对解决贫困生的经济问题,锻炼学生的工作能力、沟通能力、理解能力和自立能力等方面都起着重要作用。做好学生勤工助学管理工作对提高勤工助学管理的服务水平和勤工助学学生的综合能力,实现双赢有着重要的意义。因此为能够实现校方管理勤工助学而开发本系统,学生能
11、够自主选择勤工助学项目,为学生提供一个自主选择的平台。1.2 背景和意义勤工俭学是社会主义教育的一个不可缺少的组成部分,是培养四有新人的重要途径。近几年来,学校的勤工俭学活动越来越引起人们的重视,经济效益有了较大幅度的提高,机构和队伍得到充实和加强,有利地促进了社会主义一代新人的健康成长。所以,这项活动不仅有利于学生德、智、体、美全面发展,而且可以使学生通过参加劳动取得相应报酬。这是对广大学生,特别是家庭经济困难学生的有效资助办法,是对他们安心完成在校学业的有力支持随着勤工俭学者的增多,如何合理管理,有效帮助勤工俭学者成为一个难题,本系统旨在帮助勤工学生、公司、以及管理者之间进行快速通信,合理
12、安排工作,合理利用人力资源,提高人员效率,降低劳动成本和差错发生的概率。1.3系统特点1) 安装部署简单、灵活,无需安装客户端2) 界面简洁美观并且具有较强的交互能力重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 23) 数据统一管理分析,便于查询统计4) 丰富的辅助工具,具有较强的管理功能5) 大量采用设计模式,扩展灵活1.4系统目标学生能查看公司的招聘信息以及报名职位,对工作安排以及工资发放情况能一目了然;勤工俭学组织能发布招聘信息、添加职位、对学生工作数据进行管理,能轻松的进行用工分配,以及学生信息的查询、管理、统计,管理员能对审核信息进行管理、发放工资。1.5系统可行性分析1)技术
13、可行性:为了确定现有技术能否实现目标系统,Eclipse 自带的工具和空间、SQL 拥有的表操作(建立、修改、删除等)以及它协调操作完全可以实现本系统要求达到的功能,因此技术上可行2) 操作可行性:勤工俭学管理系统的建设是基于 java 平台开发的,java 是被广泛应用与数据库开发和操作的一套成熟的软件平台,而且它对于一个大型的数据库处理具有不可比拟的优点和简单方便。所以操作可行性方面是可行的。3) 经济可行性:勤工俭学工作如果完全靠人工来操作执行,不仅存在信息延后的问题,而且需要花费大量的人力物力,通讯费,各类表格通知打印费等一笔不小的长期开资,而且这笔开销还将一直无限的扩大下去,所以一次
14、性的投入建设勤工俭学管理系统不仅方便管理而且可以节约大笔费用。显然,从长远考虑在软件有效期内,预期经济效益大于开发成本,经济性收益明显,有广阔市场前景。有以上分析我们可以确定本系统在经济可行性上行得通。重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 32系统环境介绍2.1概述2.1.1 MyEclipse基本概述MyEclipse 企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对 EclipseIDE 的扩展,利用它我们可以在数据库和 JavaEE 的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的 Java
15、EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse 是一个十分优秀的用于开发 Java, J2EE 的 Eclipse 插件集合,MyEclipse 的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse 目前支持 Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC 数据库链接工具等多项功能。可以说 MyEclipse 是几乎囊括了目前所有主流开源产品
16、的专属 eclipse 开发工具。根据官方最新消息,MyEclipse 2013 已经正式发布!MyEclipse 2013 支持HTML5、JQuery 和主流的 Javascript 库。随着 MyEclipse 2013 支持 Html5,你可以添加音频、视频和 API 元素到你的项目,从而为移动设备创建复杂的 Web 应用程序。你甚至还可以通过 HTML5 可视化设计器设计令人难以置信的用户界面。同时,随着 MyEclipse 2013 支持 JQuery,你可以通过插件提升性能,并添加动画效果到设计中。2.1.2 MySql基本概述MySql 是一个关系型数据库管理系统,由瑞典 My
17、Sql AB 公司开发,目前属于重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 4Oracle 公司。Mysql 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySql 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。MySql 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySql 所使用的 Sql 语言是用于访问数据库的最常用标准化语言。MySql 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快
18、、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySql 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。MySql 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典 MySql AB公司。MySql 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySql 作为网站数据库。2.2技术支持简介2.2.1 UML介绍UML 全称是 UML-Unified Model Language 统一建模语言,又称标准
19、建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML 的定义包括 UML 语义和 UML表示法两个元素。UML 是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线作为模型附加信息之用的文本。这些虽简单却非常重要,在 UML 规则中相互联系和扩展。UML 作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建
20、立之后,模型可以被 UML 工具转化成指定的程序语言代码。重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 5公认的面向对象建模语言出现于 70 年代中期。从 1989 年到 1994 年,其数量从不到十种增加到了五十多种。在众多的建模语言中,语言的创造者努力推崇自己的产品,并在实践中不断完善。但是用户并不了解不同建模语言的优缺点及相互之间的差异,因而很难根据应用特点选择合适的建模语言,于是爆发了一场“方法大战” 。90 年代中,一批新方法出现了,其中最引人注目的是 Booch 1993、OOSE 和 OMT-2等。Booch 是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。
21、1991 年,他将以前面向 Ada 的工作扩展到整个面向对象设计领域。Booch 1993 比较适合于系统的设计和构造。Rumbaugh 等人提出了面向对象的建模技术(OMT)方法,采用了面向对象的概念,并引入各种独立于语言的表示符。这种方法用对象模型、动态模型、功能模型和用例模型,共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。OMT-2 特别适用于分析和描述以数据为中心的信息系统。Jacobson 于 1994 年提出了 OOSE 方法,其最大特点是面向用例(Use-Case),并在用例的描述中
22、引入了外部角色的概念。用例的概念是精确描述需求的重要武器,但用例贯穿于整个开发过程,包括对系统的测试和验证。OOSE 比较适合支持商业工程和需求分析。此外,还有 Coad/Yourdon 方法,即著名的 OOA/OOD,它是最早的面向对象的分析和设计方法之一。该方法简单、易学,适合于面向对象技术的初学者使用,但由于该方法在处理能力方面的局限,目前已很少使用。概括起来,首先,面对众多的建模语言,用户由于没有能力区别不同语言之间的差别,因此很难找到一种比较适合其应用特点的语言;其次,众多的建模语言实际上各有千秋;第三,虽然不同的建模语言大多雷同,但仍存在某些细微的差别,极大地妨碍了用户之间的交流。
23、因此在客观上,极有必要在精心比较不同的建模语言优缺点及总结面向对象技术应用实践的基础上,组织联合设计小组,根据应用需求,取其精华,去其糟粕,求同存异,统一建模语言。1994 年 10 月,Grady Booch 和 Jim Rumbaugh 开始致力于这一工作。他们首先将 Booch 93 和 OMT-2 统一起来,并于 1995 年 10 月发布了第一个公开版本,称之为统一方法 UM 0.8(Unitied Method)。1995 年秋,OOSE 的创始人 Ivar Jacobson重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 6加盟到这一工作。经过 Booch、Rumbaugh 和
24、 Jacobson 三人的共同努力,于 1996 年6 月和 10 月分别发布了两个新的版本,即 UML 0.9 和 UML 0.91,并将 UM 重新命名为 UML(Unified Modeling Language)。1996 年,一些机构将 UML 作为其商业策略已日趋明显。UML 的开发者得到了来自公众的正面反应,并倡议成立了 UML 成员协会,以完善、加强和促进 UML 的定义工作。当时的成员有 DEC、HP、I-Logix、 Itellicorp、 IBM、ICON Computing、MCI Systemhouse、Microsoft、Oracle、Rational Softwa
25、re、TI 以及Unisys。这一机构对 UML 1.0(1997 年 1 月)及 UML 1.1(1997 年 11 月 17 日)的定义和发布起了重要的促进作用。UML 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。面向对象技术和 UML 的发展过程可用图形来表示,标准建模语言的出现是其重要成果。在美国,截止1996年10月,UML 获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用 UML 作为建模语言。1996年底,UML 已稳占
26、面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。1997年11月17日,OMG 采纳 UML 1.1作为基于面向对象技术的标准建模语言。UML 代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。2.2.2 TCP协议简单介绍TCP 的全称是 Transmission Control Protocol/Internet Protocol 的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是 Internet 最基本的协议、Internet 国际互联网络的基础,由网络层的 IP 协议和传输层的 TCP 协议组成。TCP/IP
27、 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了 4 层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP 负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而 IP 是给因特网的每一台电脑规定一个地址。重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 7TCP/IP 协议并不完全符合 OSI 的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的 7 层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这 7 层是:物理层、数据链路层、网路层、
28、传输层、话路层、表示层和应用层。而 TCP/IP 通讯协议采用了 4 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这 4 层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP) 、文件传输协议(FTP) 、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP) 、用户数据报协议(UDP)等,TCP 和 UDP 给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收)
29、 ,如网际协议(IP) 。 网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line 等)来传送数据。2.2.3 Spring介绍Spring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和低耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量从大小与开销
30、两方面而言 Spring 都是轻量的。完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布。并且 Spring 所需的处理开销也是微不足道的。此外,Spring 是非侵入式的:典型地,Spring 应用中的对象不依赖于Spring 的特定类。控制反转Spring 通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为 IoC 与 JNDI 相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。重庆理工大学毕业论文 勤工俭学信息
31、系统的设计与实现 8面向切面Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。容器Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个 bean 如何被创建基于一个可配置原型(prototype) ,你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring 不应该被混
32、同于传统的重量级的 EJB 容器,它们经常是庞大与笨重的,难以使用。框架Spring 可以将简单的组件配置、组合成为复杂的应用。在 Spring 中,应用对象被声明式地组合,典型地是在一个 XML 文件里。Spring 也提供了很多基础功能(事务管理、持久化框架集成等等) ,将应用逻辑的开发留给了你。所有 Spring 的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为 Spring 中的各种模块提供了基础支持。Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式。组成 Spr
33、ing 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。Spring 上下文: Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的
34、编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 9理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接) 。Spring DAO 的面向 J
35、DBC 的异常遵从通用的 DAO 异常层次结构。Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、 Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。Spring MVC 框架:MVC 框架是一个全功能的
36、构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。2.2.4 Struts2介绍Struts 2 是 Struts 的下一代产品,是在 struts 1 和 WebWork 的技术基础上进行了合并的全新的 Struts 2 框架。其全新的 Struts 2 的体系结构与 Struts 1 的体系结构差别巨大。Struts 2 以 WebWork 为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与 ServletAPI 完全脱离开,所
37、以Struts 2 可以理解为 WebWork 的更新产品。虽然从 Struts 1 到 Struts 2 有着太大的变化,但是相对于 WebWork,Struts 2 的变化很小。在 Struts 2 体系结构中当 Web 容器收到 请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器,然后经过Other filters(SiteMesh ,etc),接下来需要调用 FilterDispatcher 核心控制器,然后它调用 ActionMapper 确定请求那个 Action,ActionMapper 返回一个收集
38、Action 详细信息的 ActionMaping 对象。接下来 FilterDispatcher 将控制权委派给 ActionProxy,ActionProxy 调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建 ActionInvocation 对象,ActionInvocation 在调用 Action 之前会依次的调用所用配置拦截器(Interceptor N) 一旦执行结果返回结果字符串 ActionInvocation重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 10负责查找结果字符串对应的(Result)然
39、后执行这个 Result Result 会调用一些模版(JSP)来呈现页面,之后拦截器(Interceptor N)会在被执行(顺序和 Action 执行之前相反)最后响应(HttpServletResponse)被返回在 web.xml 中配置的那些过滤器和(核心控制器) (FilterDispatcher) 。Struts2 的拦截器在在 AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是 AOP 的一种实现策略。在 Webwork 的中文文档的解释为拦截器是动态拦截 Action 调用的对象。它提
40、供了一种机制可以使开发者可以定义在一个 action 执行的前后执行的代码,也可以在一个 action 执行前阻止其执行。同时也是提供了一种可以提取 action 中可重用的部分的方式。大部分时候,拦截器方法都是通过代理的方式来调用的。Struts 2 的拦截器实现相对简单。当请求到达 Struts 2 的 ServletDispatcher 时,Struts 2 会查找配置文件,并根据其配置实例化相对的拦截器对象,然后串成一个列表(list) ,最后一个一个地调用列表中的拦截器Struts 2 已经为您提供丰富多样的,功能齐全的拦截器实现。因此可以至struts2 的 jar 包内的 str
41、uts-default.xml 查看关于默认的拦截器与拦截器链的配置。2.2.5 Hibernate介绍Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。Hibernate 的核心接口一共有 6 个,分别为:Ses
42、sion、SessionFactory、Transaction、Query、Criteria 和 Configuration。这6 个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 11存取,还能够进行事务控制。下面对这 6 个核心接口分别加以介绍。1) SessionSession 接口负责执行被持久化对象的 CRUD 操作(CRUD 的任务是完成与数据库的交流,包含了很多常见的 SQL 语句。)。但需要注意的是 Session 对象是非线程安全的。同时,Hibernate 的 session 不同于 JSP 应用中的
43、HttpSession。这里当使用session 这个术语时,其实指的是 Hibernate 中的 session,而以后会将HttpSession 对象称为用户 session。2) SessionFactorySessionFactory 接口负责初始化 Hibernate。它充当数据存储源的代理,并负责创建 Session 对象。这里用到了工厂模式。需要注意的是 SessionFactory 并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory 就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactory。3) Transactio
44、nTransaction 接口是一个可选的 API,可以选择不使用这个接口,取而代之的是 Hibernate 的设计者自己写的底层事务处理代码。 Transaction 接口是对实际事务实现的一个抽象,这些实现包括 JDBC 的事务、JTA 中的 UserTransaction、甚至可以是 CORBA 事务。之所以这样设计是能让开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移值。4) QueryQuery 接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL 语言或本地数据库的 SQL 语句。Query 经常被用来绑定查询参数、限制查询记
45、录数量,并最终执行查询操作。5) CriteriaCriteria 接口与 Query 接口非常类似,允许创建并执行面向对象的标准化查询。值得注意的是 Query 接口也是轻量级的,它不能在 Session 之外使用。6) Configuration重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 12Configuration 接口的作用是对 Hibernate 进行配置,以及对它进行启动。在Hibernate 的启动过程中,Configuration 类的实例首先定位映射文档的位置,读取这些配置,然后创建一个 SessionFactory 对象。虽然 Configuration 接口在整
46、个 Hibernate 项目中只扮演着一个很小的角色,但它是启动 hibernate 时所遇到的每一个对象。hibernate 优点:1) 封装了 jdbc,简化了很多重复性代码。2) 简化了 DAO 层编码工作,使开发更对象化了。3) 移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变 hibernate 代码。4) 支持透明持久化,因为 hibernate 操作的是纯粹的(pojo)java 类,没有实现任何接口,没有侵入性。所以说它是一个轻量级框架。2.2.6 JavaScript开发技术介绍JavaScript 是一种基于对象(Object)和事件驱动(
47、Event Driven)并具有安全性能的脚本语言。它可以嵌入到 HTML 文档中使网页更加生动活泼,并具有交互性。HTML 语言是网页设计普遍采取的一种超文本标记语言,但 HTML 自身不能为网页提供很多动态支持,它只能创建超链接以允许用户浏览不同的 HTML 文档。HTML 也不能接受用户输入,更不能对用户请求作出反应。JavaScript 的出现弥补了 HTML 语言的缺陷,是 Web 上新的、强大的编程语言。一种编程语言通常是由另外一种编程语言演变而来的,JavaScript 的发展历史还得从 Java 谈起。Java 最初是 Sun Microsystems 公司为了在实时嵌入式系统
48、中使用而开发的。最初只有 HotJava 支持 Java,而 HotJava 正是 Sun 公司为支持 Java 而开发的一种实验性 Web 浏览器。当 Netscape 公司在认识到 Java 的巨大潜力后,便把它和自己开发的 Web 浏览器Netscape Navigator 结合到一起。Netscape 公司最初开发了一个 LiveScript 语言,在 Navigator 和 Web 服务器产品中加进了基本的脚本功能。当 Navigator 2.0 中加进了 Java 小程序支持后,重庆理工大学毕业论文 勤工俭学信息系统的设计与实现 13Netscape 公司便把最初的 LiveScr
49、ipt 更名成了 JavaScript。接着,Microsoft 公司的浏览器 Internet Explorer 3.0 也开始支持JavaScript。此后,许多公司相继宣布承认 JavaScript 为 Internet 上的开放式脚本编写标准,并且把它添加到了自己的产品中。因此,目前流行的浏览器都支持JavaScript。JavaScript 因而也日益流行起来。JavaScript 是一种简单的脚本编程语言,主要适用于简单、小型的程序。它可以与 HTML 超文本标记语言、Java 脚本语言(Java 小程序)一起实现在一个 Web 页面中链接多个对象,与 Web 客户交互作用,从而开发出客户端的应用程序等。它是通过嵌入或调入到标准的 HTML 语言中实现的,它的出现弥补了 HTML 语言的缺陷。JavaScript 语言有以下特点。1) JavaScript 是一种脚本编写语言脚本(Script)是一种能够完成某些特殊功能的指令序列(小程序段) 。这些指令序列不像一般程序那样需要被编译才能执行,而是在程序运行过程中被逐行地解释。在脚本中所使用的