招聘求职网站的设计与实现毕业论文.docx
《招聘求职网站的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《招聘求职网站的设计与实现毕业论文.docx(35页珍藏版)》请在冰豆网上搜索。
![招聘求职网站的设计与实现毕业论文.docx](https://file1.bdocx.com/fileroot1/2023-1/30/be899d53-e36a-4b12-80b2-bffeb46c8187/be899d53-e36a-4b12-80b2-bffeb46c81871.gif)
招聘求职网站的设计与实现毕业论文
招聘求职的设计与实现毕业论文
第一章概述
一.1设计背景及目标
找一份能发挥自己才能的职业是一件幸福的事,但许多人在择业上却犯迷糊,不清楚自己的职业价值观,没有做好职场定位,认清自己适合什么样的职位,总是不断的换工作,以为下一份工作会更好。
一个人没有事业方向,就如《未来水世界》电影中,大海里没有方向的船,即使你再努力,燃料再足,你越航行离陆地越远,很难到达美丽的陆地。
过去几年,高校就业部门依靠宣传栏、网络单纯地发布就业相关信息,而这种传统的信息发布与获取的被动模式,已经不能满足广大毕业生及用人单位的人才供需需求。
打造一个交互性强,功能齐全,能够全面地服务于学生,企业,与高校管理工作者的就业信息管理平台,被提上了议程。
本招聘求职,着眼于为学生提供快捷准确的就业信息服务,为企业提供高效的人才招聘系统,为高校就业管理工作者提供一个实用方便的就业信息管理工具。
就业管理工作是一个覆盖全国各有关毕业生就业工作主管部门、用人单位、高等院校、毕业生本人及其家庭,是一项复杂的系统工程,就业工作的好坏将对社会造成很大的影响。
面对如此大规模的就业管理工作,手工处理显然是远不能适应发展的需要。
原国家教委曾在1991年组织研制了“全国毕业生和毕业研究生分配决策系统”部分实现了就业管理工作的电子化。
但随着改革的深入,原有系统己经不能适应新的工作需要,所以各级毕业生就业管理部门纷纷开发自己的毕业生就业管理系统。
为了便于对毕业生就业计划的控制、调整,合理配置宝贵的人才资源,又能满足各级毕业生就业工作主管部门、高校和用人单位在计划管理、毕业生资源与需求信息方面的需要,加强彼此之间的联系,帮助毕业生选择工作单位,减少盲目性,还能够在一定程度上提供反馈供需信息,为指导今后办学和宏观决策的依据,北京市教委于1998年开始开发北京高校毕业生就业信息网络系统。
随着高校毕业生就业体制改革进程的不断深化和毕业生就业市场的逐步建立,高校毕业生在各种就业活动中求职面窄、择业率低、特别是信息量小的矛盾越来越突出。
如何解决这一问题是摆在各级就业主管部门面前的严峻任务。
正是在这种情形下,国务院对做好高校毕业生就业工作做出重要指示,即“要充分利用毕业生就业信息网络,沟通行业间、地区间、学校与用人单位间的信息,在毕业生和用人单位之间牵线搭桥。
同时,通过信息反馈,优化高等教育结构,合理利用有效资源,促进高等教育的健康发展。
”本着“转变管理观念,强化服务职能,加强就业指导,坚持政策导向,拓宽就业渠道,培育就业市场”的原则,结合科技大学的实际情况,决定开发毕业生就业系统。
一.2系统设计原则
高校毕业生就业工作具有政策性严、时间性强、涉及面广、信息量大、服务性高等特点。
建设满足各类人员需求的就业管理信息系统,有助于就业指导部门提高工作效率和改善服务质量。
本系统针对目前高等学校毕业生就业管理工作的现状,为反映最新的用人单位信息、毕业生求职信息和就业趋势,便于高校就业工作人员对历届就业情况的分析统计和总体把握,设计开发了基于web的就业信息管理平台。
基于web的就业管理信息系统采用三层B/S架构,在传统的二层结构的基础上增加了应用服务器,将应用逻辑单独进行处理,使得用户界面与应用逻辑位于不同的平台上,两者间的通信协议由系统自行定义,该结构设计使得应用逻辑被所有用户共享。
本系统主要基于广域网环境,所有业务和工作都是通过网络完成,实现了学生和用人单位信息管理、就业信息发布与查询、数据汇总与统计等功能。
在本系统的开发过程中采用了JSP+Struts+Hibernate的模式,该模式结合了JSP和Struts技术,充分利用了Struts技术原有的优点。
在进行本系统的数据库设计和开发时,选用了Mysql5.0,为了提高效率采用Hibernate实现对数据层的持久化,大大地提高了系统的运行效率。
一.3项目开发的意义
随着近年来高校毕业生就业难加剧,“考上好大学就能找到一份好工作”多了个问号。
一项调查显示,69%的2012届大学毕业生起薪不到2000元,而国家统计局近日公布的数据称,外出农民工月均收入水平是2290元,一些有技能的农民工,旺季月收入甚至过万元。
曾被称为“天之骄子”的大学毕业生起薪低于农民工工资,不免让人五味杂。
起薪低、找“活”难…十几年的“寒窗苦读”难敌“一身好力气”?
是知识贬值还是供需失衡?
不少大学毕业生惊呼“掉价”,称多年书本知识都白读了,还不如提早进入社会打拼。
而以精英人才自居的心理暗示和实际上的低薪水平,也让多数大学毕业生难以适应。
有专家认为,正是因为多数人不愿意从事这些“脏活累活体力活”,才导致劳动力供给的稀缺性,而这种稀缺性恰恰决定了农民工的相对高薪。
事实上,时下对基层劳动者的偏见,使得大多数人忽视并低估了“一线工人”的价值。
而对于大学毕业生来说,与其对高薪的“羡慕嫉妒恨”,还不如脚踏实地提高和充实自己,放下架子、放眼基层,从扎根基层、扎根一线做起。
只有自身能力过硬,能够适应招聘单位的多样化需求,能够为其带来真正的效益,才能在“就业难”的大背景下另辟蹊径,收获成功。
传统的就业管理模式已不能满足当前的就业形势。
信息流通渠道不够畅通,数据处理不到位,造成高校毕业生与用人单位在求职和招聘过程中信息严重流失。
在解决这一系列过程中,计算机网络可以发挥极大的作用。
在近几年教育部对高校的评估中,高校毕业生就业工作信息网络化管理,正成为评价高校毕业生就业工作的一个重要指标。
如何建立一个符合高校专业设置特色的、专门为毕业生就业服务的、高质量的毕业生就业信息网已成为高校就业工作面临的极具挑战性的课题。
第二章系统开发环境介绍
二.1相关技术简介
二.1.1面向对象开发理念
在面向对象的模型中,软件对象就是对客观世界中对象的抽象描述,是构成软件系统的基本单位。
但软件对象不应也不可能描述现实世界对象的全部信息,而只应包含那些与问题域有关的属性和操作。
面向对象的分析(Object-Oriented-Analysis,OOA)就是运用面向对象的方法对目标系统进行分析和理解,找出描述问题域和系统责任所需要的对象,定义对象的基本框架(包括对象的属性、操作以及它们之间的关系),最后得到能够满足用户需求的系统分析模型。
OOA主要有以下5项任务。
(1)识别问题域中的对象和类。
通过对问题域和系统责任的深入分析,尽可能地找出与应用有关的对象和类,并从中筛选出真正有用的对象和类。
(2)确定结构。
找出对象和类中存在的各种整体-部分结构和一般-特殊结构,并进一步确定这些结构组合而成的多重结构。
(3)确定主题。
如果系统包含了大量的对象和类,那么可划分出不同的应用主题域,并按照主题域或分析模型进行分解。
(4)定义属性。
识别各个对象的属性,确定其名称、类型和限制,并在此基础上找出对象之间的实例连接。
(5)定义服务。
识别各个对象所提供的服务,确定其名称、功能和使用约定,并在此基础上找出对象之间的消息联系。
OOA的结果是系统分析说明书,其中包括使用类图和对象图等描述的系统静态模型,使用用例图、活动图和交互图等描述的系统动态模型,以及对象和类的规约描述。
面向对象的设计(Object-Oriented-Design,OOD)是以系统分析分析模型为基础,运用面向对象的方法进行系统设计,解决与系统实现有关的一系列问题,最后得到符合具体实现条件的系统设计模型。
OOD主要有以下4项任务。
(1)问题域设计。
对问题域中的分析结果作进一步的细化、改进和增补,包括对模型中的对象和类、结构、属性、操作等进行组合和分解,并根据面向对象的设计原则增加必要的新元素类、属性和关系。
(2)用户界面设计。
对软件系统的用户进行分析,对用户界面的表达形式和交互方式进行设计。
(3)任务管理设计。
当系统中存在多任务并发行为时,需要定义、选择和调整这些任务,从而简化系统的控制结构。
(4)数据管理设计。
识别系统需要存储的数据容和结构,确定对这些数据的访问和管理方法。
OOA和OOD之间不强调严格的阶级划分,设计模型是对分析模型的逐步细化,主要是在问题域和系统责任的分析基础上解决各种与现实有关的问题。
OOA阶段一些不能确定的问题可以遗留到OOD阶段解决,开发过程中也允许存在反复和迭代。
二.1.2Struts框架技术简介
本系统采用Struts2.0完成逻辑层设计。
Struts2是在WebWork2基础发展而来的。
和struts1一样,Struts2也属于MVC框架。
不过有一点大家需要注意的是:
尽管Struts2和struts1在名字上的差别不是很大,但Struts2和struts1在代码编写风格上几乎是不一样的。
那么既然有了struts1,为何还要推出struts2。
主要是因为struts2有以下优点:
在软件设计上Struts2没有像struts1那样跟ServletAPI和StrutsAPI有着紧密的耦合,Struts2的应用可以不依赖于ServletAPI和strutsAPI。
Struts2的这种设计属于无侵入式设计,而Struts1却属于侵入式设计。
Struts2提供了拦截器,利用拦截器可以进行AOP编程,实现如权限拦截等功能;Strut2提供了类型转换器,我们可以把特殊的请求参数转换成需要的类型。
在Struts1中,如果我们要实现同样的功能,就必须向Struts1的底层实现BeanUtil注册类型转换器才行;Struts2提供支持多种表现层技术,如:
JSP、freeMarker、Velocity等;Struts2的输入校验可以对指定方法进行校验,解决了Struts1长久之痛;提供了全局围、包围和Action围的国际化资源文件管理实现。
Struts2是Struts1的下一代产品,是在Struts和WebWork的技术基础上进行了合并的全新的Struts2框架。
其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。
Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。
虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。
Struts2框架的大概处理流程如下:
1、加载类(FilterDispatcher)
2、读取配置(Struts配置文件中的Action)
3、派发请求(客户端发送请求)
4、调用Action(FilterDispatcher从Struts配置文件中读取与之相对应的Action)
5、启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证)
6、处理业务(回调Action的execute()方法)
7、返回响应(通过execute方法将信息返回到FilterDispatcher)
8、查找响应(FilterDispatcher根据配置查找响应的是什么信息如:
SUCCESS、ERROR,将跳转到哪个jsp页面)
9、响应用户(jsp--->客户浏览器端显示)
10、Struts2标签库(相比Struts1的标签库,Struts2是大大加强了,对数据的操作功能很强大)
二.1.3Hibernate框架技术
随着计算机应用软件的发展,应用程序逐渐由单层体系结构发展为多层体系结构。
其中,三层结构是目前典型的一种应用软件结构,其分为表述层、业务逻辑层、数据库层。
表述层:
提供与用户交互的界面。
业务逻辑层:
负责各种业务逻辑,直接访问数据库,提供对业务数据的保存、更新、删除和查询操作。
数据库层:
负责存放管理应用的持久性业务数据。
Hibernate是一个功能强大的开源ORM框架工具,允许开发者使用常见的Java语言特性(如继承、多态等)实现对象模型到关系数据库的映射,并支持Oracle、DB2、SQLServer、MySQL等主流数据库系统。
Hibernate利用反射机制在运行时实现持久化一个对象的各种操作,保证了源码的简练和完全的面向对象风格。
图2-1Hibernate框架体系结构图
Hibernate框架体系结构如图2-1所示。
Hibernate自身通过对象-关系映射文件(*.hbm.xml)将实体类映射到数据库中的表,为应用程序提供持久化服务。
Hibernate是Java应用和关系数据库之间的桥梁,它将应用层对对象的操作直接转化为对关系数据库中的表的操作,使程序员不用关心数据库的操作问题,解决了业务逻辑和数据模型的矛盾,真正做到了面向对象编程。
Hibernate提供众多操作对象的应用接口(API),在数据库操作编程时可直接利用,大大提高了编程效率和编码的可靠性。
Hibernate全局配置文件hibernate.cfg.xml中描述数据库连接信息、注册系统所有的对象-关系映射文件(*.hbm.xml),以便应用启动后就完成了数据库的连接和所有对象-关系映射文
件的加载工作。
二.1.4JSP概述
JSP(JavaServerPages)是一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP是目前主流的动态网页开发技术之一,其有效的讲容生成和显示进行分离,作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。
JSP的设计目的是使得构造基于Web架构的应用系统更加容易、方便和快捷,而这些应用程序可以和各种Web服务器、中间件应用服务器、浏览器和各种开发工具协同工作。
如图2-2所示。
JSP的优点:
对于用户界面的更新,其实就是由WebServer进行的,所以给人的感觉更新很快,所有的应用都是基于服务器的,所以它们可以时刻保持最新版本;客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改。
图2-2JSP原理图
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
JSP可用一种简单易懂的等式表示为:
HTML+Java=JSP。
JSP有如下技术特征:
1、跨平台。
JSP是以Java为基础的,所有他不仅可以沿用Java强大的API功能,而且不管是在何种平台下只要服务器支持JSP,就可以运行使用JSP开发的应用程序,体现它的跨平台跨数据库的特征。
2、分离静态容和动态容。
JSP弥补了JavaServlet在工作中的不足。
使用JSP技术,程序员可以使用HTML或XML标记来设计和格式化静态的容部分。
使用JSP标记及JavaBean组件或小脚本程序来制作动态容部分。
服务器将执行JSP标记和小脚本程序,并将结果与页面中的静态部分结合后以HTML页面的形式发送给客户端浏览器。
程序员可以将一些业务逻辑封装到JavaBean组件中,Web页面的设计人员可以利用程序员开发的JavaBean和JSP标记来制作出动态页面,而且不会影响到容的生成。
3、可重复使用的组件。
JSP的标准标签和自定义标签与JavaBean组件一样可以一次生成重复使用。
这些标签都是通过编写的程序代码来实现特定功能的。
在使用它们时与通常在页面中用到的HTML标记用法相同。
这样可以将一个复杂而且需要出现多次的操作简单化,大大提高了工作效率。
二.1.5Dreamweaver简介
MacromediaDreamweaver是一款专业的HTML编辑器,用于对Web站点、Web页和Web应用程序进行设计、编码和开发。
无论手工编写HTML代码还是在可视化编辑环境中工作,Dreamweaver都会提供有用的工具,集网页制作和管理于一身。
利用Dreamweaver中的可视化编辑功能,可以快速地创建页面而无需编写任何代码。
可以查看所有站点元素或资源并将它们从易于使用的面板直接拖到文档中。
可以在MacromediaFireworks中创建和编辑图像,然后将它们直接导入Dreamweaver,或者直接在Dreamweaver中添加MacromediaFlash对象,从而优化开发工作流程。
Dreamweaver还包括多种与编码相关的工具和功能,其中包括代码视图中的代码编辑工具(如代码加色和标签完成);有关HTML、CSS、JavaScript、CFML、ASP和JSP的参考资料以及一个JavaScript调试器。
Dreamweaver的可自由导入导出HTML技术可导入手工编码的HTML文档而不会重新设置代码的格式,可以随后用首选的格式设置样式来重新设置代码的格式。
Dreamweaver现在包含并扩展了MacromediaUltraDev中的所有功能,以帮助使用ASP、ASP.NET、ColdFusion标记语言(CFML)、JSP和PHP等服务器语言来生成由动态数据库支持的Web应用程序。
Dreamweaver可以完全自定义。
可以创建自己的对象和命令,修改键盘快捷方式,甚至编写JavaScript代码,用新的行为、属性检查器和站点报告来扩展Dreamweaver的功能。
在开发Web应用程序时,则必须根据需要设置服务器和数据库。
然后再设计该站点的外观。
当外观设计完成后,将生成该站点并编写页代码,以添加容和交互控件;然后将页面在一起,并对该站点进行功能测试,以验证它是否符合定义的目标,还可以在站点中包含动态页。
二.2开发工具的介绍
二.2.1MyEclipse简介
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。
在结构上,MyEclipse的特征可以被分为7类:
(1)JavaEE模型
(2)WEB开发工具
(3)EJB开发工具
(4)应用程序服务器的连接器
(5)JavaEE项目部署服务
(6)数据库服务
(7)MyEclipse整合帮助
对于以上每一种功能上的类别,在MyEclipse中都有相应的功能部件,并通过一系列的插件来实现它们。
MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。
MyEclipse6.0以后版本安装时不需安装Eclipse。
二.2.2MySQL数据库简介
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。
在2008年1月16号被Sun公司收购。
而2009年,SUN又被Oracle收购.对于MySQL的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型为了降低总体拥有成本而选择了MySQL作为数据库。
(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
(2)支持AIX、FREEBSD、HP-UX、Linux、MacOS、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。
(3)为多种编程语言提供了API。
这些编程语言包括C、C++、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
(4)支持多线程,充分利用CPU资源。
(5)优化的SQL询算法,有效地提高查询速度。
(6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
(7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
(8)提供用于管理、检查、优化数据库操作的管理工具。
(9)可以处理拥有上千万条记录的大型数据库。
第三章系统需求分析
三.1需求分析
三.1.1可行性分析
经济可行性分析。
经济可行性分析研究的目的是实行系统能达到以最小的开发成本取得最佳的经济效益,需要对组织的经济状况和投资能力进行分企业析。
由于本系统突破了时间限制,只要服务器开通,本的合法用户随时可以了解自己想了解的信息。
这比过去那种手工做法有了很大的进步。
因而,该系统在经济上是可行的。
技术可行性分析。
技术可行性分析研究是研究现有的技术条件能否顺利的完成开发工作,硬件.软件配置能否满足开的需要等等。
系统对软硬件的要求都不高,本的设计与实现主要采用JSP,MySql,Hibernate,Struts2等主流技术,在网页制作过程中还用到了Dreamweaver等网页制作工具。
本在现在主流的操作系统及浏览器中都能很好的运行,有很好的兼容性。
因此,该系统从技术上是可行的。
本旨在更好的为学生和各个企业提供一个交流的平台,让企业能够通过本招聘到更好的人才,让学生能够找到适合自己的工作,让学校能够更快更全面的把各个招聘信息提供给学生,更好的为学生服务。
三.1.2功能性系统需求分析
学生用户分析。
(1)浏览搜索招聘职位。
浏览企业发布的招聘信息,根据自己的需要对招聘信息进行搜索筛选,快速便捷的找到自己中意的职位。
向自己中意的职位和公司投递简历。
(2)注册学生用户成为会员,注册成功自动生成简历。
投递简历。
浏览信息,新闻资讯,最新职位,站公告等等。
给本投票招聘求职。
企业用户需求分析。
(1)网页信息浏览及搜索。
为了避免无头苍蝇似的寻找,必须提供优质快速准确的搜索功能,方便企业用户的准确地找到需要的人才信息。
(2)注册成为企业会员。
注册成为企业会员后,可以发布企业招聘信息。
浏览各种信息,新闻资讯,站公告等等。
管理用户需求分析。
(1)基本信息维护,对整个的