毕业设计(论文)基于SSH架构的人力资源管理系统设计(招聘管理模块)_第1页
毕业设计(论文)基于SSH架构的人力资源管理系统设计(招聘管理模块)_第2页
毕业设计(论文)基于SSH架构的人力资源管理系统设计(招聘管理模块)_第3页
毕业设计(论文)基于SSH架构的人力资源管理系统设计(招聘管理模块)_第4页
毕业设计(论文)基于SSH架构的人力资源管理系统设计(招聘管理模块)_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、摘 要 随着时代的进步,计算机已经深入人们的日常生活,人们开始越来越多的利用计算 机来解决实际问题。尤其是企业。现在大中小型企业日益突起,随着业绩量的增加, 各种繁多复杂的问题也接踵而来。比如,企业要聘用人,从发布招聘信息到笔试,面 试的记录输入,再到简历的入档存放。这些问题如果单纯靠人力来解决的话不但耗时, 而且效率不高,结果也会不尽人意。因此,开发一个界面友好,易于操作的人力资源 管理系统软件进行自动化处理变得十分重要,这正是本系统开发的目的和意义。本文 阐述了人力资源管理系统的招聘管理模块,分别阐述了简历管理,笔试管理,面试管 理和录用管理。 本文是用 java 语言描述。所用的架构是

2、spring,hibernate,struts(ssh) 。 spring 作为项目的核心容器,由它整合 struts 和 hibernate,起到粘合的作用。 struts 作为核心控制器,在数据持久层方面则使用了 hibernate.前台用 jsp 页面+el 表达式+框架自带的标签库进行输出。之所以采用如此构架是考虑到利于项目的后期维 护。 关键词:企业;互联网;ssh;jsp abstract with the progress of the times, the computer has been deeply peoples daily life, people increasin

3、gly use computers to solve practical problems. especially enterprise. now big small and medium enterprises increasingly, yea, along with the performance of the increased amount of various complex problems, and one thing after another. for example, the enterprise should hire people, from recruitment

4、information to release records of written, interview, again to resume input into the files are stored. if these problems to solve it realized by the human not only time-consuming, and the efficiency is not high, the result will be unsatisfactory. therefore, the development of a friendly interface, e

5、asy to operate human resource management system software for automated become important, this is the systematic development of purpose and meaning. this paper expounds the human resource management system of recruitment management module, respectively expounds written resume management, management,

6、interview management and employment management. this paper is to use java language description. the architecture is used hibernate, struts (and are) ssh. as the core of the project containers are struts and integration by it, the role of hibernate, have adhesion. struts as the core controller, in da

7、ta persistence layer is used in hibernate. front desk with the jsp page + el expression + framework for output to bring the tag library. the architecture is considering using such late for project maintenance. key words: enterprise; internet; ssh; jsp 目目 录录 摘 要.i 绪 论.v 1系统分析.1 1.1需求分析.1 1.2技术可行性.1 1

8、.2.1动态网站技术介绍.1 1.2.2程序语言的选择.1 1.2.3语言优势.3 1.2.4操作可行性.4 1.3环境可行性分析.4 1.3.1软件环境.4 1.4系统结构可行性分析.4 1.4.1b/s 模式简介 .4 2系统设计.6 2.1系统设计说明.6 2.2总体设计.6 2.3数据库设计.7 2.3.1数据库的需求分析.7 2.3.2数据库表的具体设计.7 2.4详细设计.13 2.4.1功能设计.13 2.4.2具体设计.13 2.5开发架构.14 2.5.1软件开发架构的意义.14 2.5.2struts 架构简介 .14 2.6数据持久层.16 2.6.1持久化数据.17 2

9、.6.2持久化技术.17 3系统实现.19 3.1准备工作.19 3.1.1创建表空间.19 3.1.2连接数据库.19 3.2项目流程演示.20 3.2.1具体流程演示.20 3.2.2简历管理.21 3.2.3职位发布.23 3.2.4题库管理.24 3.2.5试卷管理.26 3.2.6在线考试.28 3.2.7面试管理.31 3.2.8录用管理.32 4技术难点.34 4.1中文乱码.34 4.2数据的完整性.35 5系统测试.36 5.1测试的定义及目的.36 5.2测试的原则.36 5.3测试的方法.36 5.3.1界面测试.36 5.3.2功能测试.37 5.3.3需求测试.38

