《基于J2EE的简历投递管理系统的设计与实现设计说明书.doc》由会员分享,可在线阅读,更多相关《基于J2EE的简历投递管理系统的设计与实现设计说明书.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、设计题目:基于J2EE的简历投递管理系统的设计与实现Resume delivery&management systembased on J2EECollege:Fujian Agriculture and Forestry UniversitySpecialty and Grade:Software Engineering 2008Number:070481031Name:Huang jun Advisor:Professor Huang Shiguo Submitted time: 2012.4.2319 / 23毕业设计(论文)原创性声明和使用授权说明原创性声明本人重承诺:所呈交的毕业设计
2、(论文),是我个人在指导教师的指导下进行的研究工作与取得的成果。尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得与其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。作 者 签 名:日 期:指导教师签名: 日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利
3、为目的前提下,学校可以公布论文的部分或全部容。作者签名: 日 期:目 录摘要1Abstract2第一章引言31.1 开发背景31.11电子简历系统的发展历史31.2 课题研究的目的与意义4第二章:系统需求分析42.1 需求概述42.1.1 系统设计目标42.2 需求描述52.2.1 系统的总需求目标52.2.2 数据需求52.2.3 功能性需求概述62.2.4 约束62.2.5 系统模型6第三章:系统设计93.1 概要设计93.1.1 页面迁移图93.2 数据库设计103.2.1 数据流程103.2.2 数据表说明113.3 详细设计113.3.1 单一的Servlet编写113.3.2 系统
4、详细设计14(1) 需求概述14(2) 程序设计15(3) 页面控制模块设计思路16(4) 数据访问模块设计思路17(5) 辅助用户输入:自动格式化日期功能的实现17第四章结论18致、参考文献18摘要本系统试图建立一种电子简历的收集、处理和查询的方式,用数据库的方式代替传统的文本方式。为简历投递者提供了在线填写简历的机会,更重要的是它为人力资源工作者提供了对简历的操作平台,他们可以查看已经登陆的简历,处理或者删除简历,并且设置简历的过期时间等。采用JSP+SERVLET开发。为了区分普通用户和后台管理员,首先要做一个首页,包含两个,一个是求职者登录简历的,另一个是工作人员登陆系统的。对于工作人
5、员来说,进入系统进行操作之前,必须首先登陆。登陆页面包括一个用户名和一个密码的输入框。一旦登陆成功,进入系统,则应该看到一个有页面导航系统的页面。拟解决的关键问题: 、 在不使用现成框架的情况下,尝试用一个统一的Servlet来处理页面的请求,然后根据页面提交数据的不同来决定调用哪些业务模块;、 如何根据页面提交表单中的数据,将其转接到对应的业务处理模块;尝试通过JavaScript自动转换日期格式。关键词:电子简历;JSP;SERVLETAbstractThe system attempts to establish an online resume collection, processi
6、ng and query system, database way to replace the traditional text. To resume delivery to provide online resume writing opportunities, it is more important for human resource professionals to resume operation platform, they can view a entered resume, or delete a resume, resume and set expiration time
7、. Using the JSP+SERVLET technic.In order to distinguish between ordinary users and administrators, first of all to make a home page, contains two links, a job seekers log CV link, another is the work of personnel landing system link. For the staff, to enter the system operation before, must first la
8、nding. Landing page includes a username and a password input box. Once logged in, enter the system, should see a page of page navigation system.The key problems to solve:Without the use of readily available case frame, try to use a unified Servlet to handle the page request, then according to the pa
9、ge to submit data to the different decides to call what business module;According to the page to submit the data in the form, its transfer to the corresponding service processing module;Using JavaScript automatic conversion to format date.Key words: online resume system; JSP; SERVLET1 引言1.1 开发背景在求职和
10、招聘的过程中,唯一的交流工具就是简历。求职者拿着打印好的简历,满怀期待的在一家家公司之间来回奔波,而招聘方则面对着一堆堆的简历发愁不知道如何从堆积如山的简历中找到适合的简历,而且在浏览简历的过程中,往往因为简历的数量、简历的格式导致耗费了大量时间或者错过了合适的简历,这对于求职者和招聘方来说都是一种损失。正是基于这种需求,我们可以建立一种电子简历的收集、处理和查询方式,用数据库的方式代替传统的文本方式。主要面向企业的人力资源部,它为简历投递者提供了在线填写简历的机会,更重要的是它为人力资源工作者提供了对简历的操作平台,他们可以查看已经登陆的简历,处理或者删除简历,并且设置简历的过期时间等。1.
11、11电子简历系统的发展历史信息作为生产力中最活跃的因素,很早就在人类经济生活中发挥着不可替代的作用,但把信息纳入企业经营管理系统中高效处理和应用是在计算机发明以后的50年代末。目前人们所提到的信息管理系统,通常是指以计算机为工具,对管理信息进行收集、存贮、检索、加工和传递,使其应用于组织机构与企业管理领域的“人机系统”,该系统是70年代初“后工业经济”时代的产物,在企业管理信息系统在其发展的初期,是单一的人机系统,系统功能简单,效率低,对管理的作用有限。进入20世纪80年代末,随着计算机网络和通信技术的大力发展,企业进入网络化、信息化的高速发展时期。世界发达国家已建立起了完善的先进的管理信息系
12、统体系,在其社会经济发展领域中发挥着巨大的作用。90年代初期,简历信息主要还是以纸质简历的方式进行投递。纸质简历虽说是一种传统的方式,比较直接了当,然而有其三大弱点。其一,不易保存,纸质简历容易丢失,而且纸质不一,有大有小,对其进行归档、统一储存很不方便;其二,信息杂乱,不同人所写简历包含字段不一致,字段先后顺序也不一致,没有统一的规格,给阅读者带来不必要的困扰;其三,投递效率低,传递纸质简历所耗费的人力物力,有时候甚至要当成机会成本来考虑:投个简历这么麻烦,还不一定有面试机会,投还是不投呢?到21世纪初,逐渐出现了线上投递简历系统,主要是一些企业的上出现了人才招聘的栏目,其中包含简历编纂,在
13、线投递等功能。给求职者带来了极大的便利,同时也使企业招聘体系的运作效率得到极大的提升。电子简历框架统一,求职者往往可以按照页面的提示,往空白处填入简历容即可,因此电子简历系统受到很好的评价。从那时起,电子简历系统成为很多企业选择的一种工具。也开始成为应聘者与企业传递信息的首要选择。1.2 课题研究的目的与意义信息社会的高科技,商品经济化的高效益,使计算机的应用已普与到经济和社会生活的各个领域。计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。为了适应现代社会人们高度强烈的时间观念,传统管理系统软件为管理人员带来了极大的方便。本文基于mysql数据库和JAVA语言,开发
14、了企业简历管理系统,该系统界面简洁友好,操作简单,可以大大的提高人事管理的效率,减少企业在简历整理和管理上花费的人力和财力。本系统可供企业管理人员查询,修改企业的人才库信息。企业新聘人员,搜索人才库信息,只需与时登陆系统进行查看、审批,即可以达到企业的目的。同时,本文使用Myeclipse9.0开发此简历投递管理系统系统,使得企业的简历管理工作更加系统化、规化、自动化,从而达到提高企业简历管理的效率。企业简历管理系统能够对普通用户简历登陆、工作人员登陆、后台简历登陆、简历整理、过期简历、简历查询、系统设置、帮助等功能。人事与简历信息的变更,必须需要管理人员已管理员身份登录,保证了系统的安全性。
15、系统的总体任务是使企业管理人员可以轻松快捷地完成对企业简历审阅和管理的任务。初步实验表明,本系统可基本满足小中型企业的部分需求,并切实提高企业的人才简历库管理效率,节省了企业的管理支出,从而具有一定的经济效益。2 系统需求分析2.1 需求概述2.1.1 系统设计目标人事管理系统表 21 需求列表需求对电子简历进行收集、处理和查询用户求职应聘者企业管理人员用户所做的事普通用户简历登陆工作人员登陆后台简历登陆简历整理过期简历简历查询系统设置帮助、退出用户需求直接登录简历查看已经登陆的简历处理或者删除简历设置简历的过期时间现在已经存在的有最好的解决方案用mysql数据库来实现,用语言是JAVA来开发
16、最好方案的理由选mysql是因为系统简单,mysql成本很小,足够用,同时也可以良好的和java配合。用JAVA语言是因为我对它比较熟悉。综上所述,本系统试图建立一种电子简历的收集、处理和查询的方式,用数据库的方式代替传统的文本方式。为简历投递者提供了在线填写简历的机会,更重要的是它为人力资源工作者提供了对简历的操作平台,他们可以查看已经登陆的简历,处理或者删除简历,并且设置简历的过期时间等。采用JSP+SERVLET的MVC模式开发。通过以上分析,可以看出,从功能上来说,简历资源中心系统大概分成如下几个模块。、 普通用户简历登陆;、 工作人员登陆;、 后台简历登陆;、 简历整理;、 过期简历
17、;、 简历查询;、 系统设置;、 退出、帮助。2.2 需求描述2.2.1系统的总需求目标在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的管理系统,实现高效的计算机信息管理系统。2.2.2数据需求(1) 数据录入和处理的准确性和实时性数据的输入是否准确,是数据处理的前提,错误的输入会导致系统异常甚至崩溃,从而使系统失去工作的意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速
18、的处理数据。(2) 数据的安全性本系统为企业人力资源部门设计,是企业收集来的人力资源信息,因此只有特定的管理者才能进入后台管理从而对数据实现增、删、改、查等操作。未获授权人员不能进入该系统。而匿名用户只能够登陆简历,功能有限。(3) 数据的备份投入使用后,本系统需要定期对数据库中的数据,进行全部或新增部分的备份工作,以保证在硬件出现故障,或人为原因导致无法运行时是可以快速与时的还原到原来的正常状态。2.2.3 功能性需求概述(1)普通用户简历登陆(2)工作人员登陆(3)后台简历登陆(4)简历整理以与过期简历设置(5)简历查询(6)系统设置 (7)退出、帮助2.2.4 约束操作系统: Windo
19、ws xp/windows 7/Linux 数据库系统: MySql Server 5.52.2.5 系统模型(1) 用例模型(2) 参与者汇总求职者;人力资源工作人员(3) 用例汇总登陆;简历登录;简历整理;过期简历;简历查询;系统设置(4) 顶层用例图图 2-1 顶层用例图(5) 用例描述表 22 用例列表1用例编号001用例名称登陆触发事件人力资源工作人员点击进入管理入口 主成功场景步骤活动1人力资源工作人员在index.htm点击管理入口2显示对话框,要求输入用户名密码3若用户名密码正确,则进入系统4否则给出错误提示信息表 23 用例列表2用例编号002用例名称简历登录触发事件求职者在
20、index.htm点击登录简历或者管理员登陆后点击登录简历主成功场景步骤活动1管理员登陆后点击登录简历2根据要求填写简历信息,红色字段为必填项3如果必填项未填时点击登录,则弹出错误信息4登录成功的话弹出“登录成功”的信息5单击“重写”可以清空表格,重新填写表 24 用例列表3用例编号003用例名称简历整理触发事件人力资源工作人员登录后点击导航栏的“简历整理”按钮 主成功场景步骤活动1显示未整理简历列表,并在最前端显示未整理简历的数目2点击对应条目进入简历详细信息页面processDetail.jsp3输入简历有效期后再点击登录,简历会进入已整理简历当中,在简历整理模块不复存在,但可以通过“简历
21、查询”模块找到。4管理员点击抛弃可以对不合格简历进行抛弃处理,并将弹出警告窗口,询问是否确定删除。表 25 用例列表4用例编号004用例名称处理过期简历触发事件人力资源工作人员登录后点击导航栏的“过期简历”按钮 主成功场景步骤活动1显示过期简历列表,并在最前端显示过期简历的数目2输入新失效期后再点击登录,简历会从过期简历列表中移除,但可以通过“简历查询”模块找到。3管理员点击抛弃可以对不合格简历进行抛弃处理,并将弹出警告窗口,询问是否确定删除。表 26 用例列表5用例编号005用例名称简历查询触发事件管理员,检索符合某一条件的简历信息主成功场景步骤活动1人力资源工作人员登录后点击导航栏的“简历
22、查询”按钮2管理员输入查询条件(,性别,专业等)3系统显示符合条件的简历的信息表 27 用例列表6用例编号006用例名称系统设置触发事件人力资源工作人员登录后点击导航栏的“系统设置”按钮主成功场景步骤活动1显示“系统默认每页记录条数”和“您当前设置为每页条数”2可以输入新的每页记录条数(不能超过2位数) 3 系统设计3.1 概要设计3.1.1 页面迁移图根据用例图,本系统具有两种用户,一个是应聘者,另一个是人力资源工作人员,下面针对这两种用户设想一下使用这个系统的过程。应聘者进入首页,单击“简历登录”,进入用户登录页面,输入用户名和密码,进入系统。工作人员进入首页,单击“管理入口”,进入用户登
23、录页面,输入用户名和密码,进入系统。工作人员进入系统后将面对个功能模块,不过这个模块之间没有直接联系。l 单击“简历登录”导航,进入简历登录模块。输入简历信息,单击“登录”按钮,简历输入数据库。l 单击“简历整理”导航,进入简历整理模块。页面显示出所有需要整理的简历,用户单击页面跳转按钮可以在一览页面之间的多页之间跳转,在一览表格中单击对应简历,页面迁移到简历详细页面,可以对该简历进行相关操作。l 单击“过期简历”导航,进入过期简历模块。页面显示出所有过期的简历,用户同样可以在一览页面的多页之间跳转,在一览表格中单击对应简历,页面迁移到过期简历的详细信息页面,可以进行相关操作。l 单击“简历查
24、询”导航,进入简历查询模块。首先是查询条件输入页面,输入查询条件以后单击“查询”按钮,可以进入查询结果一览页面,在查询结果一览页面同样可以在多页之间跳转,在一览表格中单击对应简历,页面迁移到对应的简历详细信息页面。l 单击“系统设置”导航,进入系统设置模块。在这个模块中只有一个页面,可以进行相关设置的查看和修改。由此,可以画出对应的页面迁移图,如图所示:图3-1 页面迁移图3.2 数据库设计3.2.1 数据流程数据库设计是应用系统开发的一个重要环节,数据库结构的好坏将直接对应用系统的效率与实现结果产生重要影响。在数据库设计的开始阶段应尽量全面考虑用户的各种需求,收集基础数据、数据结构与数据处理
25、流程。根据需求分析,简历管理系统的数据流程图如图所示:图数据流图简历管理系统登录验证登录信息验证结果全部数据显示显示结果信息搜索要求搜索结果数据修改要求修改结果客户信息添加添加结果删除信息操作要求操作结果退出操作要求操作结果用 户3.2.2 数据表说明表3.3 用户表结构(USER表)字段名 类型 长度 是否为主键可否为空说明USERNAME VARCHAR20是否用户名PASSWORD VARCHAR20否否密码REALNAME VARCHAR10否否用户真名 表3.4 简历表结构(RESUME表)字段名类型 长度 主键 可否为空说明RESUME_IDCHAR8是否简历编号REALNAMEV
26、ARCHAR20否否SEXCHAR1否否性别,0=男1=女BORN_DATECHAR10否否出生日期MAX_EDUCATIONVARCHAR20否否最高学历MAJORVARCHAR30否否专业EMAILVARCHAR20 否否电子CONTACT_PHONEVARCHAR15否否MOBILEVARCHAR15否是手机CURRENT_JOB_TYPEVARCHAR40否否当前工作类别EXPECT_JOB_TYPEVARCHAR40否否期望工作类别CURRENT_POSITIONVARCHAR40否是现任职务EXPECT_POSITIONVARCHAR40否是期望职务CURRENT_CITYVARC
27、HAR40否是当前工作城市EXPECT_CITYVARCHAR40否是期望工作城市EXPECT_SALARYVARCHAR12否是期望薪水RESUME_CONTENTTEXT否是简历正文EXPIRE_TIMECHAR10否是失效时间ADD_TIMEVARCHAR10否是添加时间表3.5 用户系统设置表(SETTING表)字段名类型长度是否为主键可否为空 说明USERNAMEVARCHAR20是否 用户名COUNT_PER_PAGEINT否否 每页显示记录条数3.3 详细设计3.3.1 单一的Servlet编写如果采用单一的共同Servlet,最重要的一点就是如何根据页面提交表单中的数据,将其转
28、接到对应的业务处理模块。考虑到系统有许多页面,而每个页面都可能有多种操作,例如在一览页面单击翻页的时候和单击一览众对应的简历的时候的动作应该是不一样的,所以为了区分不同的动作,每个页面和表单在提交时候,必须说明是在什么页面,提交了什么动作。在这里用两个表单变量来表示这部分信息,其中pageId标识当前是哪个页面,actionId标识当前执行的是哪个动作。有了用户动作信息,在Servlet中需要将对应的表单信息传递给对应的处理模块。考虑到每个页面传递的变量不同,为了统一处理,Servlet将 ServletRequest和 ServletResponse的doGet或者doPost方法中,根据传
29、递过来的pageId和actionId获得类名和方法名,然后实例化对应的类,并调用对应方法。这些操作可以不通过实例化具体类的方式进行,极大的提高了代码的灵活性。在这里实例化类是通过如下的语句进行的。Class invokeClass = Class.forName( sClassName ); Object invokeObject = invokeClass.newInstance(); 通过这种方式,类名是通过字符串的方式进行处理的,避免了在代码中直接书写“obj=new *.*.*”的形式,提高了代码的灵活性。共通Servlet作为控制器,不仅需要转达用户提交的数据,还需要作出页面迁移的
30、动作处理,所以需要在Controller层对应接口返回下一个要去的页面,由共通Servlet进行迁移处理。这个共通Servlet命名为CommonServlet,初步完整的代码如下:Ch06.servlet monServlet.javapublic class CommonServlet extends Servlet / 保存各页面Id对应的Controller类public Hashtable hPageHandler = null;/ 保存各页actionId对应的Controller类的方法名public Hashtable hActionHandler = null;public
31、void init() / 各页面对应的类名hPageHandler = new Hashtable();hPageHandler.put(S000, ch06.controller.CGuestRegister);hPageHandler.put(S001, ch06.controller.CLogin);hPageHandler.put(S002, ch06.controller.CMenu);hPageHandler.put(S011, ch06.controller.CRegister);hPageHandler.put(S021, ch06.controller.CProcessLi
32、st);hPageHandler.put(S022, ch06.controller.CProcessDetail);hPageHandler.put(S031, ch06.controller.CExpireList);hPageHandler.put(S032, ch06.controller.CExpireDetail);hPageHandler.put(S041, ch06.controller.CViewSearch);hPageHandler.put(S042, ch06.controller.CViewList);hPageHandler.put(S043, ch06.contr
33、oller.CViewDetail);hPageHandler.put(S051, ch06.controller.CSetting);/ 各页面对应动作的方法名hActionHandler = new Hashtable();hActionHandler.put(S000register, registerResume);hActionHandler.put(S001login, login);hActionHandler.put(S002register, registerResume);hActionHandler.put(S002process, processResume);hAct
34、ionHandler.put(S002expire, expireResume);hActionHandler.put(S002view, viewResume);hActionHandler.put(S002setting, setting);hActionHandler.put(S011register, registerResume);hActionHandler.put(S021goto, gotoPage);hActionHandler.put(S021resume, viewResume);hActionHandler.put(S022process, processResume)
35、;hActionHandler.put(S022delete, deleteResume);hActionHandler.put(S031goto, gotoPage);hActionHandler.put(S031resume, viewResume);hActionHandler.put(S032expire, expireResume);hActionHandler.put(S032delete, deleteResume);hActionHandler.put(S041search, searchResume);hActionHandler.put(S042goto, gotoPage
36、);hActionHandler.put(S042resume, viewResume);hActionHandler.put(S043delete, deleteResume);hActionHandler.put(S043return, returnList);hActionHandler.put(S051register, setting);public void doGet( ServletRequest request, ServletResponse response)throws ServletException, IOException / 设置提交表单的中文编码request
37、.setCharacterEncoding(GBK); Session mySession = request.getSession(true);/ 清空错误消息mySession.setAttribute(errMsg, );/ 得到用户输入信息String sPageId = request.getParameter(pageId);String sActionId = request.getParameter(actionId);if (sPageId = null | sPageId.equals() | sActionId = null| sActionId.equals() / 非
38、法进入页面,跳转到首页mySession.invalidate();response.sendRedirect(./index.htm);return;/ 如果非法进入页面if (!sPageId.equals(S000) & !sPageId.equals(S001)& mySession.getAttribute(username) = null) / 非法进入页面,跳转到首页mySession.invalidate();response.sendRedirect(./index.htm);return;/ 根据pageId和actionId获得要调用的方法String sClassNam
39、e = (String) hPageHandler.get(sPageId);String sMethodName = (String) hActionHandler.get(sPageId + sActionId);if (sClassName = null | sClassName.equals() | sMethodName = null| sMethodName.equals() / 页面传递的pageId等不对,跳转到首页mySession.invalidate();response.sendRedirect(./index.htm);return;try / 利用反射调用对应的方法
40、Class invokeClass = Class.forName(sClassName);Object invokeObject = invokeClass.newInstance();Class paraType = Class.forName(javax.servlet. . ServletRequest),Class.forName(javax.servlet. . ServletResponse) ;Object paraObj = request, response ;Method invokeMethod = invokeClass.getMethod(sMethodName,
41、paraType);String sNextPage = (String) invokeMethod.invoke(invokeObject,paraObj);if (sNextPage != null & !sNextPage.equals() response.sendRedirect(./ + sNextPage);return; catch (Exception e) / 页面处理出错,跳转到首页mySession.invalidate();response.sendRedirect(./index.htm);return;public void doPost( ServletRequ
42、est request, ServletResponse response)throws ServletException, IOException doGet(request, response);3.3.2 系统详细设计(1) 需求概述从功能上来说,简历资源中心系统大概分成如下几个模块。普通用户简历登陆;工作人员登陆;后台简历登陆;简历整理;过期简历;简历查询;系统设置;退出、帮助。为了区分普通用户和后台管理员,首先要做一个首页,包含两个,一个是求职者登录简历的,另一个是工作人员登陆系统的。对于工作人员来说,进入系统进行操作之前,必须首先登陆。登陆页面包括一个用户名和一个密码的输入框。一旦登陆成功,进入系统,则应该看到一个有页面导航系统的页面。(2) 程序设计表 312 项目主要资源名定义表包名资源名资源说明Ch06CommonConst 各画面的ID和数据库相关常量ResumeContent 主要用来存储简历的容,变量基本和数据库中的容相对应。Ch06.controllerCExpireDetail针对过期简历处理详细页面的ServletCExpireList针对过期简历处理页面一览的ServletCGuestRegister针对guest简历登录页面的ServletCLogin针对登录页面的ServletCMenu针对menu页面的ServletCPr