亲,这是专业人士做的,绝对合格的。请放心。已经通过答辩!
摘 要
随着计算机技术的迅猛发展,Internet已经逐步走进人们的工作和生活。大学毕业生在网上找工作也就成为就业主要渠道之一。
现在绝大多数企业都在网上发布招聘信息,来实现人员招聘。由于传统的人才市场招聘需要花费企业和求职者大量时间和金钱,并且去了人才市场也是在有限的时间内,了解有限家企业的招聘人员需求,因此效率很低。
现在JSP技术拥有友好的操作界面,运行快速,而且运行不受限制,所以得到了很多编程爱好者的喜爱和肯定。因此本次设计我也采用了JSP技术的动态网站的设计。针对网络就业的基本情况及其当前业务状况,设计出新系统的基本模型,最后通过编写程序完成系统实施。
整个项目是在Java环境下开发的,数据库是用SQL SERVER 2005来实现的。采用典型的B/S结构体系,网站服务器端采用Windows XP,JDK,Tomcat,客户端在Windows 98/2000/XP环境下装有适当浏览器皆可。整个系统主要负责网上求职招聘。总体而言,网站还是具有一定实用性。
关键词:B/S;求职招聘;JSP;SQL SERVER 2005
Abstract
With the development of computer science, our work and cannot go on without Internet. College students finding jobs on internet has become the main trend.
Nowadays most companies distribute their information related to HR on internet and find the people they want. Because it will waste companies and candidates a lot of time and money in the traditional job market and most candidates find it difficult to have a comprehensive knowledge about some companies. We need a way more efficient.
Due to the friendly operation interface, fast running and unlimited environment of the JSP technology. It gains recognition and love of more and more people. We adapt the dynamic website design of the JSP technology. Based on the situation of job searching and the internet business, we design the original module of the system. At last, we achieve the project by programming.
The whole project is developed on Java environment and we adopt the SQL SERVER 2005 in the field of the system database. It uses the classic B/S construct system. The end of website server is Windows XP, JDK, Tomcat, while the end of client is the computer with browser in the environment of Windows 98/2000/XP. The whole system is charged of the task of finding jobs and recruitment. In a word, the website is considered practical.
Key words: B/S; Recruitment; JSP; SQL SERVER 2005
目 录
摘 要 III
Abstract IV
目 录 V
1 绪论 1
1.1 校园招聘系统的意义 1
1.2 国内外研究现状 1
1.3 本课题应达到的要求 1
2 开发工具介绍 3
2.1 SQL SERVER 2005介绍 3
2.2 MyEclipse介绍 3
2.3 JSP技术 3
2.4 Tomcat介绍 3
3 系统分析 5
3.1 可行性分析 5
3.2系统需求分析 5
3.2.1 招聘系统具体功能 5
3.2.2 将来可能提出的要求 5
3.2.3 招聘网站流程分析 6
4 系统设计 7
4.1 软件模块结构设计 7
4.1.1 确定网站要实现的功能 7
4.1.2 招聘网站结构设计 7
4.2 功能模块设计 8
4.3 数据库设计 11
4.3.1 数据库概念结构设计 11
4.3.2 数据库逻辑设计 14
4.3.3 数据库的实现 15
5 详细设计与实现 21
5.1 详细设计的概念 21
5.2 企业和个人功能实现 21
5.2.1 企业和个人注册页面 21
5.2.2 个人登录和后台功能 23
5.2.3 企业登录的后台功能 25
5.3 管理员登录功能 29
5.4 网站管理员具体功能 30
5.4.1 管理员密码修改 30
5.4.2 站内新闻管理 33
5.4.3 管理注册者信息 33
5.4.4 管理岗位和应聘信息 34
5.5 前台管理 36
5.5.1 首页浏览 36
5.5.2 信息浏览 36
6 结论与展望 39
6.1 结论 39
6.2 不足之处及展望 39
致 谢 41
参考文献 42
1 绪论
1.1 校园招聘系统的意义
随着信息时代的到来,我们正在告别原来的那些模式,因为信息时代的到来加快了人们的节奏,使得人们为了节省时间而寻找新的办法做一件事,当然这也包括课题研究的为什么网上招聘的出现。
我们已经找到了提高办事效率的方法。因此,我们就运用JSP技术来实现网站上的招聘。主要实现的是求职者在线申请岗位,企业发布求职信息,网站管理员管理该网站上的企业和求职者信息,能够对一些没有价值的信息删除,修改,更新网站信息等。
1.2 国内外研究现状
网络招聘求职方式已经成为了招聘求职的一大重要手段,其招聘求职规模和招聘求职成功率已直逼传统招聘会,有的甚至超过了传统招聘会。一两年前还处于新兴地位的网络招聘求职方式已经名符其实地走向了招聘求职的主流地位。网络招聘求职的快速发展,与网络招聘求职平台的建设和发展有着很大的关系。当然网络招聘求职的人群快速膨胀也促进了网络招聘求职平台的发展。这与市场上的生产和消费两者关系完全类似,消费促进生产,生产带动消费。
如果把时间往后推几年,国内招聘求职平台仅仅只有全国性的几家专业招聘求职网站,短短的三年间,全国的招聘求职网站已发展超过了1000个。伴随着我国企业信息化程度的日益提高和互联网家庭用户的迅猛增长,网络已成为越来越多企业、人才进行招聘和求职的最重要手段。而随着国内劳动力的增多、国内企业的国际化及国内网络的更加普及,网络招聘求职的主流地位将会越来越火。但网络招聘求职也不会像有的人说的那样将取代传统招聘会。在国外,都是将网络招聘与传统的招聘方式结合,构建一整套完善、多元的人才交流体系。而对于国内的情况,两种方式各有优势,对传统行业的招聘,如公交车司机、饭店侍者等服务业现场招聘可能更有效,而IT、电子等现代行业的招聘,网上招聘效果就会更好。
1.3 本课题应达到的要求
当今社会,很多有才能的人不能找到适合自己的工作,而公司又不能招聘到所需的人才。在人才市场求职过程中,应聘者通过简单的文字图表,无法全面了解公司的情况,同样公司通过个人简介也不能全面了解人才的全部。并且人才招聘市场经常是人山人海,“各式各样”的用人公司/单位又让人眼花缭乱,应聘到一个好的适合自己的公司得费好多时间和精力。再加上人才市场人才众多,应聘者的简历堆积如山,没有时间一一详看,公司也不好对应聘者的简历进行管理,出现少 、漏等现象,有一些应聘者的简历没有看就被堆在一边,让很多适合做这项工作的人就无法应聘到该职位。面对传统招聘这种陷缺,网络招聘很好的解决了这些问题。
本文主要实现开发招聘网站设计步骤,开发工具及达到的功能。
1 绪论:分析校园招聘系统的课题意义,国内外研究网上招聘的发展现状以及本课题应该达到的要求。
2 开发工具的介绍:设计基于JSP的校园招聘网站主要涉及的技术和工具有Tomcat, Myeclipse,SQL SERVER 2005,JSP技术。
3 系统分析:先从操作可行性,管理可行性,技术可行性三方面确定是否该课题值得研究。然后分析系统的功能需求和将来可能需要的需求,并运用流程图来清晰的说明招聘网站的功能。
4 系统设计:根据确定的功能,用图形来描述各个模块的具体功能,并且对数据分析和设计。
5 详细设计和实现:通过运用开发工具和技术对先前分析的方案来具体地实现。对系统各模块进行具体设计。
6 结论与展望:当程序设计完成后,需要对设计过程遇到的一些问题做总结和通过这次实践给自己的启迪。
2 开发工具介绍
2.1 SQL SERVER 2005介绍
SQL SERVER 2005 是数据库管理系统,具备了数据库管理系统最基本的功能。
它的基本特点有如下[1]:
(1)在线恢复:使用SQL SERVER 2005版服务器,数据库管理人员将可以在SQL服务器运行的情况下,执行恢复操作。在线恢复改进了SQL服务器的可用性,因为只有正在被恢复的数据是无法使用的,而数据库的其他部分依然在线、可供使用。
(2)在线检索操作:在线检索选项可以在指数数据定义语言(DDL)执行期间,允许对基底表格、或集簇索引数据和任何有关的检索,进行同步修正。例如,当一个集簇索引正在重建的时候,您可以对基底数据继续进行更新、并且对数据进行查询。
(3)快速恢复:新的、速度更快的恢复选项可以改进SQL服务器数据库的可用性。管理人员将能够在事务日志向前滚动之后,重新连接到正在恢复的数据库。
(4)安全性能的提高:?SQL SERVER 2005包括了一些在安全性能上的改进,例如数据库加密、设置安全默认值、增强密码政策、缜密的许可控制、以及一个增强型的安全模式。
2.2 MyEclipse介绍
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码,调试,测试和发布功能,完全支持Html,Struts,Jsp,Javascript,Sql等[2]。
MyEclipse 是一个十分优秀的用于开发Java和J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java, Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属Eclipse的开发工具。
2.3 JSP技术
JSP技术使用JAVA编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易[3]。
2.4 Tomcat介绍
Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目OReilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)[4]。
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行Tomcat时,它实际上作为一个与Apache 独立的进程单独运行的。
当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
3 系统分析
3.1 可行性分析
该阶段主要是对要设计的系统做个初步分析,从操作,管理,技术等方面对它可行性做研究。
操作可行性:招聘系统主要实现的是企业发布招聘信息,并帮助求职者提供岗位查询等服务。求职者做的操作仅仅是在网页上输入大致的岗位名称,单击查询等简单的操作。该系统具有较多友好的提示操作信息。因此,该招聘网站在操作上是完全可行的。
管理可行性:该招聘网站上需要网站管理员,管理员后台登录后,能够对已经分类,并且按时间排序的个人,公司信息进行删除,修改操作。当管理员实在来不急,可以让超级管理员,新增几个普通管理员,一起来帮助超级管理员共同管理网站。所以,在管理方便,该网站是很容易管理的。
技术可行性:该设计采用JSP技术,用SQL SERVER 2005,MYECLIPSE等现在流行,普遍认可的软件进行实现功能操作。采用当今比较流行的JAVA等语言,兼容性好,适用性广。因此,采用大众认可的技术,在技术上是可以保障的。
3.2系统需求分析
为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么?”这个问题。分析软件需求过程中,分析员和用户都起着关键、必不可少的作用。只有用户才真正知道自己需要什么,但是他们并不知道怎样用软件实现自己的需求,用户必须把他们对软件的需求尽量准确、具体地描述出来;分析员知道怎么用软件实现人们的需求,但是在需求分析开始时他们对用户的需求并不十分清楚,必须通过与用户沟通获取用户对软件的需求[5]。
3.2.1 招聘系统具体功能
功能流程描述,这个网站的登录角色分为三种,各自权限不同:
(1)网站管理员:管理网站上的各种信息;发布信息,管理信息,浏览删除求职用户和企业用户资料。
(2)求职用户:可以在线注册个人基本信息、发布求职信息、浏览新闻、查看招聘和求职信息,在线申请有意向的公司的岗位,也能查看自己向哪几家企业投了自己的简历。
(3)企业用户:可以在线注册企业基本信息,发布企业招聘信息,浏览公共信息,在线查看和管理求职者提交的简历功能。根据简历的信息刷选出符合本公司要求的求职人员的联系方式。
3.2.2 将来可能提出的要求
本系统主要放在功能的基本实现上,即求职者,企业用户,网站管理员三者之间的关系和各自权限的功能。但是分析可知,现在人们对界面的美观,操作的方便和快速打开网页的需求都是很看重的。这样提前分析可能需要的功能的目的是为了在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。
3.2.3 招聘网站流程分析
系统流程就是用户在使用系统时的工作过程。对于多类型用户的管理系统来说,每一类用户使用的功能都是不相同的。从登录网站开始浏览网站上信息,必要时用户登录,对用户的身份进行认证。有三种身份:
(1)求职者
(2)企业
(3)网站管理员
其过程流程图如图3.1所示。
图3.1 系统流程图
4 系统设计
4.1 软件模块结构设计
4.1.1 确定网站要实现的功能
通过对招聘网站的分析,本网站主要应完成的功能如下:
(1)管理员对网站上的求职者和企业进行管理(对一些无效的信息进行删除和对一些注册者明显的信息错误可以进行修改),管理员还能在网上发布最新新闻,来让用户了解到关于招聘的最新情况。
(2)求职者浏览本招聘网站,可以实现在线注册信息,填写简历,当点击“提交”按钮,页面提示注册成功,就表示信息已经成功添加到数据库里;当输入用户名,密码,选择权限,成功登录后,求职者可以在网站上申请岗位,管理后台自己的个人资料,应聘记录;当未登录时,只能浏览网站上的信息。
(3)企业浏览本招聘网站,可以选择公司权限进行信息注册;注册成功后,根据注册的用户名,密码进行登录;登录成功后,可以在后台发布招聘企业,查看申请该公司岗位的人的信息,删除不符合岗位需求的人,提取满足岗位要求的人。
4.1.2 招聘网站结构设计
招聘网站包括求职者和企业注册,登录,发布消息,查看工作岗位等功能。该网站功能是根据注册的不同的权限来使用它们各自不同的功能(包括公共功能)。其示意图如图4.1所示。
图4.1 招聘网站结构示意图
4.2 功能模块设计
系统的功能模块,主要分为公用功能、求职者、企业和超级管理员四个模块,每个模块又分为若干功能模块。
招聘网站的总体功能模块图如图4.2所示。
图4.2 招聘网站功能模块
浏览该网站,已经注册的求职者和企业可以直接登录,根据权限的不同可以分为企业登录和求职者登录,系统根据用户权限的不同将用户分别链接到各自的主界面下,使用他们各自不同的功能。没有注册的用户可以单击链接到注册界面,并选择是求职者还是企业,分别填写各自的注册信息,来完成注册,最后返回主页登录。
一般注册只能是发布信息的企业和求职的个人,管理网站的超级用户不能随便被注册,因此不用通过系统注册界面注册管理员。其过程模块图如图4.3所示。
图4.3 登录和注册模块图
当第一次打开该招聘网站的时候,先选择权限是求职者还是企业,在注册填写信息,后面打*的是必填项,当信息写完之后,按“提交”按钮,当页面出现注册成功的提示后,就可以重新回到首页去登录。
个人用户工作流程功能模块图如图4.4所示。
图4.4 个人用户模块图
当以求职者的身份登录的时候,就可以浏览新闻,浏览招聘信息(对满意的企业投递简历),查看自己应聘了哪几家公司等功能。
企业用户的模块图如图4.5所示。
图4.5 企业用户模块图
当以企业的身份登录的时候,查看网站上的公共功能,发布自己企业的招聘信息,查看投向该企业的人的简历(删除不符的人员,留下合适的人员)等功能。
管理员管理流程模块图如图4.6所示。
图4.6 管理员管理流程模块图
当在后台以超级管理的身份登录的时候(不能在首页上注册超级管理员),可以向网站发布新闻,删除旧新闻,管理注册了该网站的求职者和企业的信息等功能。
4.3 数据库设计
4.3.1 数据库概念结构设计
概念结构设计以用户能理解的形式表达信息为目标,这种表达与数据库系统的具体细节无关,它所涉及的数据及表达独立于DBMS和计算机硬件,可以在任何DBMS和计算机硬件系统中实现。
概念设计最著名,最简单实用的一种是E-R图。
友情链接实体如图4.7所示。
图4.7 友情链接E图
管理员实体如图4.8所示。
图4.8 管理员E图
新闻通知实体如图4.9所示。
图4.9 新闻通知E图
岗位实体如图4.10所示。
图4.10 岗位E图
公司实体如图4.11所示。
图4.11 公司E图
应聘简历实体如图4.12所示。
图4.12 应聘简历E图
个人实体如图4.13所示。
图4.13 个人E图
反映本招聘网站最基本情况的一张局部E-R图,如图4.14所示。
图4.14 局部关系E-R图
由实体图可以推出总体E-R图,如图4.15所示。
图4.15 系统整体的E-R图
4.3.2 数据库逻辑设计
为了能够把设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构,一般的逻辑结构设计分为3个步骤[6]:
(1)将概念结构转化为一般的关系、网状、层次、面向对象模型。
(2)将转化来的关系、网状、层次、面向对象模型向特定DBMS支持下的数据模
转换。
(3)对数据模型进行优化。
(1)管理员(管理员编号,管理员名,密码,权限类型,新增日期)
(2)友情链接(友情链接编号,网址名称,网址,新增时间)
(3)个人(个人编号,学号,姓名,性别,民族,出生年月,家庭住址,入校时间,系部,特长,专业,密码,简历,新增时间,照片)
(4)岗位(岗位编号,公司名,岗位名称,招聘人数,性别要求,月薪,简历,新增时间)
(5)公司(公司编号,用户名,密码,公司名称,注册资金,电话,地址,规模,行业,简历,新增时间)
(6)新闻通知(新闻通知编号,标题,类别,内容,添加人,新增时间)
(7)应聘简历(应聘简历编号,学号,姓名,岗位名称,新增时间,岗位号,公司名)
4.3.3 数据库的实现
将E-R图转化为Microsoft SQL Server 2005数据库系统支持的数据模型,也就是数据库的逻辑结构。
(1)管理员表:用于记录管理员信息的allusers表,该表的字段。如表4-1所示。
表4-1 管理员表
列名 数据类型 描述 允许空值 ID int 管理员编号 N username varchar(18) 管理员名 N pwd varchar(16) 密码 N cx varchar(8) 权限类型 N addtime datetime 新增日期 N
建表语句如下:
CREATE TABLE [dbo].[allusers](
[ID] [int] IDENTITY(1,1) NOT NULL,
[username] [varchar](18) NOT NULL,
[pwd] [varchar](16) NOT NULL,
[cx] [varchar](8) NOT NULL,
[addtime] [datetime] NOT NULL
)
(2)友情链接表:用户记录其他网站的名称,网址的youqinglianjie表,该表中的字段。如表4-2所示。
表4-2 友情链接表
列名 数据类型 描述 允许空值 ID int 友情链接编号 N wangzhanmingcheng varchar(25) 网站名称 N wangzhi varchar(32) 网址 N addtime datetime 新增时间 N
建表语句如下:
CREATE TABLE [dbo].[youqinglianjie](
[ID] [int] IDENTITY(1,1) NOT NULL,
[wangzhanmingcheng] [varchar](25) NOT NULL,
[wangzhi] [varchar](32) NOT NULL,
[addtime] [datetime] NOT NULL
)
(3)毕业生表:用于记录一些个人信息的biyesheng表,该表的字段。如表4-3所示。
表4-3 毕业生表
列名 数据类型 描述 允许空值 ID int 用户编号 N xuehao varchar(32) 学号 N xingming varchar(25) 姓名 N xingbie varchar(8) 性别 Y minzu varchar(8) 民族 Y chushengnianyue varchar(10) 出生年月 N jiatingzhuzhi varchar(32) 家庭住址 Y ruxiaoshijian varchar(50) 入校时间 N xibu varchar(50) 系部 Y techang varchar(50) 特长 Y zhuanye varchar(50) 专业 N mima varchar(8) 密码 N jianli varchar(50) 简历 Y addtime datetime 新增时间 N zhaopian varchar(50) 照片 Y
建表语句如下:
CREATE TABLE [dbo].[biyesheng](
[ID] [int] IDENTITY(1,1) NOT NULL,
[xuehao] [varchar](32) NOT NULL,
[xingming] [varchar](25) NOT NULL,
[xingbie] [varchar](8) NULL,
[minzu] [varchar](8) NULL,
[chushengnianyue] [varchar](10) NOT NULL,
[jiatingzhuzhi] [varchar](32) NULL,
[ruxiaoshijian] [varchar](50) NOT NULL,
[xibu] [varchar](50) NULL,
[techang] [varchar](50) NULL,
[zhuanye] [varchar](50) NOT NULL,
[mima] [varchar](8) NOT NULL,
[jianli] [varchar](50) NULL,
[addtime] [datetime] NOT NULL,
[zhaopian] [varchar](50) NULL
)
(4)岗位表:用于记录岗位信息的gangwei表 ,该表的字段。如表4-4所示。
表4-4 岗位表
列名 数据类型 描述 允许空值 ID int 岗位编号 N gongsi varchar(50) 公司名 N gangweimingcheng varchar(50) 岗位名称 N zhaopinrenshu varchar(50) 招聘人数 Y xingbieyaoqiu varchar(50) 性别要求 Y yuexin varchar(50) 月薪 Y jianjie varchar(50) 简介 Y addtime datetime 新增时间 N
建表语句如下:
CREATE TABLE [dbo].[gangwei](
[ID] [int] IDENTITY(1,1) NOT NULL,
[gongsi] [varchar](50) NOT NULL,
[gangweimingcheng] [varchar](50) NOT NULL,
[zhaopinrenshu] [varchar](50) NULL,
[xingbieyaoqiu] [varchar](50) NULL,
[yuexin] [varchar](50) NULL,
[jianjie] [varchar](50) NULL,
[addtime] [datetime] NOT NULL
)
(5)公司表:用于记录公司的基本信息的gongsi表,该表的字段。如表4-5所示。
表4-5 公司表
列名 数据类型 描述 允许空值 ID int 公司编号 N yonghuming varchar(50) 用户名 N mima varchar(50) 密码 N gongsimingcheng varchar(50) 公司名称 N zhucezijin varchar(50) 注册资金 Y dianhua varchar(50) 电话 N dizhi varchar(50) 地址 Y guimo varchar(50) 规模 Y xingye varchar(50) 行业 N jianjie varchar(50) 简介 Y addtime datetime 新增时间 N
建表语句如下:
CREATE TABLE [dbo].[gongsi](
[ID] [int] IDENTITY(1,1) NOT NULL,
[yonghuming] [varchar](50) NOT NULL,
[mima] [varchar](50) NOT NULL,
[gongsimingcheng] [varchar](50) NOT NULL,
[zhucezijin] [varchar](50) NULL,
[dianhua] [varchar](50) NOT NULL,
[dizhi] [varchar](50) NULL,
[guimo] [varchar](50) NULL,
[xingye] [varchar](50) NOT NULL,
[jianjie] [varchar](50) NULL,
[addtime] [datetime] NOT NULL
)
(6)新闻通知表:用于记录新闻通知的内容的xinwentongzhi表,该表的字段。如表4-6所示。
表4-6 新闻通知表
列名 数据类型 描述 允许空值 ID int 新闻通知编号 N biaoti varchar(50) 标题 N leibie varchar(50) 类别 N neirong varchar(50) 内容 N tianjiaren varchar(50) 添加人 N addtime datetime 新增时间 N
建表语句如下:
CREATE TABLE [dbo].[xinwentongzhi](
[ID] [int] IDENTITY(1,1) NOT NULL,
[biaoti] [varchar](300) NOT NULL,
[leibie] [varchar](50) NOT NULL,
[neirong] [text] NOT NULL,
[tianjiaren] [varchar](50) NOT NULL,
[addtime] [datetime] NOT NULL CONSTRAINT [DF_xinwentongzhi_addtime]
)
(7)应聘简历表:用于记录应聘简历内容的ypjl表,该表的字段。如表4-7所示。
表4-7 应聘简历表
列名 数据类型 描述 允许空值 ID int 应聘简历号 N xh varchar(50) 学号 N xm varchar(50) 姓名 N gwmc varchar(50) 岗位名称 N addtime datetime 新增时间 N gwid varchar(10) 岗位号 N gs varchar(50) 公司名 N
建表语句如下:
CREATE TABLE [dbo].[ypjl](
[ID] [int] IDENTITY(1,1) NOT NULL,
[xh] [varchar](50) NOT NULL,
[xm] [varchar](50) NOT NULL,
[gwmc] [varchar](50) NOT NULL,
[addtime] [datetime] NOT NULL CONSTRAINT [DF_ypjl_addtime] ,
[gwid] [varchar](10) NOT NULL,
[gs] [varchar](50) NOT NULL
)
5 详细设计与实现
5.1 详细设计的概念
详细设计阶段的根本目标是确定应该怎样具体地实现招聘网站,详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,程序员将根据这个蓝图写出实际的程序代码。由此可以看出,详细设计的结果基本上决定了最终的程序代码的质量。
详细设计的目标不仅仅逻辑上正确地实现每个模块的功能,更重要的设计出的处理过程应该尽可能简明易懂。
5.2 企业和个人功能实现
5.2.1 企业和个人注册页面
进入注册新用户界面后,用户首先填写新用户资料,然后判断带*号的必添项目是否已经填写齐全,用户名是否重复,地址、email等资料是否有效等等。如果数据有效,系统则在数据库中添加一条新记录,存储新用户信息,完成新用户的注册。
毕业生注册如图5.1所示。
图5.1 求职者注册信息
求职者注册账号流程图如图5.2所示。
图5.2 求职者注册流程图
个人注册信息的核心代码如下:
String sql=insert into biyesheng(xuehao,xingming,xingbie,minzu,chushengnianyue,jiatingzhuzhi,ruxiaoshijian,xibu,techang,zhuanye,mima,jianli,zhaopian) values(+xuehao+,+xingming+,+xingbie+,+minzu+,+chushengnianyue+,+jiatingzhuzhi+,+ruxiaoshijian+,+xibu+,+techang+,+zhuanye+,+mima+,+jianli+,+zhaopian+) ;//插入个人注册的信息
connDbBean.executeUpdate(sql);//更新数据库
out.print(scriptalert(注册成功!!);//提示注册成功
公司注册信息如图5.3所示。
图5.3 企业注册信息
5.2.2 个人登录和后台功能
在主页面的用户登录窗口中输入用户名,密码,权限后。首先根据从登录窗口传过来的用户名和密码打开个人表,如果表中有此用户名,并且密码正确的话把用户信息用cookies方法写入客户端,登录成功后,显示后台和退出按钮。如图5.4所示。
图5.4 注册者登录界面
登录,注册页面流程图如图5.5所示。
图5.5 注册者登录流程图
后台数据库实现代码如下:
package db;
import java.sql.*;
public class db {
private String dbDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver;
private String sConnStr = jdbc:microsoft:sqlserver://localhost:1433;databasename=jspzhaopin; //连接数据库
public Connection connect = null;
public ResultSet rs=null;
public db() {
try {
Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);
String url=jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspzhaopin;
connect = DriverManager.getConnection(url,sa,8888); //数据库用户名,密码
}
catch (Exception ex) {
System.out.println(出错!);//提醒出错了
}
}
public ResultSet executeQuery(String sql) {
try{
connect=DriverManager.getConnection(sConnStr,sa,8888);
Statement stmt=connect.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println(ex.getMessage());
}
return rs;
}
public void executeUpdate(String sql)
{
Statement stmt=null;
rs=null;
try
{ connect=DriverManager.getConnection(sConnStr,sa,8888);
stmt=connect.createStatement();
stmt.executeUpdate(sql);
stmt.close();
connect.close();
}
catch(SQLException ex){
System.err.println(ex.getMessage());
}
}
}
当以个人求职者身份登录成功后,可以对查看自己的应聘记录,对一些认为对自己没有意义的记录删除,当点击删除时,给用户提醒,是否真的要删除,若点击“取消”按钮,则不删除记录;若点击“确定”,则这条记录从数据库里彻底删除。如图5.6所示。
图5.6 应聘记录管理界面
当个人登录成功后,可以对自己的应聘记录进行管理。如图5.7所示。
图5.7 个人功能流程图
5.2.3 企业登录的后台功能
当以企业身份成功登录后,后台的功能如图5.8所示。
图5.8 企业后台管理界面
在进行岗位添加时,先用check()函数检查“岗位名称”是否为空,当为空时,显示提示信息“请先输入岗位名称”,然后填写内容,完成后,提交到数据库里,返回到本页面。如下添加岗位信息图如图5.9所示。
图5.9 企业发布岗位信息
添加公司岗位的核心代码如下:
function check()
{
if(document.form1.gongsi.value==)
{
alert(请输入);//提示框
document.form1.gongsi.focus();
return false;
}
if(document.form1.gangweimingcheng.value==)
{
alert(请输入岗位名称);
document.form1.gangweimingcheng.focus();
return false;
}
}
String sql=insert into
gangwei(gongsi,gangweimingcheng,zhaopinrenshu,xingbieyaoqiu,yuexin,jianjie) values(+gongsi+,+gangweimingcheng+,+zhaopinrenshu+,+xingbieyaoqiu+,+yuexin+,+jianjie+) ; //插入岗位信息到数据库
connDbBean.executeUpdate(sql);//执行这条语句
out.print(scriptalert(添加成功!!);
location.href=gangwei_add.jsp;/script);//添加成功后返回该页面
企业身份登录成功后,可以进行发布招聘岗位,如图5.10所示。
图5.10 企业发布信息流程图
进入企业者后台,可以用like关键字进行模糊查询已经发布的信息,并且对那些过期的,不需要的消息可以进行点击“删除”操作,使用delete语句把岗位表中该记录删除;若对发布的岗位要求有变动的话,使用update语句,单击“修改”按钮进行岗位要求的改动。如图5.11所示。
图5.11 企业查询发布的岗位信息
该功能的流程图如图5.12所示。
图5.12 企业对岗位信息操作流程图
查询的核心代码如下:
String sql=;
sql=select * from gangwei where gongsi=+request.getSession().getAttribute(gongsi)+;
if(request.getParameter(bianhao)== ||request.getParameter(bianhao)==null )
{}//判断是否为空或者空格
else{
//取控件名为编号的值
sql=sql+ and gangweimingcheng like %+new String(request.getParameter(bianhao).getBytes(8859_1))+%;}
sql=sql+ order by id desc;
ResultSet RS_result=connDbBean.executeQuery(sql);//执行查询操作
}
在企业发布招聘信息后,会有求职者来申请岗位,企业看了他们资料后,对不符合公司要求的人的简历可以单击“删除”按钮,留下需要的人的简历给予通知。具体功能实现如图5.13所示。
图5.13 企业对应聘者信息操作
企业浏览招聘职位的人的信息,对不符招聘条件的人的资料进行删除,如图5.14所示。
图5.14 企业对应聘信息流程图
5.3 管理员登录功能
在本系统中,设计了管理员登陆的后台管理页面,此页面首先检测session的值来判断管理员是否登录,如果没有登录,则显示登录的表单。
它的登录界面图如图5.15所示。
图5.15 管理员登录界面
管理员登录界面流程图如图5.16所示。
图5.16 管理员登录流程图
5.4 网站管理员具体功能
系统用户管理员具有所有权限,就产生了大量负责管理网站信息的功能,如发布网站新闻,对企业和求职者信息的管理等功能。如图5.17所示。
图5.17 管理员的功能
5.4.1 管理员密码修改
管理员在页面输入原密码,新密码,然后与数据库里的该用户的密码,用equals函数进行页面密码和数据库里的密码进行比较,当相同时,提示“修改密码成功”,更新了该用户在数据库里的密码;当两个密码比较,不一致时,提示“修改不成功”,返回重新修改。如图5.18所示。
图5.18 管理员密码修改
管理员修改密码的核心代码如下:
%
String ymm=request.getParameter(ymm);//输入的原密码的值
String xmm1=request.getParameter(xmm1);//输入新密码的值
ResultSet RS_result=connDbBean.executeQuery(select * from [allusers] where username=+request.getSession().getAttribute(username)+);
if(!RS_result.next())
{
out.print(scriptalert(系统故障,请勿越权操作!);
window.history.go(-1);/script);
}
else
{
String pwd=RS_result.getString(pwd);
//当满足输入的密码和数据库里的密码相等
if(pwd.equals(ymm))
{
String sql=update allusers set pwd=+xmm1+ where username=
+request.getSession().getAttribute(username)+;
//更新密码
connDbBean.executeUpdate(sql);
out.print(scriptalert(修改成功!!);
window.history.go(-1);/script);
}
else
{
out.print(scriptalert(对不起,您的原密码不正确,请重试!);
window.history.go(-1);/script);
}
}
RS_result.close();//关闭数据库;
%
管理员的密码修改流程图如图5.19所示:
图5.19 密码修改流程图
当网站上出现大量的内容需要管理,一个人管理起来很困难,需要加入其它管理员一起管理网站上的信息。注:添加和删除管理员这个功能只限超级管理员能有这个权利,普通管理员只是帮助超级管理员一起管理网站的功能。如图5.20所示。
图5.20 管理员账号管理
对一些新加入者,超级管理员给它注册管理员的账号密码,对经后不在管理的管理员超级管理员给予删除,如图5.21所示。
图5.21 账号管理流程图
5.4.2 站内新闻管理
管理员可以根据了解到的最新情况,可以在网站上发布最新新闻,方便浏览该网站的求职者和企业的了解情况,也让网站更具有吸引力;若发现发布的新闻需要改动,可以单击“修改”按钮;当发现新闻过时,无用的新闻,点击“删除”,如图5.22所示。
图5.22 站内新闻浏览
5.4.3 管理注册者信息
由于设计出了一个网站,会有很多人来注册账号,方便自己寻找工作就业,因此会产生大量的个人信息需要管理,有需要删除和需要修改的过期信息需要解决,由此可知,设计网站时设计一个求职者信息管理的重要性。如图5.23所示。
图5.23 管理求职者信息
当管理员查看求职者信息时,发现存在明显的资料错误等原因,管理员需要帮求职者修改,更正信息。举例说明,如图5.24所示。
图5.24 管理修改求职者信息
管理员通过SQL语句中的select语句查找出公司表的信息,并且通过update,delete语句进行信息的修改,删除等操作。在公司表中,用select语句根据行业或者公司名称,并且条件中采用了like进行模糊查找。如图5.25所示。
图5.25 管理企业信息
管理员通过SQL语句进行了特定公司表中内容的修改,当修改完成后,点击“提交”按钮,页面提示成功;就说明用insert语句把修改后的信息重新插入到公司表;单击“重置”,使用reset来进行内容重置。如图5.26所示。
图5.26 修改企业信息
5.4.4 管理岗位和应聘信息
招聘的岗位一般都有一个时间规定,如过了这个时间,就是过期的招聘信息,所以管理岗位的信息很重要,当出现大量的岗位信息,不方便找到过了规定日期的招聘。可以通过按条件筛选出岗位,来进行删除操作
Delete操作采用一个单独的模块,每次需要进行删除操作就调用该模块,避免重复写代码。如图5.27所示。
图5.27 管理招聘岗位
删除的核心代码如下:
String id=request.getParameter(id);
String tablename=request.getParameter(tablename);//获得表名
String sql=delete from +tablename+ where id=+id+;根据编号为条件,删除表中内容
connDbBean.executeUpdate(sql);//更新数据库
out.print(scriptalert(删除成功!!); //提示删除成功
对一些无效的,过期的求职者应聘记录的信息给予删除,当出现是否确定删除的提醒,单击“确定”后,该记录就从页面和数据库里删除了。删除了无效应聘记录,以方便那些新的信息的添加,方便管理,浏览等。如图5.28所示。
图5.28 管理应聘记录
根据条件查询的核心代码如下:
String sql=;
sql=select * from ypjl
where xh=+request.getSession().getAttribute(username)+;
//把应聘记录全部查找出来
if(request.getParameter(bianhao)== ||request.getParameter(bianhao)==null )
{}
else{
sql=sql+ and gwmc like %+new String(request.getParameter(bianhao).getBytes(8859_1))+%;
}//根据岗位名称信息模糊查询
if(request.getParameter(gs)== ||request.getParameter(gs)==null )
{}//判断输入的公司是否为空或者空格
else {
sql=sql+ and gs like %+new
String(request.getParameter(gs).getBytes(8859_1))+%;
}//根据公司信息模糊查询
sql=sql+ order by id desc;
ResultSet RS_result=connDbBean.executeQuery(sql);//执行查询数据库信息
5.5 前台管理
5.5.1 首页浏览
首页是一个网站的“门面”,一定要把大量信息都反映在首页上,让浏览网站的人有兴趣继续详细了解内容,首页上可以浏览站内新闻,优秀毕业生,最新注册的企业,公司发布的岗位和友情链接到其它网站上查信息等。首页页面如图5.29所示。
图5.29 浏览首页
5.5.2 信息浏览
网站上的新闻需要不断地更新,因此通过了解站内新闻能够很快的知道网站上的一些信息了,方便浏览网站者迅速找到自己需要的信息,点击站内新闻中感兴趣的新闻,了解该新闻的具体情况。如图5.30所示。
图5.30 浏览站内新闻
这是个帮助企业的功能,当企业招不到人的时候,企业可以主动到网站上浏览求职者信息,可以按专业等条件筛选人才信息,然后对剩下的人才进行了解,点击“详细”,了解各个人才的具体情况。如果碰到合适自己公司要求的人才,可以主动抛出“橄榄枝”,如图5.31所示。
图5.31 浏览毕业生信息
求职者对各家公司都不是很了解的情况下,会无从选择,所以网站对公司信息进行罗列出来,然后点击“详细”操作,跳出另外一张页面,页面显示从数据库里查找出来的信息,可以查看各个公司的详细信息,让求职者对公司了解清楚,方便应聘。如图5.32所示。
图5.32 浏览公司信息
求职者未登录时了解岗位信息的时候,点击“应聘”操作时,提醒你未登录,请先登录,才能对岗位进行“应聘”。当求职者登录成功后,单击“应聘”,从个人表,岗位表使用select语句查找出部分信息,然后用insert语句插入到应聘简历表,岗位可以点击按条件可以进行模糊“查找”,筛选出自己感兴趣的信息进行应聘操作。如图5.33所示。
图5.33 浏览岗位信息
查询的sql拼接语句代码:
%
String sql=;
sql=select * from gangwei where 1=1;//查询出岗位表中所有信息
if(request.getParameter(bianhao)== ||request.getParameter(bianhao)==null )
{}//当text文本中为空,或者空格不做任何操作
else
{
sql=sql+ and gongsi like %+new String(request.getParameter(bianhao).getBytes(8859_1))+%;//根据公司查询
}
if(request.getParameter(mingcheng)== ||request.getParameter(mingcheng)==null )
{}
else
{
sql=sql+ and gangweimingcheng like %+new String(request.getParameter(mingcheng).getBytes(8859_1))+%;
}
sql=sql+ order by id desc;//按照编号降序排列,为了新注册的信息显示在前面
%
6 结论与展望
6.1 结论
经过大半年的努力,从一开始的学习语言,简单项目的功能实现,到最后基本实现了这次论文的要求和功能。本次论文设计任务是基于JSP的校园招聘网站设计,初步实现了求职者和企业在线注册和登录,企业发布招聘信息和寻找一些对合适自己公司的人才进行主动寻求是否想要到我公司上班,求职者浏览各个企业的信息和岗位需求,如有意向可以在线申请,这是该网站的最大用途。系统的最大特点是操作简单,浏览速度快,并且安全性和稳定性好,每次进行一个
文档评论(0)