10、5.3.4性能测试.38 5.4人力资源管理系统的测试.38 总 结.i 致 谢.ii 参考文献.iii 绪 论 现在网络的发展已呈现商业化、全民化、全球化的趋势。目前,几乎世界上所有的 公司都在利用网络传递商业信息,进行商业活动,从宣传企业、发布广告、招聘雇员、 传递商业文件乃至拓展市场、网上销售等,无所不能。如今网络已成为企业进行竞争 的战略手段。企业经营的多元化拓展,企业规模的进一步扩大,对于企业的管理、业 务扩展、企业品牌形象等提供了更高的要求。在以信息技术为支撑的新经济条件下, 越来越多的企业利用起网络这个有效的工具。 全球范围内的企业内部组织正在发生巨变,未来企业成功的关键的依靠企

11、业人力资 源,人才之争已经成为市场竞争中的核心内容之一,以人为本成为企业立足和发展的 根本。有效力管理企业的人力资源,为企业提供强有力的储备力量,使之成为企业发 展的主动力。通过人力资源的有效管理,掌握最新的、准确的企业人力资源信息,并 对其进行复杂的统计与分析,从而充分发挥每个员工的潜能,为企业创造更大的价值。 对于任何一个企业而言,企业的品牌形象至关重要。特别是对于互联网技术高度 发展的今天,通过人力资源管理的网站,员工可通过网站侧面的了解企业形象及企业 实力,因此,建立具有国际水准的网站能够极大的提升企业在员工心中的整体形象。 1系统分析 1.1 需求分析 网络化的今天,网络人力资源管理

12、系统,使新的人力资源协作管理模式成为可能。 通过网络管理系统,专门的人力资源管理人员可以提高自身的工作效率,作好人力资 源管理的协调工作,提高人力资源利用率;通过网络管理系统,员工可以直接管理自 己的技能,有效地发现和挖掘自身的潜能,及时与自己的上级、下属、同事进行的沟 通与交流,同心协作,积极为企业的发展与决策贡献力量。通过网络人力资源管理系 统对企业人力资源进行管理,使企业人力资源管理适应时代的发展要求,大大提高了 企业的核心竞争力。 1.2 技术可行性 1.2.1 动态网站技术介绍 internet 起源于 20 世纪 60 年代的美国,它在近几年迅速风靡全球,其根本原因不 仅在于她拥有

13、卓越的国际通信功能,更在于它拥有巨大的信息资源。所谓的 internet 是指由分布在全世界成千上万的计算机网络遵循一定的通讯协议,并相互联系在一起而 形成的国际互连网络,也就是说,internet 是建立和使用这些网络的人群,群体,公司以 及各种网络资源的集合体。 随着网络技术的不断发展,单纯的静态页面已经不能满足发展的需要,因为静态页 面是用单纯的 html 语言组成的,它没有交互性。因此,为了满足实际的需要,许多网页 文件扩展名不再只是”htm”,”html”,出现了以”php”,”asp”,”jsp”,” shtml”等为后缀的网页文件,这些都是采用动态网页技术制作出来的。 1.2.2

14、 程序语言的选择 1) cgi cgi( common gateway interface,通用网关接口)。首先,客户端(即 web 浏览器) 根据某资源的 url(uniform resource locator,统一资源定位器)向 web 服务器提出请 求,web 服务器的 http daemon(守护进程)将此请求的参数通过标准输入 stdin 和环境 变量传递给指定的 cgi 程序,并启动此应用程序进行处理,如要存取数据库服务器上数 据库的数据,则向数据库服务器发出处理请求,数据库服务器将执行结果返回给 cgi 程 序,cgi 程序处理结果通过标准输出 stdout 返回给 httpd

15、aemon 进程,再由 http daemon 进程返回给客户端,由浏览器解释执行,将最终结果在用户面前显示。cgi 允许 web 服务 器运行外部应用程序,以通过外部程序来访问数据库等一些外部资源,并产生 html 文档 给浏览器。但每次请求 cgi 程序都要重新启动程序,影响了响应的速度,且 cgi 程序不 能被多个客户请求共享,影响了各种资源的使用效率。为了克服 cgi 的这些缺点,一些 web 服务器厂商开发出了专用的 api(applications program interface 应用程序接口),这 样就允许程序员编写程序来扩展服务器的功能。api 相对于 cgi 与 web

16、服务器的结合更 加紧密,占用的资源较少,运行的效率大有提高,安全性与保护性更好。但是开发 api 应 用程序比开发 cgi 应用程序复杂得多,要求程序员掌握更多的计算机软件知识,且各种 api 之间的兼容性不好,业界没有一个统一的标准,使得 api 程序只能工作在专用的 web 服务器与操作系统之上。编写 cgi 的程序设计语言有许多种,常用的有 c,perl,visual c+等,由于对程序员的要求较高,且编写与 调试比其它队编程技术困难,故近年来基于 b/s 的信息系统工程时间中已很少被采用。 2)asp asp 的程序比 html 更方便而更富有灵活性。是在 web 服务器端运行,运行后

