基于SSH框架的《网络人才招聘系统》的设计与实现

2014-10-21 12:55柏云飞
电子世界 2014年23期

柏云飞

【摘要】在21世纪的信息时代,“信息”的革命让人类的沟通更加便捷。同时企业之间的人才竞争也越来越来激烈,因而有必要开发一套网络人才招聘系统,以满足企业的人才战略需求。该系统既帮助企业更加有效,快速的找到自己所需的人才,又为求职者提供了一个安全可靠的求职渠道。系统采用SSH框架进行构建,Mysql作为数据存储,利用软件工程思想和方法进行开发。

【关键词】招聘系统;求职网站;SSH

Abstract:The 21st century is the era of information,"information"revolution so that human communication more convenient.Now talent competition between enterprises is also growing too large.The advent of the Internet Recruitment system both to help businesses more effectively,quickly find the talent they need,and to provide a safe and secure job seekers job search channels.This paper discusses how to use the technology to build a secure and reliable j2ee recruitment system and solve some of today's job sites exist pertinence of information and low fidelity issues.This system built using SSH framework,Mysql as data storage and using software engineering ideas and methods.

Keywords:Recruitment System;Job System;SSH

1.引言

随着经济和社会的发展,越来越多的人才涌入社会以及社会再就业人员的不断加大,导致就业的压力不断增大。怎样快速有效的获取就业信息,对所有求职者来说至关重要。而网上人才招聘系统的出现简化了招聘流程并且给求职者以及企业带来了更多的选择。

2.系统总体框架

本系统将采用SSH(String2,Spring3, Hibernate4)进行构建。使用SHH进行开发的好处就是将软件分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。Struts主要用于MVC的分离,实现控制业务跳转,而Hibernate框架用于对持久层提供支持,Spring主要管理struts和hibernate。

该网上人才招聘系统主要分为两种用户即求职者与招聘者,所以根据两种主要用户需要完成的需求就分为了求职和招聘两大模块。

图1 系统整体框架图

3.系统的业务逻辑

3.1 更新简历

当会员登入成功之后,用户可以对简历信息进行管理。由于在此页面需要登入后才能够查看,所以此处的action配置了一个拦截器主要用来判断用户的状态,如果是不是登入用户则没有权限访问。想要更新简历,首先需要将该用户的简历信息插座出来,在为了保证数据的安全性,禁止通过Get传参的形式直接将简历的主键Id作为查询条件,因为Get的值很有可能被修改而造成数据的紊乱。而我采用的通过Session中的Uid在简历表中查找,因为Session中保存的就是该用户的状态,安全性得到提高。用户首次更新简历其实在简历表中是没有该用户简历信息的,当点击更新简历按钮时需要判断该用户是否是首次更新,防止数据库中记录的重复插入。

3.2 发布职位

如果注册用户想要发布职位必须通过绑定公司邮箱,当我们输入需要绑定的公司邮箱名以及公司名称,程序会发送一封邮件给给你填写的邮箱地址,当点击邮箱中的链接并且验证成功之后才能够发布职位。此举主要是考虑到职位信息的有效性。

具体算法如下:

(1)填写邮箱地址,匹配该邮箱地址是否正确;

(2)根据该Email,生成一个UUID唯一码,并插入user表中;

(3)使用sendEmail方法发送验证邮件;

(4)当点击邮件中链接时会去个妞email和code在表user中查找是否存在该条记录,如果存在则邮件验证成功,允许发布职位,否者验证失败;

当完成邮箱的验证之后就可以发布职位了,发布的职位会显示在职位列表当中,以便我们在此页面对发布的职位进行重新编辑以及删除操作。

3.3 编辑职位

当选择编辑职位按钮,主要经过了以下几个操作:

(1)根据JobId查找以及保存在Session中的uid查找该职位;

(2)判断职位是否存在如果存在则将数据显示出来否则进入错误页;

在第(1)步当中之所以需要根據jobId和uid共同查询,而不单单只是根据jobId来查询,主要考虑到Get中的参数是可以在URL地址栏中是可以被修改的,所以就会有这么一种情况,当有人恶意的修改了Url中jobId的参数值的时候,如果只是根据jobId去查找的话,很有可能查找出来的数据库是别人的,很明显这是不允许的。现在加上uid这个查询条件就可以保证查找出来的数据是登入者的了。

3.4 删除职位

当职位过期,或者该职位失效的时候,我们需要有删除职位的需求。考虑到可能存在误操作,所以需要通过Js弹出一个确认框,保证用户是在正常的情况下删除的。

从安全性角度考虑,删除职位是通过JobId进行删除的,但是往往这个JobId是很容易被非法篡改的,一旦JobId被篡改就可能会出现你删除的职位是别人的,而这是不允许的出现的情况,所以在删除时需要在条件中多加一层判断,判断该简历的Uid确实属于登入者。

3.5 投递简历

当用户注册之后就可以投递简历了,基本流程如下:

(1)判断是否以及登入,如果未登入则前往登入界面。

(2)求职者点击投简历按钮便可将预先自己编辑好的简历,投递到职位发布者那头,此处需要判断該职位的发布者不是登入用户,因为招聘者不能够投递自己发布的职位。

(3)当求职者完成申请,发布该职位的用户就可以在发布的职位列表页查看该职位的投递情况了,点击“投递情况”按钮,就可以查看有哪些用户投递了该职位以及这些用户的简历。

4.安全性考虑

为了提高网站的安全性,以及保护用户隐私,我主要从以下几个方面来提高网站的安全性。

密码加密:该系统采用的是MD5加密方法,这也是一种主流的不可逆的加密方法,加密之后的32位密码存储在数据库中。

文件访问权限:因为在struts.xml文件中result对应的jsp文件,不是用来直接访问的,而是用来做渲染的,所以这些jsp文件我放在了WEB-INF目录下,而WEB-INF目录是无法通过url直接访问的,所以这样也可以从一定程度提高网站的安全性。

数据库安全性:将mysql数据库中用户名密码设置为不允许远程登入,并且给定的账户密码只允许对该数据库进行操作,而不是直接给定root的权限。

防止sql注入:在 组织sql语句的时候对输入的数据进行严格的校验,避免直接将输入的数据作为sql的参数。通常使用的是Hibernate中setParameter参数绑定的形式。而且用了urlrewrite组件,除了考虑到SEO,美化url的作用外,还可以隐藏参数,避免被直接显示出了。

基础设施安全设计:安装防火防病毒和杀毒软件。设置防火墙,可以避免系统和信息受到非授权用户的非授权程序的访问;安装杀毒软件可以监控计算机中程序和进程的运行情况,及时发现和消灭病毒程序和进程,保护计算机系统和信息的安全。

5.总结

SSH是非常成熟的开发框架,其不仅开发快捷而且安全。该框架的系统从职责上分为三层:表示层、业务逻辑层、数据持久层,以帮助开发者在很短的时间内搭建结构清晰、可复用性好、维护方便的Web系统。基于SSH的网上人才招聘系统既帮助企业更加有效,快速的找到自己所需的人才,又为求职者提供了一个安全可靠的求职渠道。