《速达求职网的设计与实现毕业设计论文.doc》由会员分享,可在线阅读,更多相关《速达求职网的设计与实现毕业设计论文.doc(37页珍藏版)》请在三一办公上搜索。
1、毕业设计(论文)速达求职网的设计与实现论文作者姓名:申请学位专业:申请学位类别:指导教师姓名(职称):论文提交日期:速达求职网的设计与实现摘 要现如今传统的求职方式越来越不能满足当今企业和求职者的需要。随着Internet的发展,网络上兴起了很多求职网站。求职网站的出现,给求职者和招聘单位带来了很大的方便,但目前针对我们在校大学生、应聘毕业的求职网站很少,并且现有的这些针对在校大学生的求职网都是以营利为目的,很多得不到大学生的信任。为了给在校大学生和招聘单位提供一个良好的求职、招聘的平台,本课题拟实现一个速达求职网。本系统有利于企业利用网站快速的发布招聘信息,浏览更多求职者的信息找到自己所需要
2、的人才;求职者能够在求职网上创建个人简历、职位浏览、申请、职位搜索;为保证招聘企业的合法性,企业相关证件要通过管理员的检查后才能成为合法的企业用户,本系统采用jsp+SQL server2000实现。关键词:求职网;jsp;SQL server2000Design And implementation of online job websiteAbstractNow, the traditional way of job hunting couldnt meet the needs of company and applicants .With the development of Inter
3、net , the online job websites have been appeared. The online job websites take convenience for applicants and companies. But current websites have disadvantages. In special, few websites are opened to the university students and the present graduating students. And almost of them only want to get mo
4、re benefits than services. The system is a good platform for company to promulgate the information of employ, to hunt what they need, and for applicants to create personal resume , to browse position , to apply position ,to search position and so on .Key words: Online Job Website; Jsp; SQL server200
5、0目 录论文总页数:26页1引言11.1课题背景11.2国内外研究现状11.3本课题研究意义12相关知识介绍12.1JSP的优势12.2JSP的特点12.3SQL语言介绍22.4Dreamweaver简介43系统设计43.1系统需求43.2功能模块划分53.3主要流程53.4数据库设计54系统实现84.1用户登录84.2个人用户功能实现104.3企业用户功能实现144.4管理员功能实现155系统使用环境配置说明175.1开发环境175.2环境变量设置17结论18参考文献18附 录19致 谢25声 明261 引言1.1 课题背景在Internet飞速发展的今天,电子数字计算机是20世纪重大科技发
6、明之一,而如今联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各方面发挥着重要的作用。Internet上发布信息主要是通过网站来实现的,获取信息也是要在Internet“海洋”中按照一定的检索方式将所需要的信息从网站上下载下来。因此网站建设在Internet应用上的地位显而易见,它已成为机关、学校、企事业单位、甚至进入寻常百姓家的信息化建设中的重要组成部分,从而倍受人们重视。而现如今我国国内的招聘市场很不成熟,在校大学生找兼职都得花钱,甚至更多的是上当受骗,而现有的几大招聘网站很少为在校大学生提供免费的找兼职服务。因此,为满足当代大学生的需求,为他们提供更多更好的在社
7、会实践的机会,为应届毕业生提更多的就业信息,为企业提供高效快捷的招聘信息发布和对求职者信息的查看建设了速达求职网。1.2 国内外研究现状国外最大WEB2.0网站把自己原有的赢利模式互联网广告拓展到针对青年人群的招聘服务。而我国现目前也有很多求职招聘网站建立起来了如:51job、英才网等。我国现有的这些招聘网站主要是以赢利为目的,没有怎么为在校大学生、应届毕业生提供更多更好更全面的兼职、实习信息。因此,在国内外都以赢利为目的时,我们要推出以服务为目的的求职网站。1.3 本课题研究意义 为在校大学生特别是贫困生提供更多的免费兼职,给他们提供更多机会进入社会体验生活,减轻父母的压力。为更多的应届毕业
8、生提供就业实习的机会,让自己的价值得到充分的体现。为所有的求职者和企业单位搭建一个桥梁。解决现在大学生上当受骗的社会问题,解决公司找人难的问题。2 相关知识介绍2.1 JSP的优势JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和Java Applet之外,又有新的硕果,就是JSP,Java Server Page。JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。2.2 JSP的特点JSP的技术特点:(1)将内容的产生和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识
9、来设计和格式化最终页面。使用JSP标识或者小脚本来产生页面上的动态内容。产生内容的逻辑被封装在标识和JavaBeans群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。如果核心逻辑被封装在标识和Beans中,那么其它人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的产生。在服务器端,JSP引擎解释JSP标识,产生所请求的内容(例如,通过存取JavaBeans群组件,使用JDBC技术存取数据库),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。(2)强调可重用的群组件绝大多数J
10、SP页面依赖于可重用且跨平台的组件(如:JavaBeans或者Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的程序设计人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容产生所需要的。标准的JSP标识能够存取和实例化 JavaBeans组件,设定或
11、者检索群组件属性,下载Applet,以及执行用其它方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其它人员可以为常用功能建立自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2EE的一个成员,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java程序设计语言的,而且所有的JSP页面都被编译成为Java Servlet
12、,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java程序设计语言“一次编写,各处执行”的特点。随着越来越多的供货商将JSP支持加入到他们的产品中,您可以使用自己所选择的服务器和工具,修改工具或服务器并不影响目前的应用。2.3 SQL语言介绍SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。ANSI(美国国家标准学会)声称,SQL是关系数据管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用
13、SQL的常见关系数据库管理系统有:ORACLE、SYBASE、MICOSOFT SQL SERVER、ACCESS、INGRESS等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们系统。但是标准的SQL命令,比如:“SELECT”、“INSERT”、“UPDATE”、“DELETE”、“CREATE”和“DROP”常常被用于完成绝大多数数据库的操作。MS SQL SERVER 就是用的TRANSACT-SQL。SQL语言有着非常突出的优点,主要是:非过程化语言、统一的语言、是所有关系数据库的公共语言非过程化语言:SQL是一个非过程化的语言,因为它一次处理
14、一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部份,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从来不需要知道表是否有索引、有什么类型的索引。统一的语言:SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系
15、统人员及许多其它类型的终端用户。SQL为许多任务提供了命令,其中包括:(1)查询数据(2)在表中插入、修改和删除记录(3)建立、修改和删除数据对象(4)控制对数据和数据对象的存取(5)保证数据一致性和完整性以前的数据管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。所有关系数据库的公共语言:由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。SQL功能强大,是一种完备的数据处理语言,不仅用于数库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组
16、:DML(DATA MANIPULATION LANGUAGE,数据操作语言):用于检索或者修改数据;DDL(DATA DEFINITION LANGUAGE,数据定义语言):用于定义数据的结构,比如创建、修改或者删除数据库对象;DCL(DATA CONTROL LANGUAGE,数据控制语言):用于定义数据库用户的权限;DML组可以分为以下的几个语名:SELECT:用于检索数据;INSERT:用于增加数据到数据库;UPDATE:用于从数据库中修改现存的数据;DELETE:用于从数据库删除数据。DDL语句可以用于创建用户和重建数据库对象。下面是DDL命令:CREATE TABLE,ALTER
17、TABLE,DROP TABLE,CREATE INDEX,DROP INDEX注意:MICROSOFT SQL SERVER 2000(以下简写为SERVER 2000)是功能强大的关系型数据库管理系统(RELATIONAL DATABASE MANAGEMENT SYSTEM简称RDBMS)之一,越来越多的专业人士选择SERVER2000开发数据库管理程序。SERVER2000是用来建立和管理数据库的引擎。它的作用和我们熟悉的桌面型数据库管理系统FOXBASE、VISUAL FOXPRO一样,但在存储大容量数据方面、在数据的安全性和完整性方面、在分布式处理和具有高效的机制等方面,像FOXP
18、RO等桌面型数据库管理系统是不能实现的。也就是说,SQLSERVER不仅可以实现个人数据库的管理,更适合企业级的数据库应用。2.4 Dreamweaver简介Dreamweaver是由美国著名的软件开发商Macromedia公司推出的一个“所见即所得”的可视化网站开发工具。无论在国外还是在国内,它都是倍受专业Web开发人士推崇的软件。在国内,它被大家称为网页“织梦者”,众多的专业网站和个人主页都把它列为建站的首选工具。在最新的MX版本中,对Dreamweaver的代码控制和后台功能作了进一步增强,整合了UltraDev,ColdFusion Studio,Homesite等优秀软件,使得新版本
19、的Dreamweaver比起原有的版本,功能得到了一个飞跃的发展。3 系统设计3.1 系统需求互联网的发展给人们的日常生活带来了很大的变化,越来越多了人通过互联网在足不出户的情况下方便、快捷的获取到自己所需要的信息;通过互联网我们的商家、企业、政府可以很方便的、及时的发布自己的信息。利用互联网我们可以为求职者、招聘企业单位提供一个双向选择的平台,大大简化过去传统的求职方式,提高企业单位的工作效率,给求职者提供一个更大更好的求职环境。速达求职网就是在互联网的发展下、求职者和企业单位的需求下建立起来的。3.2 功能模块划分根据对求职者和招聘单位的分析,按照系统开发的基本观点对网站进行分解,对网站做
20、如下划分:个人用户:注册、登录、简历创建、职位搜索、职位浏览及申请、应聘记录、注销企业用户:注册、营业执照上传、登录、招聘职位发布、浏览简历、求职者应聘记录管理员:企业注册信息审查、传信息审查、修改标记。3.3 主要流程主界面登录、注册个人用户企业用户管理员我要退出投递记录我的简历个人资料个人中心企业信息填写招聘职位发布求职者信息浏览职位应聘记录个人用户注册成功后企业用户注册成功后管理员对信息的核对判断根据软件工程的思想,以传统的瀑布模型为基础,确定以下的流程。如下图:图1流程图3.4 数据库设计 采用的数据库是SQLSERVER2000,建立candylau数据库,其中几个重要的表如下: p
21、user存放个人用户注册信息表:表1 puser表的字段字段名字段说明Pusername个人用户名称Ppassword密码Realname真实姓名Phone电话号码Email电子邮件地址Regtime注册时间cid身份证号 cuser存放企业用户注册信息表:表2 cuser表字段说明字段名字段说明Num自动增加的序号Cusername企业用户的用户名Cpassword密码Company公司名称Phone联系电话Lxman联系人Email公司邮件地址Detail公司介绍Judge判断公司是否通过了验证,默认值是false 当个人用户创建起自己的简历名称时就把简历名和身份证号同时存入表presna
22、me、presume1、peducation、phope、pstrong、pstrain、pword、pecertification、planguage其中 presume1简历基本信息存放表,peducation教育经历存放表,phope个人意愿,pstrong个人特长,pstrain培训经历, pwork工作经历,pcertification证书,planguage语言。这样做的主要目的是使每个用户的简历名不能重复,在对数据进行查找时同时把简历名和身份证号作为条件,使数据和用户之间实现一一对应。其中主要的presname、presume1的字段定义及说明如下表3、表4:表3 presnae
23、me表字段说明字段名字段说明cid身份证号Resumename简历名称表4 presume1表字段说明字段名字段说明Num自动编号Realname真实姓名Sex性别Diploma学历Resumename简历明称cid身份证号Hkadr户口所在地地址Rphone手机号吗Email邮箱地址Datatime出生日期Lxadr联系地址Ybnum邮政编码当个人用户申请了某个公司所发布的职位后会向表record、crecord表存入相同的信息,record名为“个人应聘记录”crecord名为“企业所查看求职记录”表的字段定义如下表5:表5 record、crecord表字段说明字段名字段说明Num自动编
24、号Pusername个人用户名cid身份证号Company公司名称Ypzw应聘的职位名称Jlname所投放简历的名称zpxx招聘信息,用于存放公司所发布的招聘信息:字段名字段说明Num自动编号Cusername企业用户名Company公司名称zwm招聘职位名称zprs招聘人数gzjy工作经验要求Gzadr工作地址yqs应聘要求fbtime发布时间zptime招聘时间gxxz职位类型表6 zpxx表字段说明以上是几个重要表的介绍方便读者对后面的更易理解。4 系统实现4.1 用户登录速达求职网设置了三种类型用户:个人用户、企业用户、管理员。不同的用户有不同的权限。这些判断都是在后台里进行判断的没有
25、相应的界面。1. 用户从首页index.jsp的登录框登录,用户提交登录后进入index1.jsp界页进行用户类型判断如果是个人用户进入login.jsp界页进行用户名和密码的判断,如果为企业用户则进入login1.jsp界页进行相应的判断,如果登录名是admin,密码是admin1234就直接进入管理员页面。个人用户登录成功进入person/pindex.jsp页面,企业用户进入company/cindex1.jsp页面。2. 核心代码如下:StringstrRadiobutton=request.getParameter(radiobutton).trim();String usernam
26、e = request.getParameter(username);String password = request.getParameter(password);Request.getParameter(“name”)获得属性为name的值。username.equals(admin)&password.equals(admin1234)判断管理员用户,strRadiobutton.equals(2)判断企业用户,如果不是管理员又不是企业用户,else则为个人用户。用户名和密码判断:ResultSet res=stmt.executeQuery(select * from puser(c
27、user) where pusermane=+username+ and ppassword=+password+);在puser(cuser)表里查找出一行用户名为username并且密码为password,如果res.next()存在说明用户名和密码是对的,就进入相应的界面。session.putValue(regid,id);session.putValue(logname,username);session.putValue(loginSign,OK);其中regid,logname,loginSign都是传递变量的名称,id,username是变量名,用双引号括起来的OK是值。Ses
28、sion是一次会话只要浏览器不关闭就不会关闭会话一般默认保存30分钟,在别一个页面获得session对话所传递的值的方法:(String)session.getValue(“”)(括号里为前面所传递的变量名)如要获得session.putValue(“regid”,id)所传递的id的值的方法:String id=(String)session.getValue(“regid”)。本页面中运用session是为了在以后的业面里判断用户的用户名和是否登录等。数据库连接语句Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver).new
29、Instance(); Stringurl=jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=candylau;String user=sa; String password=sa; Connection conn= DriverManager.getConnection(url,user,password); Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);Class.forName(“”)是显
30、示加载com.microsoft.jdbc.sqlserver.SQLServerDriver类,调用newInstance()产生这个类的实例。url数据源的名称,user用户名,password密码,Connection是建立数据库的连接。Conn.createStatement 用Connection接口创建一个Statement实例执行需要的查询。ResultSet.TYPE_SCROLL_SENSITIVE:该常数的作用是指定数据库游标可以在记录集中前后移动,并且当数据库用户获取的记录集对其他用户的操作敏感,就是说,当前用户正在浏览记录集中,但是其他用户的操作使数据库中的数据发生了变
31、化,当前用户所获取的记录集中的数据也会同步发生变化(这样有可能会导致非常严重的错误发生,建议慎重使用该常数)。ResultSet.CONCUR_UPDATABLE:该常数的作用是指定当前记录集的操作方式(concurrency mode)为可能更新,一旦使用了这个常数,那么用户就可以使用updateXXX()等方法更新记录集中的数据。数据库的连接至关重要,在网站的建设中很多页面的数据都要和数据库进行交互。3. 登录成功的界面 个人用户成功进入personal/pindex.jsp界面如下图: 图2个人用户成功登录后的界面企业用户成功进入company/cindex1.jsp界面如下图: 图3
32、企业用户成功登录后的界面4.2 个人用户功能实现根据图2我们可以看出个人用户的功能模块有:个人中心(创建简历名)、个人资料(修改密码)、我的简历、投递记录(职位搜索、职位申请)、我要退出。(1) 个人中心代码的实现String regid=(String)session.getValue(regid);String username=(String)session.getValue(logname);String loginSign=(String)session.getValue(loginSign);if(loginSign.equals(OK);else out.println(aler
33、t(请登录!);window.location.href=http:/localhost:8080/candylau/index.jsp;);前面提到的session的用法,if(loginSign.equals(“OK”)判断loginSign的值是不是“OK”,如果是,就会看到图3的界面,否则提示“请登录”,确定后回到首页。res=stmt.executeQuery(select resumename from presname where cid=+regid+);if(res.next()res=stmt.executeQuery(select resumename from pres
34、name where cid=+regid+);i=0;while(res.next() i+;title=new Stringi;i=0;res=stmt.executeQuery(select resumename from presname where cid=+regid+);while(res.next() titlei=res.getString(resumename);%简历名称:a href=watch.jsp?cid=&jlname=浏览 a href=baseinfo.jsp?id=&jlname=修改 a href=del.js
35、p?id=&jlname=删除% i+;res.close(); 注意:第一个if(res.next()是判断resumename是不是存在,如果存在必须在定义一次res,不然在后面就会出现数组溢出出错。这是因为在if判断是已经读取了一行数据,当执行 while(res.next()就会少搜索一行,使得数组溢出出错。在浏览、修改、删除时使用herf=”?cid=&jlname=在起引号里的页面里是用request.getParameter()方法来获得cid和jlname的值的。用herf=”?cid=&jlname=方法是为了实现对不同的简历的浏览、修改、删除时互不影响。浏览简历,herf=
36、”watch.jsp”?cid=&jlname=,在watch.jsp页面编写是获得regid、jlname值的方法String id=request.getParameter(“cid”); String jlname = new String(request.getParameter( jlname ).getBytes( ISO8859_1 ), GBK );这里必须得进行编码转换,否则所的到的汉字回是“?”,并且在页面开始就要用到request.setCharacterEncoding(GBK);把整个页面的编码转换为gbk,这在本网站中的每给页面都用了这段代码。“个人中心”界面如下图
37、:图4个人中心我们可以选择“个人中心”创建简历名称,浏览修改删除简历。(2) 选择“个人资料”可以看到自己的用户名和身份证号,并可以对密码进行更改,大家所看到的界面里的身份证号是灰色的,不能更改,代码如下:input name=sfnum type=text disabled value=,界面如图5:图5 个人资料(3) 选择“我的简历”就进入到简历填写界面,如图:图6 我的简历 根据表3、表4我们可以看清楚字段定义并且要清楚知道为了实现在插入、删除数据的一致性,在创建简历时不仅仅把cid、resumename存入了presname表,同时也存入了表phope、pwork、pstrong、p
38、resume1、ptrain、peducation、pcertification、planguage。我们可以知道简历的内容有八项,用户可以根据自己的实际情况选择性填写,但是“基本资料”必须填写,否则就无法进行浏览。建议用户在创建了多个简历的情况下从“修改”进入对相应的简历进行填写!(4) 选择“投递记录”查看自己已经申请了的职位,如图:图7 投递记录 选择“招聘职位申请/浏览”,用户可以直接进入职位搜索界面,找到自己要申请的职位投放简历。首先看职位申请主要代码如下:stmt.executeUpdate(insert into record(pusername,cid,company,ypzw
39、,jlname)values(+regname+,+cid+,+company+,+zwm+,+jlname+);stmt.executeUpdate(insert into crecord(pusername,cid,company,ypzw,jlname)values(+regname+,+cid+,+company+,+zwm+,+jlname+);这两段代码主要是把用户名、身份证号、公司名称、应聘职位名称、简历名称分别插入到表record和crecord。记录显示代码:推荐a href=pview.jsp?id=&name= 招聘职位申请/浏览你所申请过的职位:编号公司名称招聘职位所投
40、简历操作a href=record_del.jsp?id= onclick=return del();删除你还没有申请过职位!%else out.println(alert(请登录!);window.location.href=http:/localhost:8080/candylau/index.jsp;);%首先判断用户是否已经登录,如果登录了,就从record表里查找该用户是否有已经有了应聘记录,如果有,就用while在页面上一一的显示出来;如果没有,页面上会显示“你还没有申请过职位”。如过没有登录就弹出对话框“请登录”,点击“确定”回到首页index.jsp。(5) 选择“我要退出”,
41、就可以注销用户,要再次使用系统需重新登录。代码实现是用 session.putValue()方法,把loginSign的值变为NO,具体实现:session.putValue(“loginSign”,”NO”),然后用window.location.href=”回到person/pindex.jsp,用户就要进行相应的操作就得从新回到首页登录4.3 企业用户功能实现 根据图2可看到企业用户的功能模块:公司信息填写、招聘职位发布、求职者信息浏览、职位应聘记录。企业用户在登录过程中有一个判断,判断企业用户是否已经通过了管理员的审核!判断过程如下:ResultSet res=stmt.executeQuery(select judge from cuser where cusername=+username+ and cpassword=+password1+);if(res.next() St