17、再 将运行结果以 html 格式传送至客户端的浏览器。因此 asp 与一般的脚本语言相比要 安全得多。asp 最大的好处就是可以包含 html 标签,也可以直接存取数据库及使用无 限扩充的 activex 控件,用户可以直接使用 activex 控件,调用对象方法和属性,以简单的 方式实现强大的交互功能。但 asp 技术也并非完美无缺,由于它基本上是局限于微软的 操作系统平台,主要的工作环境是微软的 iis 应用程序结构,又因 activex 对象具有平台 特性,所以 asp 技术要实现在跨平台 web 服务器上工作,不是很容易。microsoft 的 asp 技术目前已发展到.net 版。对

18、很多人来说,用 asp 来创建 windows 服务器平台上的动 态 web 网页,整个站点和基于 web 的应用程序已经成为及其自然的方法。在浏览器地 址栏中,文件扩展名。asp 同表示动态创建的网页的文件扩展名.pl 或.cgi 一样,已被浏览 者所接受。开发 asp 程序,常常先设计静态网页的栏目格式和排版形成 html 语言,接 着在 html 的基础上添加脚本程序,形成 asp 程序后再实现动态的 web 网页。在 asp 的程序开发中,它所用的脚本语言是 javascript 和 vbscript,在默认情况下使用的是 vbscript,它是 vb 程序设计语言的一个子集,语法与

19、vb 基本相同。asp 中的 ado 对象 用来执行与数据库相关的操作,ado 再以 oledb 或 odbc 的方式访问数据库,在.net 版本中这一对象称为 ado.net。 3)php php 即 hypertext preprocessor(超文本预处理器),它是当今 internet 上最为火热的脚 本语言,其语法借鉴了 c,java,perl 等语言,而且只需要很少的编程知识就能使用 php 建 立一个真正交互的 web 站点。它与 html 语言具有非常好的兼容性,使用者可以直接 在脚本代码中加入 html 标签或者在 html 标签中加入脚本代码从而更好地实现页面 控制。php

20、 提供了标准的数据库接口,数据库连接方便,兼容性更强,扩展性强,可以进行 面向对象编程。但是 php 对组件的支持不够,扩展性差,常用它与免费的数据库系统 mysql 协同一起用来构建中小型网 b/s 应用大网站或信息系统。 4)jsp jsp(javaserver pages)是由 sun 公司倡导,许多别的公司参与一起创建的一种新动态 网页技术标准,类似其他技术标准。在传统的网页 html 文件(*.htm,*.html)中加入 java 程序片断(scriptlet)和 jsp 标签,构成了 jsp 网页(*.jsp)servlet/jsp container 收到客户端 发出的请求时,

21、首先执行其中的程序片断,软后将执行结果以 html 格式响应给客户端, 其中程序片断可以是:操作数据库,重新定向网页以及发送 e-mail 等等,这些都是建立动 态网站所需要的功能。所有程序操作都在服务器端运行,网络上传送给客户端的仅是得 到的结果,与客户端的浏览器无关,因此,jsp 称为 server-side language。所以被许多人认 为是未来最有发展前途的动态网站技术之一。要了解 jsp 相关知识,请参考文献【1】。 经过如上的程序语言的比较,php 功能相对简单,不适合作大程序,而 cgi 效率相对 较低,所以也不考虑,因为该系统并没有原有的基础平台需要扩展,也不需要与其他系统

22、进 行太多的交互,所以使用 j2ee 的模式并不能够体现出 j2ee 本身的优势,而 jsp 又是 j2ee 的核心技术之一,可以随时升级为 j2ee 程序,这里暂时不考虑采用 j2ee,这样只需 要在 asp 和 jsp 中进行选择。在进行了诸多因素的比较之后,最终认为目前这个阶段比 较合适的是 jsp,而选择 struts 架构作为开发的主体框架,选用 hibernate 作为数据持续性 处理层,则是考虑到了其高速的开发效率,及代码重用性高,易于维护等各种优势。其最终 目的是希望提高系统底层业务逻辑的可重用性,增加系统的可扩展性,降低系统维护成本。 1.2.3 语言优势 一次编写,到处运行

