副教授院(系)专
业
学生姓名学
号
指导教师论文字数
完成日期:年月日
巢湖学院本科毕业论文(设计)诚信承诺书
本人郑重声明:所呈交的本科毕业论文(设计),是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。
本人签名:日期:
巢湖学院本科毕业论文(设计)使用授权说明
本人完全了解巢湖学院有关收集、保留和使用毕业论文(设计)的规定,即:本科生在校期间进行毕业论文(设计)工作的知识产权单位属巢湖学院。学校根据需要,有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许毕业论文(设计)被查阅和借阅;学校可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编毕业,并且本人电子文档和纸质论文的内容相一致。
保密的毕业论文(设计)在解密后遵守此规定。
本人签名:导师签名:
日期:日期:
基于web的求职招聘系统xx
(巢湖学院
计算机科学与技术系网络工程xxxx)
摘要
随着网络信息化及网络普遍化的发展,上网在人们生活中的应用越来越广泛。招聘网站为应聘者提供了方便、快捷、广泛的应聘途径。为招聘单位提供了查询、检索应聘者信息库的条件,使招聘工作中的人员初选工作变得轻松易行也节约了招聘成本。此系统的开发为应聘者及招聘公司带来了很大的方便和经济,使他们足不出户就可以轻轻松松地完成求职和招聘工作。
本系统主要完成Web服务器端的用户管理、任务职位、简历指导、应聘投简、数据库管理、查询和增加、删除、编辑功能等设计、实现与完善以及整个实验网站的组织建立和测试工作。本文中数据库服务器端采用了MySQL数据库并以先进的JDBC技术进行数据库存取等操作,使Web与数据库紧密联系起来。
关键字:人才、求职
Abstract:
Withthedevelopmentofinformationnetworkandthenetwork
generalization,Internetapplicationsinpeople'slivesmoreandmorewidely.Recruitmentwebsiteprovidesforconvenientway,fast,extensiveforcandidates.Providesaquery,informationretrievalcandidatesfortheconditionsfortherecruitmentunit,therecruitmentofpersonnelintheprimaryworkeasilyandsavethecostofrecruiting.Thedevelopmentofthissystemhasbroughtgreatconvenienceandeconomyfortheapplicantandtherecruitmentcompany,sothattheyremainwithindoorscaneasilycompletethejobsearchandrecruitment.
Establishmentandtestofthissystemismainlytocompleteuser
management,Webserverroles,resumeguidanceforinvestment,Jane,databasemanagement,query,delete,editandaddfunctiondesign,implementationandimprovementoftheorganizationandtheentireexperiment.ThisarticleusesthedatabaseserverMySQLdatabaseanddatabaseaccessoperationbytheadvancedJDBCtechnology,socloselylinkedtoWebanddatabase.Keywords:talent,job
目录
摘要................................................................................................................................1一、绪论........................................................................................................................3
1.1、提出问题........................................................................................................31.2、相关技术........................................................................................................3二、系统概述................................................................................................................3
2.1、系统主要功能................................................................................................32.2、系统主界面....................................................................................................4三、系统需求分析........................................................................................................5
3.1、功能分析:....................................................................................................53.2、技术分析:....................................................................................................6四、系统设计................................................................................................................6
4.1、系统结构设计................................................................................................64.2、系统模块........................................................................................................74.3、数据库设计....................................................................................................74.4、公用模块......................................................................................................114.5、用户注册模块..............................................................................................204.6、用户登录......................................................................................................244.7、职位查找......................................................................................................274.8、发布职位......................................................................................................324.9、应聘职位......................................................................................................324.10、企业管理....................................................................................................35五、总结....................................................................................................................37六、参考文献............................................................................................................38七、致谢....................................................................................................................38
一、绪论
1.1、提出问题
在当前的市场环境中。随着社会的进步和技术的发展,人才的重要性越来越突出,市场的竞争在很大程度上体现在人才的竞争上。因此。找到合适的人才,成为企业提高竞争力的一项关键所在。但是企业要在众多人群中找到合适自己需求的人才是一件相当困难和耗费成本的事情。并非没有人才,而是人才找不到企业而企业也找不到人才。因此如何快速的定位人才或企业成为了求职招聘需要考虑的重要因素。
现在交通越来越便利,跨地域式的人才招聘与求职越来越广泛。然而跨地域供需信息的交互就非常之关键。因此借助目前广泛的互联网推出了网上求职招聘解决方案。借助互联网技术有效的实现异地、高效、低成本的求职与招聘。本系统采用目前较流行的JAVA技术开发,运用MyEclipse+tomcat的开发环境,借助Mysql数据库开发实现本毕业设计系统。
1.2、相关技术
本系统是构建在浏览器/服务器(B/S)模型以及http协议的基础上的,其运作模式可以描述为:请求>处理>应答。
从浏览器提交的请求和数据通过Web服务器给应用程序服务器,由它调用相关应用程序进行处理,再将处理的结果和数据提交给Web服务器,Web服务器把这个网页作为对请求的应答发还给浏览器。
在这个过程中会需要到页面、后台、数据库等。同样要完成这些模块同样要具备相关的技术知识。设计页面有html、jsp、css、javaScript等,数据库有Mysql、Oracle、Mssql、Sqlserver、db2等,后台编写程序有Java、.net、php等。需要从中选出自己需要的技术进行学习和使用。本系统主要应用到的技术有:html、jsp、css+div、javaScript、mysql、java面向编程技术等技术开发。所涉及到的软件和工具有:Myeclipse10.0、NavicatforMysql、Dreamweaver、PS5、MozillaFirefox等。
二、系统概述
2.1、系统主要功能
如:
普通用户注册
①用户注册
代理人注册企业注册管理员登录
②用户登录
求职者登录代理人登录企业登录
③职位发布④职位应聘⑤求职者简历上传⑥企业简历下载⑦企业职位信息管理⑧友情连接
2.2、系统主界面
如图:
(图1)三、系统需求分析
3.1、功能分析:
(1)求职招聘系统是给求职者和企业单位使用的系统,同时网站需要管理
因此用户需要:求职者用户、企业用户、管理员三个最基本的账户。
(2)求职招聘系统既然是供招聘与求职用的,则就需要有职位的发布、查找、应聘等基本功能。
3.2、技术分析:
(1)基于web的求职招聘系统需要在网页上打开与操作,因此需要一个可以开发编写网页的工具和技术。(本文选用jsp、css+div、JavaScript等技术)
(2)用户信息、求职招聘信息、职位信息等信息数据的存储、修改、查询、删除等操作需要数据库和相关操作的技术。(本文选用Mysql数据库)
(3)程序开发需要编程语言和编程工具。(本文选用Java面向对象编程语言和MyEclipse10.0开发工具)
四、系统设计
4.1、系统结构设计
系统结构如图:
招聘系统
登录
注册系统主页
企等登录普通登录
职位查询
企业管理职位信息
应聘职位
信息管理
发布职位
(图2)4.2、系统模块
如图:
普通用户注册
用户注册
用户
用户登录
企业用户注册代理人注册
职位搜索
求职招聘系统
求职
职位查看
应聘职位发布职位
招聘
上传简历
接收简历
修改职位
(图3)4.3、数据库设计
数据库设计需要考虑到各方面的需求,因此需要如下步骤:(1)数据库需求分析
①保存用户信息,因为有普通用户、代理人用户、企业用户三种用户所以要分别创建三个表。包括编号、名称、密码等信息。
②保存职位信息,求职者要查询,招聘企业要发布职位。包括福利、职位类型、等信息。
③保存文件信息,求职者应聘上传简历,招聘企业要查看简历。包括应聘职
位、应聘者名称、简历地址等信息。(2)数据库建表
根据需求所设计的数据库表如下:①普通用户:putong
语句:createtableputong(ptidint(6)notnullprimarykey,ptnamechar(25)notnull,ptpwchar(25)notnull,ptgender
char(20)notnull,ageint(4)notnull,ptemail
char(25),pttelint(20)notnull,skillchar(30)notnull,expchar(200)notnull,ptadrchar(200),);
表如:字段名称ptidptnameptpwptgenderageptemailpttelskillexpptadr数据类型intcharcharcharintcharintcharcharchar长度62525204252030200200可否为空否否否否否可以否否否可以(表4.3-1)备注主键、自增长意义编号用户名密码性别年龄邮箱电话技能工作经验地址②代理人用户:deputy语句:createtableputong(dpid
int(6)notnullprimarykey,dpnamechar(25)not
char(25)notnull,dpjob
null,dppwchar(25)notnull,dppidchar(20)notnull,dpepchar(35)notnull,dptel表如:字段名称dpid数据类型int长度6可否为空否备注int(20)notnull,dpintro
char(225)notnull,);
意义编号主键、自增长dpnamedppwdppiddpepdpjobdpteldpintro
charcharcharcharcharintchar
252520253020225
否否否否否否否
(表4.3-2)用户名密码身份证号代理企业职位联系电话简介
③企业用户:enterprise语句:createtableputong(epidnull,eppw
int(6)notnullprimarykey,epnamechar(50)not
char(25)notnull,epbschar(25)notnull,epscalechar(50)notnull,eptel
char(25)notnull,epemchar(20),eplmchar(25),eplmtelchar(20),epadrchar(200)notnull,epintro表如:字段名称epidepnameeppwepbsepscaleeptelepemeplmeplmtelepadrepintro数据类型intcharcharcharcharcharcharcharcharcharchar长度65025255025202520200225可否为空否否否否否否可以可以可以否否(表4.3-3)④职位:putask
char(255)notnull,);
备注主键、自增长意义编号企业名密码企业类型企业规模企业电话企业邮箱联系人联系人电话地址简介语句:createtableputong(pidint(6)notnullprimarykey,p_epnamechar(50)not
null,plevelchar(25)notnull,stimechar(25)notnull,etimechar(25)notnull,re_job
char(50)notnull,re_nuchar(6)notnull,salarychar(20)notnull,welfarechar(200)notnull,industrychar(50)notnull,padrchar(50)notnull,demandchar(225)notnull,deschar(225)notnull,sitchar(225)notnull,);表如:字段名称pidp_epnameplevelstimeetimere_jobre_nusalarywelfareindustrypadrdemanddessit数据类型intcharcharcharcharcharintcharcharcharcharcharcharchar长度650252525506202005050225225225可否为空否否否否否否否否否否否否否可以(表4.3-4)备注主键、自增长意义编号企业名级别发布时间结束时间所招职位所需人数工资待遇所属行业工作地点要求职位简述补充说明⑤文档:fileul
语句:createtableputong(fidint(6)notnullprimarykey,fnamechar(50)notnull,funamechar(50)notnull,f_jobchar(50)notnull,f_epnamechar(50)notnull,ftypechar(50)notnull,fadrchar(50)notnull,);表如:字段名称fidfname数据类型intchar长度6100可否为空否否备注主键、自增长意义编号文件名funamef_jobf_epnameftypefadr
charcharcharcharchar
25255025225
否否否否否
(表4.3-5)上传人相关职位相关公司文件类型地址
4.4、公用模块
(1)数据库连接JDBC
连接数据库与后台代码,实现数据的操作交互。代码如下:packagecom.jdbcutil;//添加包
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassJDBCUtil{//创建ConnectionprivateConnectionconn;//添加驱动类
privatefinalStringdriver=\"com.mysql.jdbc.Driver\";//连接地址
privatefinalStringurl=\"jdbc:mysql://localhost:3306/qiuzhao\";//用户名和密码
privatefinalStringuser=\"root\";privatefinalStringpassword=\"root\";//连接数据库
publicConnectiongetConnection(){
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,password);
}catch(Exceptione){
e.printStackTrace();}
returnconn;}
//关闭数据库publicvoidclose(){
if(conn!=null){
try{
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblocke.printStackTrace();}}}}
(2)页面头部
由于本系统为了方便用户操作与识别古页面头部采用了基本相同的基本相同格式代码,使代码模块化,页面头部代码如下:
①配置块代码:<%
Stringpath=request.getContextPath();StringbasePath=
request.getScheme()+\"://\"+request.getServerName()+\":\"+request.getServerPort()+path+\"/\";
%>
a{text-decoration:none}.all{ width:100%;}#header{ height:100px;}#htitle{ height:25px;font-size:12px; background-image:url(image/htitle.jpg)}#htmain{ width:1024px;height:24px; margin-right:0px;}#htmaina{ color:#003399}#htl{ margin-left:500px;}#hyn{ margin-left:400px;} #time{ width:200px;color:#000088;font-size:14px;text-align:center;float:right;}#h2{ height:75px;width:1024px;}#mark{ width:150px;height:75px; background-image:url(image/mark.jpg);float:left;}#menu{ width:720px;height:75px; margin-left:134px;float:right; border-bottom:0px;}#menumain{ height:30px;margin-top:43px;margin-left:30px;} #menumainform{ margin-bottom:0px;}#menumaina{ height:30px;margin-left:25px;margin-bottom:0px; font-family:\"楷体_GB2312\";font-size:28px; font-weight:bolder;color:#040192;} ③javascript代码块 $(document).ready(function(){ /*显示已登录用户*/ varusername=$(\"#username\").html();if(username!=null&&username!=\"\"){ $(\"#login_reg\").hide();}else{ $(\"#welcome\").hide();} /*鼠标移动动画*/ $(\".hover\").hover(function(){ $(this).css(\"color\ },function(){ $(this).css(\"color\ }); $(\".d\").hover(function(){ $(this).css(\"background\#8D91D1\"); },function(){ $(this).css(\"background\}); }); $(function(){ $(\"#button\").click(function(){varre_job=$(\"#text\").val(); window.location.href=\"putask_en?action=findjob&re_job=\"+re_job;}); }); // functionshowtime(){varnow=newDate(); varyear=now.getFullYear();varmonth=now.getMonth()+1;varday=now.getDate();varhours=now.getHours();varminutes=now.getMinutes();varseconds=now.getSeconds();varweekday=newArray(7);weekday[0]=\"星期日\";weekday[1]=\"星期一\";weekday[2]=\"星期二\";weekday[3]=\"星期三\";weekday[4]=\"星期四\";weekday[5]=\"星期五\";weekday[6]=\"星期六\"; time=year+'/'+month+'/'+day +'/'+hours+':'+minutes+':'+seconds+\" \"+weekday[now.getDay()]; vardiv1=document.getElementById('time');div1.innerHTML=time;}functionletstart() {taskId=setInterval(showtime,500);} window.onload=function(){letstart();}; ④div代码块
服务热线:
(3)页面脚部 ①css代码块 class=\"xian\"src=\"image/xian.jpg\"style=\"height:2px;width:720px\" .footer{ width:inherit;height:40px;}.fmain{ width:1024px;}.fmainp{ margin-top:2px;margin-bottom:3px} .fmaina{ font-size:12px;color:#003399}.fmainimg{ margin-top:3px;margin-left:5px; margin-right:5px;} ②div代码块 @找工作,去求招。网罗天下求职高招。求招网真诚为您服务。@ @版权所有: (4)web.xml文件 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd\"> 4.5、用户注册模块 用户注册分为三种注册:普通用户注册(个人注册)、代理人注册、企业用户注册。为了方便用户使用故将三种注册设计在了一个页面中,通过按钮来进行选择。界面如下图: (图4)方法代码如下: 普通用户注册: publicPutongaddOnePutong(Stringptname,Stringptpw,Stringptpid,String ptgender,intage,Stringptemail,intpttel,Stringskill,Stringexp,Stringptadr){conn=ju.getConnection(); Stringsql=\"select*fromputongwhereptname=?\"; Stringsql1=\"insertintoputong(ptname,ptpw,ptpid,ptgender,age,ptemail,\" + \"pttel,skill,exp,ptadr)values(?,?,?,?,?,?,?,?,?,?)\"; try{ ps=conn.prepareStatement(sql);ps.setString(1,ptname);rs=ps.executeQuery(); //验证用户名是否已存在if(rs.next()){ System.out.println(\"用户已存在\");}else{ ps=conn.prepareStatement(sql1);ps.setString(1,ptname);ps.setString(2,ptpw);ps.setString(3,ptpid);ps.setString(4,ptgender);ps.setInt(5,age); ps.setString(6,ptemail);ps.setInt(7,pttel);ps.setString(8,skill);ps.setString(9,exp);ps.setString(10,ptadr);ps.executeUpdate();} ps.close();rs.close();conn.close(); }catch(Exceptione){ //TODO:handleexception} returnnull;} 代理人注册: publicDeputyaddOneDeputy(Stringdpname,Stringdppw,Stringdppid,String dpep,Stringdpjob,intdptel,Stringdpintro){conn=ju.getConnection(); //Stringsql=\"select*fromdeputywheredpname=?\"; Stringsql1=\"insertintodeputy(dpname,dppw,dppid,dpep,dpjob, dptel,\"\"dpintro)values(?,?,?,?,?,?,?)\"; try{ ps=conn.prepareStatement(sql1);ps.setString(1,dpname);ps.setString(2,dppw);ps.setString(3,dppid);ps.setString(4,dpep);ps.setString(5,dpjob);ps.setInt(6,dptel); ps.setString(7,dpintro); ps.executeUpdate();rs.close();ps.close();conn.close(); }catch(Exceptione){ //TODO:handleexception} returnnull;} 企业注册: publicEnterpriseaddOneEnterprise(Stringepname,Stringeppw,Stringepbs,String epscale,Stringeptel,Stringepem,Stringeplm,inteplmtel, Stringepadr,Stringepintro){conn=ju.getConnection(); Stringsql=\"select*fromenterprisewhereepname=?\"; Stringsql1=\"insertintoenterprise(epname,eppw,epbs,epscale,eptel,epem, eplm,eplmtel,epadr,epintro)value(?,?,?,?,?,?,?,?,?,?)\"; try{ ps=conn.prepareStatement(sql);ps.setString(1,epname);rs=ps.executeQuery();//验证用户是否存在if(rs.next()){ System.out.println(\"用户已存在\");}else{ System.out.println(\"fenghuangyufei\");ps=conn.prepareStatement(sql1);ps.setString(1,epname);ps.setString(2,eppw);ps.setString(3,epbs);ps.setString(4,epscale);ps.setString(5,eptel);ps.setString(6,epem);ps.setString(7,eplm);ps.setInt(8,eplmtel);ps.setString(9,epadr);ps.setString(10,epintro);inta=ps.executeUpdate();System.out.println(a);} //关闭 rs.close();ps.close();conn.close(); }catch(Exceptione){ //TODO:handleexception} returnnull;} 4.6、用户登录 用户登录界面的设计类似于注册界面,同样把几个用户类型通过选择在同一个界面登录实现。界面如下图: (图5)登录需要检测是什么类型用户、验证用户是否存在、验证用户名与密码是否正确,方法代码如下: publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{request.setCharacterEncoding(\"utf-8\"); Stringleixing=request.getParameter(\"leixing\");Stringusername=request.getParameter(\"username\");Stringpassword=request.getParameter(\"password\"); //类型为普通用户 if(leixing!=null&leixing.equalsIgnoreCase(\"putong\")){ pt=newPutong(); ptse=newPutongService(); pt=ptse.loginPutong(username,password);//判断用户是否存在if(pt!=null){ request.getSession().setAttribute(\"username\pt.getPtname());try{ request.getRequestDispatcher(\"Home.jsp\").forward(request, response); }catch(Exceptione){ e.printStackTrace();}}else{ request.getSession().setAttribute(\"tishi\\"用户名或密码错误\");try{ request.getRequestDispatcher(\"Userlogin.jsp\").forward(request, response); }catch(Exceptione){ e.printStackTrace();}}} //类型为企业用户 elseif(leixing!=null&leixing.equalsIgnoreCase(\"enterprise\")){ ep=newEnterprise(); epse=newEnterpriseService(); ep=epse.loginEnterprise(username,password);if(ep!=null){ request.getSession().setAttribute(\"ep\ request.getSession().setAttribute(\"username\ep.getEpname());fu=newFileul(); fus=newArrayList fus=fuse.findFileulByFepname(ep.getEpname());request.getSession().setAttribute(\"fus\put=newPuTask(); puts=newArrayList puts=putse.findPuTaskByEpname(ep.getEpname(),100);request.getSession().setAttribute(\"putsry{ request.getRequestDispatcher(\"Eph.jsp\").forward(request, response); }catch(Exceptione){ e.printStackTrace();} }else{ request.getSession().setAttribute(\"tishi\\"用户名或密码错误\");try{ request.getRequestDispatcher(\"Userlogin.jsp\").forward(request, response); }catch(Exceptione){ e.printStackTrace();}} } //类型为代理人用户 elseif(leixing!=null&leixing.equalsIgnoreCase(\"deputy\")){ dpse=newDeputyService();dp=newDeputy(); dp=dpse.loginDeputy(username,password);//判断用户是否存在 if(dp!=null){ request.getSession().setAttribute(\"username\dp.getDpname());try{ request.getRequestDispatcher(\"Home.jsp\").forward(request, response); }catch(Exceptione){ e.printStackTrace();}}else{ request.getSession().setAttribute(\"tishi\\"用户名或密码错误\");try{ request.getRequestDispatcher(\"Userlogin.jsp\").forward(request, response); }catch(Exceptione){ e.printStackTrace();}}} } 4.7、职位查找 职位查找是求职招聘系统的核心部分。起着在招聘企业和求职者之间的桥梁用。用户可以通过不同条件限制,快速准确的查找到自己想要的工作职位。给功能模块在系统的大部分界面都有。下面就以一个专门的职位查找界面为例。界面如下图: (图6)核心方法后台代码如下: //职位查找 publicPuTaskfindPuTask(Stringp_epname,Stringre_job){ conn=ju.getConnection(); Stringsql=\"select*fromputaskwherep_epname=?andre_job=?\";try{ ps=conn.prepareStatement(sql); ps.setString(1,p_epname);ps.setString(2,re_job);rs=ps.executeQuery();if(rs.next()){ put=newPuTask( rs.getInt(\"pid\"), rs.getString(\"p_epname\"),rs.getString(\"plevel\"),rs.getString(\"stime\"),rs.getString(\"etime\"),rs.getString(\"re_job\"),rs.getInt(\"re_nu\"),rs.getString(\"salary\"),rs.getString(\"welfare\"),rs.getString(\"industry\"),rs.getString(\"padr\"),rs.getString(\"demand\"),rs.getString(\"des\"),rs.getString(\"sit\"));} rs.close(); }catch(Exceptione){ e.printStackTrace();}returnput;} //根据职位查找 publicList List Stringsql=\"select*fromputaskwherere_job=?\";try{ ps=conn.prepareStatement(sql);ps.setString(1,re_job); rs=ps.executeQuery();while(rs.next()&n>0){ put=newPuTask( rs.getInt(\"pid\"), rs.getString(\"p_epname\"),rs.getString(\"plevel\"),rs.getString(\"stime\"),rs.getString(\"etime\"),rs.getString(\"re_job\"),rs.getInt(\"re_nu\"),rs.getString(\"salary\"),rs.getString(\"welfare\"),rs.getString(\"industry\"),rs.getString(\"padr\"),rs.getString(\"demand\"),rs.getString(\"des\"),rs.getString(\"sit\")); puts.add(put);n--;} }catch(Exceptione){ //TODO:handleexception} returnputs; } //根据企业名查找 publicList List Stringsql=\"select*fromputaskwherep_epname=?\";try{ ps=conn.prepareStatement(sql);ps.setString(1,p_epname); rs=ps.executeQuery();while(rs.next()&n>0){ put=newPuTask( rs.getInt(\"pid\"), rs.getString(\"p_epname\"),rs.getString(\"plevel\"),rs.getString(\"stime\"),rs.getString(\"etime\"),rs.getString(\"re_job\"),rs.getInt(\"re_nu\"),rs.getString(\"salary\"),rs.getString(\"welfare\"), rs.getString(\"industry\"),rs.getString(\"padr\"),rs.getString(\"demand\"),rs.getString(\"des\"),rs.getString(\"sit\")); puts.add(put);n--; } }catch(Exceptione){ //TODO:handleexception} returnputs; } //根据所属行业查找 publicList List Stringsql=\"select*fromputaskwhereindustry=?\";try{ ps=conn.prepareStatement(sql);ps.setString(1,industry); rs=ps.executeQuery();while(rs.next()&n>0){ put=newPuTask( rs.getInt(\"pid\"), rs.getString(\"p_epname\"),rs.getString(\"plevel\"),rs.getString(\"stime\"),rs.getString(\"etime\"),rs.getString(\"re_job\"),rs.getInt(\"re_nu\"),rs.getString(\"salary\"),rs.getString(\"welfare\"),rs.getString(\"industry\"),rs.getString(\"padr\"),rs.getString(\"demand\"),rs.getString(\"des\"),rs.getString(\"sit\")); n--; puts.add(put);}if(n>0){ while(n>0){ put=newPuTask();n--; puts.add(put);} } }catch(Exceptione){ //TODO:handleexception} returnputs; } //根据工作地点查找 publicList List Stringsql=\"select*fromputaskwherepadr=?\";try{ ps=conn.prepareStatement(sql);ps.setString(1,padr); rs=ps.executeQuery();while(rs.next()&n>0){ put=newPuTask( rs.getInt(\"pid\"), rs.getString(\"p_epname\"),rs.getString(\"plevel\"),rs.getString(\"stime\"),rs.getString(\"etime\"),rs.getString(\"re_job\"),rs.getInt(\"re_nu\"),rs.getString(\"salary\"),rs.getString(\"welfare\"),rs.getString(\"industry\"),rs.getString(\"padr\"),rs.getString(\"demand\"),rs.getString(\"des\"),rs.getString(\"sit\")); n--; puts.add(put);} }catch(Exceptione){ //TODO:handleexception} returnputs;} 4.8、发布职位 发布职位分为企业发布和代理人发布,但模式和方法基本相同,都是以表单的形式提交输入的数据储存在数据库中,供用户查询。故就以代理人发布职位为例。界面如下图: (图7)4.9、应聘职位 应聘职位模块分为选择职位和应聘提交信息两部分构成。选择职位是精确地查找到某一个职位的详细信息。界面如下图: (图8)然后点击立即应聘按钮。会跳转到提交应聘者信息的界面,在该界面求职者需要填写一些信息和上传简历的电子档。界面如下图: (图9)重要部分代码(文件上传部分)为: publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{request.setCharacterEncoding(\"utf-8\");Stringfname=\"\"; Stringfuname=request.getParameter(\"funame\");Stringf_job=request.getParameter(\"f_jop\");Stringftype=\"应聘\"; Stringf_epname=request.getParameter(\"f_epname\");Stringfadr=\"\"; FileItemFactoryfactory=newDiskFileItemFactory(); ServletFileUploadupload=newServletFileUpload(factory);try{ Listitems=upload.parseRequest(request);Iteratoriter=items.iterator();while(iter.hasNext()){ FileItemitem=(FileItem)iter.next();//判断是否表单元素if(item.isFormField()){ Stringfieldname=item.getFieldName();Stringname=item.getString(\"utf-8\");if(fieldname.equals(\"f_epname\")){ f_epname=name;} elseif(fieldname.equals(\"funame\")){ funame=name;} elseif(fieldname.equals(\"f_job\")){ f_job=name; } System.out.println(fieldname+\"-->\"+name);}else{ fname=item.getName(); fadr=\"D:\\\d\\\\\"+funame+\"---\"+fname;//文件名称 /*StringfieldName=item.getFieldName();//file的name属 性 StringcontentType=item.getContentType();//文件类型 booleanisInMemory=item.isInMemory();//是否在内存中longsizeInBytes=item.getSize();//文件的大小 */ FileuploadedFile=newFile(fadr); /*System.out.println(\"name属性-->\"+fieldName);System.out.println(\"文件名称-->\"+fname);System.out.println(\"文件类型-->\"+contentType); System.out.println(\"是否在内存中-->\"+isInMemory);System.out.println(\"文件的大小-->\"+sizeInBytes);*/try{ item.write(uploadedFile);}catch(Exceptione){e.printStackTrace();}} } System.out.println(\"***\"+funame+\"***\"+f_job+\"***\"+f_epname+\"***\"+ftype+\"***\"); fuse=newFileulService(); fuse.upLoadFileul(fname,funame,f_job,f_epname,ftype,fadr);}catch(FileUploadExceptione){ e.printStackTrace();} } 4.10、企业管理 企业管理主要是用于管理企业在本求职招聘系统的一些与该企业有关的信息。如:修改企业资料、查看招聘情况、发布职位信息、管理已发布的职位等。网页界面如下图:(文档由风行播放器http://www.funsion.net/整理) (图10)后台主要技术难点(文件下载)代码如下://下载 public HttpServletResponse download(String fadr,String f_job,HttpServletRequest request,HttpServletResponseresponse){try{ //path是指欲下载的文件的路径。Filefile=newFile(fadr);//取得文件名。 Stringfilename=f_job+file.getName();//取得文件的后缀名。 //Stringext=filename.substring(filename.lastIndexOf(\".\")+ 1).toUpperCase(); //以流的形式下载文件。 InputStream FileInputStream(file)); fis=newBufferedInputStream(new byte[]buffer=newbyte[fis.available()];fis.read(buffer);fis.close();//清空responseresponse.reset(); //设置response的Header response.addHeader(\"Content-Disposition\\"attachment;filename=\"+ newString(filename.getBytes(\"utf-8\"),\"ISO-8859-1\")); response.addHeader(\"Content-Length\\"\"+file.length()); OutputStream BufferedOutputStream(response.getOutputStream()); response.setContentType(\"application/octet-stream\");toClient.write(buffer);toClient.flush();toClient.close();}catch(IOExceptionex){ ex.printStackTrace();} returnresponse;} toClient= new 五、总结 随着社会的发展,人们对社会活动的要求越来越便捷化,越来越简单化。对求职招聘也是这样。而传统的招聘灵活性不足,而网上招聘则能够更加符合人们的要求。通过几个月的学习、分析、设计。终于设计出了本系统:《基于web的求职招聘系统》。在本系统是以职位为核心,求职者、招聘企业、代理人等紧紧地围绕着职位紧紧联系在了一起。企业和代理人和代理人能够发布职位、求职者可以根据不同条件查找和应聘职位。同时本系统操作简单,界面清晰舒适,操作 流程清晰明朗便于操作和使用。而且本系统具有一定的可移植性,便于后期的升级与维护。 在整个设计过程中遇到了很多的问题,得到了很多老师和同学的帮助。在这个过程中我深深的体会到了: (1)在让一个构思慢慢的变成现实这个过程中,我体会到了知识用于实践大重要性。有很多构思,起初感觉应该并不难,但是到了实际操作中就会出现这样或那样的为题。(暴风影音2014:http://www.baofeng5.net/) (2)在这个过程中我感受到了网络的重要性。一个人的知识是有限的,因此在设计的过程中有很多问都是通过网络搜索和提问解决的。 (3)在设计的过程中我深刻的感觉到了需求分析和整体架构认识的重要性。在开发设计中遇到了好几次因前期需求分析不到位而从前台到数据库的整体大修改,浪费了大量的时间。 总之,通过这次设计,我深刻体会到要做好一个完整的事情,需要有系统的思维方式和方法,对待一个新的问题,要耐心、要善于运用已有的资源来充实自己。同时我也深刻的认识到,在对待一个新事物时,一定要从整体考虑,完成一步之后再作下一步,这样对于系统而言才能更加有效。 六、参考文献 [1]袁庆宏、刘昌苹.国内外网络招聘行业现状分析。[2]张熠等编著.零基础学Html+CSS(第2版).北京:机械工业出版社,2012.3。[3]常建功等编著,零基础学java(第3版).北京:机械工业出版社,2012.2。[4]孙卫琴编著,Java面向对象编程·电子工业出版社,2006.7。[5]李刚编著,疯狂Ajax讲义·电子工业出版社,2009.4。[6]柏亚军.JSP编程基础及应用实例集锦.北京:人民邮电出版社,2001[7]周影.网络编程语言JSP实例教程.北京:电子工业出版社,2003[8]陈海山.深入JavaServlet网络编程.北京:清华大学出版社,2002.[9]简朝阳.MYSQL性能调优与架构设计.北京:电子工业出版社,2007[10]李亮.MYSQL高级设计与实现.北京:清华大学出版社,2007[11]赵国宏,朱新梅.论网络求职招聘的现状及其发展趋势.中国远程教育,2002第五期七、致谢 在老师和同学们的帮助下,我所开发的《基于web的求职招聘系统》终于得到顺利的完成与实现。 首先感谢所有的老师。是他们传授给我了宝贵知识,是他们使我学会了奋斗与拼搏,同样是他们使我懂得了坚强与自信。他们在我的大学期间付出了很多的心血与精力,在我的求职招聘道路中,他们孜孜不倦的教诲和鼓舞是促进我不断进取的重要精神动力。 其次我要感谢我们班和我一起学习java的同学们。他们在求职招聘上给了我很多帮助,帮我解决了不少的疑难问题,同时使我了解到了许多相关技术问题。对本课题的研究她们也提出了一些宝贵的意见,使我获益匪浅。 因篇幅问题不能全部显示,请点此查看更多更全内容/>
src=\"image/shuxian.jpg\"/>
src=\"image/shuxian.jpg\"/>
src=\"image/shuxian.jpg\"/>
src=\"image/shuxian.jpg\"/>
src=\"image/shuxian.jpg\"/>
src=\"image/shuxian.jpg\"/>