23、 作为 java 平台的一部分,jsp 拥有 java 编程语言”一次编写,到处运行”的特点, 随着越来越多的供应商将 jsp 支持添加到他们的产品中,您可以使用自己所选择的服务 器和工具,但并不影响当前的应用。 jsp 的平台适应性更广 这是 jsp 比 asp 的优越之处,几乎所有的平台都支持 java,它们可以在任何平台下 通行无阻。虽然 nt 的 os 占据了很大的市场的份额,但在服务器方面 unix 的优势仍 然很大。从一个平台移植到另一个平台,jsp 和 javabeans 甚至不用重新编译,因为 java 字节码都是标注的字节码与平台无关。 健壮的存储管理和安全性 由于 jsp

24、页面的内置脚本语言是基于 java 编程语言的,而且所有的 jsp 页面都被编 译为 java servlet,jsp 页面就具有 java 技术的所有优点,包括健壮的存储管理和安全性 数据库连接技术 很多的 os 中都带有 jdbc 驱动程序,java 就通过 jdbc 与数据库连接,执行查询,提 取数据等操作。sun 公司还提供了 jdbc-odbc 的桥连方式,因此 java 也可以访问带有 odbc 驱动的数据库,目前大多数数据库系统都带有 odbc 驱动,所以 java 能访问诸如 oracle,sybase,ms sql server 和 access 等类型的数据库。 1.2.4

25、 操作可行性 对于用户来说,本系统只要求使用者掌握一定的上网经验,经过仔细设计和测试之 后的系统具有操作简单,方便灵活等优点,足可以满足各种用户的不同需求,同时也 方便了公司的内部管理。管理人员及用户一定会在短时间内掌握并熟练使用。只要动 一动鼠标键盘就可以达到想要的效果。 1.3 环境可行性分析 1.3.1 软件环境 操作系统:windows xp, sp2,sp3。 内存大于等于 2g 硬盘大于等于 50g 数据库:oracle 10i web 服务器:tomcat 6.0 ide; myeclipse8.5 1.4 系统结构可行性分析 1.4.1 b/s 模式简介 b/s 结构,即 br

26、owser/server(浏览器/服务器)结构,是随着 internet 技术的兴 起,对 c/s 结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过 www 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成 所谓 3-tier 结构。b/s 结构,主要是利用了不断成熟的 www 浏览器技术,结合浏览器 的多种 script 语言(vbscript、javascript)和 activex 技术,用通用浏览器就实现 了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软 件系统构造技术。随着 windows 98/windows 2000

27、 将浏览器技术植入操作系统内部, 这种结构更成为当今应用软件的首选体系结构。显然 b/s 结构应用程序相对于传统的 c/s 结构应用程序将是巨大的进步。b/s 结构采用星形拓扑结构建立企业内部通信网络 或利用 internet 虚拟专网(vpn) 。前者的特点是安全、快捷、准确。后者则具有节省 投资、跨地域广的优点。须视企业规模和地理分布确定。martin fowler 在企业应用架 构模式一书中有详细的阐述,见文献【2】。企业内部通过防火墙接入 internet,再整个 网络采用 tcp/ip 协议。 比如说很多人每天上“网易”网,只要安装了浏览器就可以了,并不需要了解“网 易”的服务器用的

28、是什么操作系统,而事实上大部分网站确实没有使用 windows 操作系 统,但用户的电脑本身安装的大部分是 windows 操作系统。 2系统设计 2.1 系统设计说明 系统设计是在系统分析的基础上由抽象到具体的过程。主要目标是将系统分析阶 段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机与通信系统 的物理(技术)方案,为下一阶段系统实施提供必要的技术资料,应符合系统性,灵活性,可 靠性,经济性的要求。 2.2 总体设计 招聘管理 发布职位简历管理考试管理 发布 职位 查看 职位 修改 职位 删除 职位 新增 简历 查看 简历 修改 简历 笔试淘汰 等待 录用 面试 4 3 2

29、 1 在线考试 试卷管理 查看 试卷 修改 试卷 审核 试卷 修改 审核 淘汰 不通过 通过 图 2-1 招聘管理流程图 2.3 数据库设计 2.3.1 数据库的需求分析 题库表: t_questions 题目选项表: t_question_option 简历管理表: t_resume 面试表: t_interview 职位发布表: t_major_issue 试卷表: t_exam 试卷详细表: t_exam_detail 考试答案表: t_answer 考试答案明细表: t_answer_details 2.3.2 数据库表的具体设计 表 2-1 题库表 表名表名题库表英文名称英文名称t_

30、questions 主键主键question_id外键外键 序号序号名称名称类型类型大小大小必填字段必填字段默认值默认值备注备注 1 question_idinttrue题库表 id 2 question_kind_idinttrue 问题分类(数据字典) 3 question_typechar(1)1true答案类型 4 contentvarchar2(200)200true题目内容 5 answervarchar2(200)200true答案 6 registerintfalse登记人 7 regist_timedatefalse登记时间 8 changerintfalse变更人 9 ch

31、ange_timedatefalse变更时间 该表用于管理笔试的试题集,其中 question_kind_id 是从数据字典中取得 表 2-2 题目选项表 名名题目选项表英文名称英文名称t_question_option 主键主键option_id外键外键question_id 序号序号名称名称类型类型大小大小必填字段必填字段默认值默认值备注备注 1 option_idinttrue选项 id 2 question_idinttrue题目 id 3 option_codevarchar2(10)10true选项编号 4 contentvarchar2(200)200false选项内容 5 op

32、tion_typechar(1)1false选项类型() 该表用于存储试题结果选项 图 2-3 表 2-3 简历管理表 表名表名简历管理表英文名称英文名称t_resume 主键主键resume_id外键外键jobhunt_major_id 序号序号名称名称类型类型大小大小必填字段必填字段默认值默认值备注备注 1 resume_idnumber(19)19true简历管理表 id 2 jobhunt_namevarchar2(60)60true求职人姓名 3 jobhunt_major_idnumber(9)9true应聘职位 id 4 engage_typevarchar2(30)30fals

33、e招聘类型 5 jobhunt_addressvarchar2(20)20false地址 6 jobhunt_postcodevarchar2(6)6false 邮编 7 jobhunt_telephonevarchar2(60)60false电话号码 8 jobhunt_homephonevarchar2(60)60false 家庭电话 9 jobhunt_mobilephonevarchar2(60)60false手机 10 jobhunt_emailvarchar2(60)1false email 11 jobhunt_hobbyvarchar2(200)200false兴趣爱好 12

34、jobhunt_specilityvarchar2(200)200 特长 13 jobhunt_sexchar(2)2false性别 14 jobhunt_religionvarchar2(60)60false 宗教信仰 15 jobhunt_partyvarchar2(60)60false 政治面貌 16 jobhunt_nationalityd varchar2(60)60false国籍 17 jobhunt_racevarchar2(60)60false 民族 18 jobhunt_birthdaydatefalse生日 续表 2-3 序号序号名称名称类型类型大小大小必填字段必填字段默认

35、值默认值备注备注 19 jobhunt_agevarchar(3) 3 false年龄 20 jobhunt_educated_degreevarchar2(60) 60 false教育程度 21 jobhunt_educated_yearsnumber(2) 2 教育年限 22 jobhunt_educated_majorvarchar(60) 60 false专业 23 jobhunt_collegevarchar(60) 60 false专业院校 24 jobhunt_idcardvarchar2(60) 60 false身份证号 25 jobhunt_birthplacevarchar

36、2(200) 200 false出生地 26 demand_salary_standardnumber(15,2) 15 false期望薪酬 27 jobhunt_history_recordsvarchar2(2000) 2000 false个人履历 28 remarkvarchar2(500) 500 false备注 29 recomandationvarchar(500) 500 false推荐意见 30 jobhunt_picturefilefalse照片 31 attachment_namefilefalse档案附件 32 registervarchar(20) 20 false登记

37、人 33 regist_timedatafalse登记时间 34 checkervarchar(20) 20 false筛选人 35 check_timedatafalse筛选时间 36 check_commentvarchar(500) 500 false筛选推荐意见 37 interview_amountnumber(2) 2 false面试次数 38 total_pointsnumber(5,2) 5 false笔试总分 39 test_amountnumber(2) 2 false笔试次数 40 pass_checkervarchar(20) 20 false录用审核人姓名 41 pa

38、ss_check_timedatafalse录用复核时间 42 pass_check_commentvarchar(500) 500 false录用审核意见 43 resume_statuschar(1) 1 false简历状态 简历状态(未操作 0,1 面试、2 笔试、3 等待录用、4 已落选、5 已录用) 说明: 本表是用来存储求职人的个人简历信息和企业人员对该简历的处理情况(具体信息看上面的简历管理表), 表 2-4 面试表 面试表表名面试表英文名称t_interview 主键interview_id外键resume_id 序号名称类型大小必填字段默认值备注 1 interview_id

39、number(19)19true面试表 id 2 resume_idnumber(19)19true简历 id 3 image_degreenumber(9)9false形象等级 4 flk_degreenumber(9)9false口才等级 5 flw_degreenumber(9)9false外语水平 6 fly_degreenumber(9)false应变能力 7 eq_degreenumber(9)9falseeq 等级 8 iq_degreenumber(9)9falseiq 等级 9 mq_degree number(9)9false综合素质 10 interview_commen

40、t number(500 ) 500false面试评价 11 registervarchar(20)20true面试人 12 registe_timedatatrue面试时间 说明: 本表是用来存储对面试人的面试相关测试信息(具体信息看上面的面试表), 表 2-5 职位发布表 表名表名职位发布表英文名称英文名称t_major_issue 主键主键major_issue_id外键外键dept_id,major_id 序号序号名称名称类型类型大小大小必填字段必填字段默认值默认值备注备注 1 1 major_issue_idinttrue职位发布表 id 2 2 dept_idinttrue部门 i

41、d 3 3 major_idinttrue职位 id 4 4 human_amountinttrue招聘人数 5 5 engage_typevarchar(60)60true招聘类型 6 6 deadlinedatatrue截止日期 7 7 major_describevarchar(2000)2000true职位描述 续表 2-5 序号序号名称名称类型类型大小大小必填字段必填字段默认值默认值备注备注 8 8 engage_requiredvarchar(2000)2000true招聘要求 9 9 register varchar(20)20true登记人 1010 regist_timeda

42、tatrue登记时间 1111 changervarchar(20)20true变更人 1212 changer_datadata变更时间 说明:说明: 本表是用来存储公司招聘员工的一些招聘信息(具体信息看上面的职位发布表)本表是用来存储公司招聘员工的一些招聘信息(具体信息看上面的职位发布表) , 表 2-6 试卷表 表名表名试卷表英文名称英文名称 t_exam 主键主键exam_id外键外键 major_id 序号序号名称名称类型类型大小大小必填字段必填字段默认值默认值备注备注 1 1 exam_idinttrue试卷 id 2 2 exam_namevarchar2(100)100true

43、试卷名称 3 3 major_idinttrue职位 id 4 4 limite_timeinttrue答题时限 5 5 score number(5,2 ) 5true总分值 6 6 descriptionvarchar2(500)500true描述 7 7 registerinttrue登记人 8 8 regist_timedatetrue登记时间 9 9 changer varchar2(20)20true变更人 1010 change_timedatetrue变更时间 说明:本表是用来存储笔试试卷的描述信息(具体信息看上面的试卷表)说明:本表是用来存储笔试试卷的描述信息(具体信息看上面

44、的试卷表) , 表 2-7 试卷详细表 表名表名试卷详细表英文名称英文名称 t_exam_detail 主键主键exam_detail_id外键外键 exam_id 序号序号名称名称类型类型大小大小必填字段必填字段默认值默认值备注备注 1 1 exam_detail_idint true 试卷详细 id 2 2 exam_idint true 试卷 id 3 3 question_kind_idint true 题目分类 id 4 4 question_amountint true 出题数量 5 5 question_score number(5,2 ) 5 true 分值 说明:说明: 本表

45、是用来存储笔试试卷的描述信息(具体信息看上面的试卷详细表)本表是用来存储笔试试卷的描述信息(具体信息看上面的试卷详细表) , 表 2-8 考试答案表 表名表名试卷表英文名称英文名称 t_answer 主键主键exam_id外键外键 exam_id 序号序号名称名称类型类型大小大小必填字段必填字段默认值默认值备注备注 1 1 answer_idinttrue考试答案 id 2 2 exam_idinttrue试卷 id 3 3 typeinttrue类型(面试,培训测试) 4 4 test_maninttrue测试人 5 5 test_timeinttrue测试时长 6 6 total_scor

46、evarchar2(5)5true考试分数 7 7 test_checkerinttrue测试复核人 8 8 test_check_timedatetrue测试复核时间 9 9 test_comment varchar2(500)500true测试评价 1010 testcheck_statuschar(1)1true测试复核状态 说明:说明: 本表是用来存储测试结果信息及处理情况(具体信息看上面的考试答案表)本表是用来存储测试结果信息及处理情况(具体信息看上面的考试答案表) , 表 2-9 考试答案明细表 表名表名试卷表英文名称英文名称 common_exam 主键主键answer_deta

47、ils_id外键外键 exam_id 序号序号名称名称类型类型大小大小必填字段必填字段默认值默认值备注备注 1 1 answer_details_idinttrue明细表 id 2 2 answer_idinttrue考试答案 id 3 3 question_idinttrue题目 id 4 4 answerinttrue答案 说明:说明: 本表是用来存储考试答案具体信息(具体信息看上面的答案明细表表)本表是用来存储考试答案具体信息(具体信息看上面的答案明细表表) , 2.4 详细设计 2.4.1 功能设计 本系统主要用于对企业对求职者的一个招聘过程。具体实现目标如下: 企业发布一个职位。 求

48、职者根据应聘的职位填写相应的简历。 企业对简历的管理。 企业根据不同的职位设置相应的招聘试卷。 求职者进行笔试。 企业进行笔试管理。 求职者进行面试。 企业进行面试管理。 录用管理。 2.4.2 具体设计 企业发布一个职位,求职者根据这个职位来填写相应的简历。企业收到简历后会对 简历作出初步的筛选,筛选通过的话求职者可以进入到笔试环节。根据求职者输入的 身份证号判断是否有笔试资格,如果有的话根据应聘的职位从试卷生成规则里面拿到 一份试卷生成规则,从题库表里面选取相应类型相应数量的题目生成一份试卷。笔试 完后,企业会根据笔试成绩对简历作出第二次的筛选,通过的话就可以进入到面试环 节。面试通过的话

49、就可以录用了。 当然上述只是招聘管理里头的一种情况。面试者也可以跳跃其中的某一环节直接被 录用,也可以做第二次笔试,第三次笔试,这主要是通过简历表里头设置的一个状态 位来决定的。 2.5 开发架构 2.5.1 软件开发架构的意义 对于已经习惯了使用传统的 jsp 设计方式实现动态网站的程序员,在刚开始接触 struts 时经常会出现一种困惑:专业书籍和文章中总是使用 struts framework 这种说法, struts 通常也被称为是一种 web 应用开发的架构(framework),那么到底什么是架构,软件 开发架构的意义又是什么呢? 如果将早期的软件开发方式比喻为传统手工业生产方式的

50、话,那么基于软件开发架 构的开发方式则是大型现代化工厂生产方式的体现。虽然二者都能够制作出产品,但是 在生产效率及产品质量的保证上显然会有巨大的差异。 汽车生产厂家在制造一辆汽车时,总是先在各条生产线上制作出不同类型的零件,最 终再由专业的技师在专业的组装生产线上将成百上千的零件组装成一台完整的汽车,显 然,设计者的主要精力并不是用于重复地制造相同的车轮,相同的方向盘,而是利用现成的 车轮组装出一辆辆不同的汽车。同样,开发人员也可以利用软件架构中提供的组建库(如 同已经生产好的规范化的汽车核心零部件库),按照既定的组装方式将不同的组建应用在 软件产品的各个环节,最终开发出一个完整的,高质量的软

51、件产品。 实际上,如果需要,汽车设计者也可以将原有的车轮进行改造,例如涂上不同的颜色, 贴上不同的装饰物等。同理,软件开发人员可以在现有组件的基础上进行扩展和改进,这 实际上充分地实现了软件开发的可扩展性。 组件复用是面向对象编程思想的结晶,而在软件架构的基础上进行开发可以最大限 度地实现组件的复用。在大型,多层结构的软件开发项目中,开发和使用具有可重用性,可 扩展性,经过良好测试的软件组织,可以使开发者从大量繁琐的代码工作中解脱出来,专注 于软件设计和业务逻辑的实现。通常将被验证为有效的,相同类型问题的解决方案进行 抽象,即可提取形成一个应用程序框架,即 framework。每一种 fram

52、ework 都有自己的一 套明确的实现机制,通常在 framework 结构中都会包含一个”命令和控制”组件 (“command and control”component),类似于工业生产中的”控制中心”,开发人员通过它可 以很容易地控制,扩充和实现该 framework 上的开发结构。 2.5.2 struts 架构简介 随着 web 开发技术的日益成熟,在 web 开发开发领域中出现了许多设计好的软件开 发框架,struts 就是一种基于 mvc 经典设计模式的框架,也是当前 web 开发中比较成熟 的一种框架。 经典的 mvc 模式 mvc(model-view-controller)

53、模式,即模型-视图-控制器模式,其核心思想是将整 个程序代码分成相对独立而又能协同工作的 3 个组成部分。 模型(model):业务逻辑层。实现具体的业务逻辑,状态管理的功能。 视图(view):表示层。即与用户实现交互的界面,通常实现数据输入和输出功能。 控制器(controller):控制层。起到控制整个业务流程(flow control)的作用,实现 view 和 model 部分的协同工作。 mvc 设计模式中,事件一般是指客户端 web 浏览器提交的各种不同请求,这些请求由 控制器进行处理,控制器根据事件的类型来改变模型或各个视图,视图也可以接受模型 发出的数据更新的通知,依据数据更

54、新的结果调整视图效果,呈现在用户面前。而模型 也可以通过视图所获得的用户提交的数据进行具体业务逻辑的处理。 显然这样的运行机制可以起到分工明确,指责清晰,各尽所长的效果。而在软件开 发的过程中,这样的开发方式无疑可以有效地区分不同的开发者,尽可能减少彼此之间 的互相影响。充分发挥每个开发者的特长。关于 mvc 开发更详细的介绍,请参考文献 【7】 。 图 2-2 mvc 设计模式的结构 struts 1.2 开发框架 作为基于 mvc 设计模式的 web 应用的一种典型体现,struts 架构实际上是建立在 model2 基础上的,对 model,view 和 controller 都提供了现

55、成的实现组建。 模 型 视图 1视图 2 控制器 事 件 改变改变 改变 更新更新 获得数据获得数 据 a.controller 控制器部分 struts 中的 controller 控制器部分是通过专门的 servlet 来实现的,该 servlet 是 一个 struts api 中提供的 actionservlet 类型的实例,actionservlet 类继承了 javax.servlet.http.httpservlet 类,因此该类的实例可以和普通的 servlet 一样工作,其 作用是接收客户端浏览器的请求,然后选择执行相应的业务逻辑,再把响应结果送回到 客户端。 action

56、对象是开发者定义的类(该类必须是 struts api 中提供的 action 类的子类) 的实例。在继承该类的过程中开发者可以加入具体业务逻辑或调用业务逻辑模块。 action 对象在进行了业务逻辑或调用业务逻辑模块。action 对象在进行了业务逻辑的 处理以后会将应用程序流程转到合适的 view 组件,最终将响应送回浏览器客户端。 struts 中提倡 action 对象只用来决定”做什么”,相当于一个低层面的控制器,因此也 可以将 action 归纳为 controller 的组成部分。 b.model 模型部分 mvc 系统中的 model 模型部分从概念上可以分为两类:系统的内部状

57、态和改变系统 状态的动作。struts 中的 model 部分一般由 javabean 以及 ejb 组成。在 struts 架构 中使用 javabean 来提供具体的业务逻辑,即”怎么做”,对于复杂的系统也可以使用 ejb 等组件来实现系统状态维护。这种业务逻辑的细分可以增强 可以代码的可重用性。 c. view 视图部分 struts 中的 view 视图部分依然可以采用 jsp 来实现。此外,struts 还提供了丰富 的自定义标记库,view 部分使用这些自定义标签同样可以实现与 model 部分的有效交互 并能够增强显示功能。 d.struts 开发环境安装 在 tomcat 安装

58、完成后,即可将 struts 框架工具安装到对应的 web container 中。 可以通过 struts 的二进制发布包安装 struts 框架,具体操作步骤: 下载二进制发布版 将下载的 struts 二进制发布包进行解包,将解包目录下的 lib 目录下的所有.jar 文 件全部复制到项目目录的 web-inf/lib 下,如果在多个项目中都用到了 struts,则将 上述文件直接复制到 tomcat 目录下的 common/lib 下。 将对应的 lib 目录下的 struts.jar 文件添加到环境变量 classpath 中即可。 以上资源可以从 http:/jakarta.apa

59、/struts/userguide/index.html 获得更 多关于 struts 安装和相关配置的说明信息。 2.6 数据持久层 数据是软件系统中不可缺少的环节,数据持久化的解决之道也一直是企业计算标准 中最有影响力的部分。如今关系型数据库已经稳定地占据着主要的数据库市场,xml 技 术和 xml 数据库技术也日渐成熟。 2.6.1 持久化数据 数据是我们软件开发人员必须考虑的对象。无论你使用哪种技术,借助哪种工具, 以及购买哪种软件平台产品,当接受一个实际的问题时,你都需要面对实际的数据,考虑 实际数据的各种问题。在这些问题中往往都包含数据持久化的问题,这不仅是因为我们

60、的计算机内存有限,更主要的原是业务逻辑的需要,作为一个接触软件技术,尝试写程序 的人,我们要接触各种类型的数据。下面列举了三种常见的数据类型: 随机数据 这种数据指的是不确定结构,不了解数量,目前也搞不清关系的数据。它听起来很 奇怪,但在实际的程序设计中十分常见。例如,从一个震动源传递到计算机采集卡的数 据,再比如一个自然物生长过程中的数据。可能有些数据实际上是很有规律的,但是在 设计程序时由于对它的了解很少,使它对于我们来说也成了随即的数据了。我没曾经在 遇到这种搞不大清楚的数据时,使用很大的数组或者多个链表来表述,不管下一个数据 的值是什么,先存储起来再说。有时候当遇到的数据总也摸不到规律

温馨提示

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

评论

0/150

提交评论