版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录TOC\o"1-3"\h\z\u第一章需求分析 21.1安全需求 21.2性能需求 21.3功能需求 3第二章系统开发模式及技术 42.1JSP简介 42.2JSP的特点 42.3JSP技术 52.4访问WEB数据库常见技术 52.5本系统采用的数据库访问技术 62.6B/S开发模式 7第三章运行界面 83.1登录界面 83.2主界面 83.3个人简历界面 93.3.1新增界面 103.3.2保存成功后跳转为主页面 113.3.3未选中信息点击修改 123.3.4修改界面 123.3.5选中信息点击删除 133.3.6查询个人简历界面 133.4退出系统 14第四章代码部分 154.1数据库设计 154.1.1数据字典 154.1.2数据库代码 164.2部分代码 17第一章需求分析随着网络的飞速发展和普及,越来越多的用户习惯上网浏览个人简历信息。本系统的主要目的就是为用户提供一个方便、及时的网上个人简历信息发布、浏览平台。利用本系统,用户可以直接在网上发布个人简历并根据自己的需要对信息进行增加、修改、删除或查看详细个人简历。本系统遵循软件工程标准,并按照软件工程规定的流程进行项目的开发。1.1安全需求由于使用JSP编写的程序代码隐蔽,在客户端仅可以看到由JSP输出的动态HTML文件,因此只要编写程序时注意严谨性,防止SQL注入和cookies欺骗,整个系统的安全就能得到保障,同时也能防止别人抄袭源代码。本系统仅以管理员admin登录。使用Tomacat7.0为系统地发布平台,发布方便,安全可靠性比较高。1.2性能需求Tomacat可以免安装,体积小,运行效率高。能很方便的在Windows和Linux系统下发布。同时使用Sqlserver数据库,安装方便,而且免费使用,Sqlserver在WindowsXP以及Linux下都能被良好的支持。而JSP不但可以用Eclipse,也可以用Dreamweaver编辑,甚至记事本等文本编辑工具即可编写,因此对系统运行环境非常低,小型服务器和家用电脑均可作为本系统运行环境。1.3功能需求本个人简历发布系统将实现以下几个功能(1)新增:点击新增按钮即可新增个人信息(2)修改选中需要修改的信息可以使用修改功能(3)删除选中需要删除的信息可以使用删除功能(4)查看详细个人简历选中需要查看的信息可以使用查看功能第二章系统开发模式及技术2.1JSP简介JSP(JavaServerPages)是一种建立在Servlet规范提供的功能之上的动态网页技术,和ASP类似,他们都是在通常的网页中嵌入脚本代码,JSP文件中嵌入的是Java代码和JSP标记。用JSP开发的Web应用是跨平台的,既能在Windows/Linux下运行,也能在其他操作系统上运行。2.2JSP的特点JSP技术在多个方面加速了动态Web页面的开发,具有以下特点。(1)将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。(2)强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServerPage技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。(4)健壮性与安全性由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理与安全性.(5)良好的移植性:作为Java平台的一部分,JSP拥有Java编程语言"一次编写,随处运行"的特点。(6)企业级的扩展性和性能:当与Java2平台、企业版(J2ee)和EnterpriseJavaBeans技术整合时,JSP页面将服务器JSP页面中的程序代码的识别就是依靠一些基本指令完成.2.3JSP技术JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。2.4访问WEB数据库常见技术目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:(1)公共网关接口CGI(CommonGatewayInterface)CGI是较早实现的技术。适用于多种服务器平台,如UNIX、WINDOWS等,但CGI的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。(2)INTERNET数据库连接器IDC(InternetDatabaseConnector)。IDC集成在ISAPI(InternetServerAPI)中,充分利用了DLL技术,易扩充,但编程较CGI更为复杂,只适用于小型数据库系统。(3)先进数据库连接器ADC(AdvanceDatabaseConnector)ADC提供了ActiveXControl来访问数据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。(4)JAVA/JDBC语言编程JAVA语言是一种面向对象、易移植、多线程控制的语言,可通过JDBC去连接数据库。用JAVA/JDBC编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。(5)动态服务器页面JSP(ActiveServerPage)JSP是微软公司推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的非常好的选择。2.5本系统采用的数据库访问技术本新闻发布系统使用JDBC访问SqlServer数据库,JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序,同时,JDBC也是个商标名。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。访问并操纵数据库服务器中的数据。JDBC由JSP技术支持,其数据库访问模型如下图所示。图2-1采用JDBC技术实现数据库访问模型2.6B/S开发模式B/S结构,即Browser/Server--浏览器/服务器结构,浏览器发送请求而服务器应答请求。其工作原理如下浏览器浏览器WEB服务器数据库服务器SQL数据请求返回结果Web请求返回HTML图2-2B/S结构的三层模型前台通过IE、Firefox等浏览器向Web服务器发送HTTP请求,web服务器通过JSP和一些中间件访问后台数据库,并将操作的结果以HTML页面的形式返回给前端的浏览器。比与C/S模式,采用B/S模式用户的操作更加简单,不像C/S需要在客户端进行客户端程序,只需要一个通用浏览器即可完成数据的请求与接收,大幅的减少了客户端的维护工作。同时,B/S模式使用的技术是Internet的Web技术,因而更适合于网上的信息发布。第三章运行界面3.1登录界面本系统登录时需要用户名与密码,当用户名为admin时其密码为123456。登录时的密码与用户名可以在数据库中新建。图3-1登录界面3.2主界面点击登录后,进入本系统的主界面。在此界面中,右上方一行为用户操作栏,可进行用户的个人信息查询、修改密码、退出系统等操作;左侧为菜单栏(导航菜单--个人信息—个人简历),点击导航菜单旁的箭头,可实现菜单栏的隐藏与显现。图3-2主界面3.3个人简历界面点击个人简历,进入个人简历界面。在个人简历列表中,包含了增删改查四部分,本页信息条数固定最大值为15条,超出15条自动分页。图3-3个人简历界面3.3.1新增界面此界面,我将所有填写项均设定为必填项(即isvalid!=1)。当填写信息未将信息栏填写全点击保存时,提示“该项为必填项,请填写”。将所有项填写完全,点击保存,则提示保存成功,并跳转回个人简历界面。点击清空,则将所有已填好的信息清空。点击取消,则跳转回个人简历界面。图3-4新增界面图3-5填写后的新增界面3.3.2保存成功后跳转为主页面图3-6保存成功3.3.3未选中信息点击修改未选中信息点击修改与未选中信息点击删除以及未选中信息点击查询的界面相同图3-7请选中一行3.3.4修改界面图3-8修改界面3.3.5选中信息点击删除选中信息点击删除时,出现提示框,点击确定则删除此条信息,若点击取消,则返回个人简历界面。图3-9确定、取消3.3.6查询个人简历界面图3-10个人简历1图3-11个人简历23.4退出系统点击右上角我的操作—退出登录,则弹出提示框。点击取消,返回个人简历界面;点击确定,退出系统并返回登录界面。图3-12退出登录第四章代码部分4.1数据库设计4.1.1数据字典本系统采用SqlServer数据库,在数据库中使用数据表来储存个人信息。字段名称数据类型说明nameVarchar(50)姓名sexVarchar(2)性别phoneVarchar(50)电话号码SchoolVarchar(50)学校ProfessionVarchar(50)专业EmailVarchar(50)电子邮箱jobIntentionVarchar(50)求职意向edubackgroundVarchar(500)教育背景schoolWorkVarchar(500)学校工作seciaWorkVarchar(500)社会工作selfEvaluationVarchar(500)自我评价isValidChar(1)标志resumeIdBigint唯一标识表4-1数据表4.1.2数据库代码SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGOCREATETABLE[dbo].[PerResume]( [name][varchar](50)NULL, [sex][varchar](2)NULL, [phone][varchar](50)NULL, [school][varchar](50)NULL, [profession][varchar](50)NULL, [email][varchar](50)NULL, [jobIntention][varchar](50)NULL, [edubackground][varchar](500)NULL, [schoolWork][varchar](500)NULL, [socialWork][varchar](500)NULL, [selfEvaluation][varchar](500)NULL, [isValid][char](1)NULL, [resumeId][bigint]NOTNULL,CONSTRAINT[PK_resumeId]PRIMARYKEYCLUSTERED([resumeId]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]GOSETANSI_PADDINGOFFGO4.2部分代码publicclassresumeextendsGenericController{ publicStringselectByCondtition( ModelMapmap, HttpServletRequestrequest, @RequestParam(value="page",required=false)Stringpage, @RequestParam(value="rows",required=false)StringpageSize) throwsUnsupportedEncodingException{ Page<Perresume>pageInfo=newPage<>((null==page)?1:Integer.valueOf(page),(null==pageSize)?15:Integer.valueOf(pageSize)); List<Perresume>list=resumeService.selectList(pageInfo); ObjectMapperobjectMapper=newObjectMapper(); objectMapper.setDateFormat(newSimpleDateFormat("yyyy-MM-dd")); Stringresult=""; try{ result="{\"total\":"+pageInfo.getTotalCount()+",\"rows\":" +objectMapper.writeValueAsString(list)+"}"; }catch(JsonProcessingExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnresult; } @RequestMapping("/resume") @RequiresPermissions(value=PermissionSign.TRAIN_MAINTAIN) publicStringpersonnelPage( @RequestParam(value="oprationResult",required=false)StringoprationResult, ModelMapmap){ return"/resume/resume"; } @RequestMapping("/insertPage") @RequiresPermissions(value=PermissionSign.TRAIN_CREATE) publicStringinsertPage(ModelMapmap,HttpServletRequestrequest){ return"/resume/insertResume"; } @RequestMapping("/insert") publicStringinsert(ModelMapmap,HttpServletRequestrequest, @RequestParam(value="resumeId",required=false)LongresumeId) throwsParseException{ Perresumeperresume=newPerresume(); if(null==resumeId){ perresume.setResumeid(PrimaryKeyGenerator.getLongKey()); }else{ perresume.setResumeid(resumeId); } Stringname=request.getParameter("name"); Stringsex=request.getParameter("sex"); Stringphone=request.getParameter("phone"); Stringschool=request.getParameter("school"); Stringprofession=request.getParameter("profession"); Stringemail=request.getParameter("email"); StringjobIntention=request.getParameter("jobIntention"); Stringedubackground=request.getParameter("edubackground"); StringschoolWork=request.getParameter("schoolWork"); StringsocialWork=request.getParameter("socialWork"); StringselfEvaluation=request.getParameter("selfEvaluation"); perresume.setName(name); perresume.setSex(sex); perresume.setPhone(phone); perresume.setSchool(school); perresume.setProfession(profession); perresume.setEmail(email); perresume.setJobintention(jobIntention); perresume.setEdubackground(edubackground); perresume.setSchoolwork(schoolWork); perresume.setSocialwork(socialWork); perresume.setSelfevaluation(selfEvaluation); perresume.setIsvalid("1"); inti=0; Stringmsg=""; if(null==resumeId){ i=resumeService.insert(perresume); msg=EnumOpration.INSERT_SUCCESS.getCode(); } else{ i=resumeService.update(perresume); msg=EnumOpration.UPDATE_SUCCESS.getCode(); } if(i==1){ map.put("oprationResult",msg); } return"redirect:/resume/resume.html"; } @RequestMapping("/delete") @RequiresPermissions(value=PermissionSign.TRAIN_DELETE) publicStringdeletereason(ModelMapmap,HttpServletRequestrequest){ /*Stringid=request.getParameter("id");*/ /*Map<String,Object>infoMap=newHashMap<String,Object>();*/ Stringids=request.getParameter("ids");//Long.parseLong() Stringisvalid=EnumBool.NO.getCode(); String[]idsStr=ids.split(","); List<Long>idsLong=newArrayList<Long>(); for(inti=0;i<idsStr.length;i++){ idsLong.add(Long.parseLong(idsStr[i])); } intresult=resumeService.deleteResume(idsLong,isvalid); if(result>0){ map.put("oprationResult",EnumOpration.DELETE_SUCCESS.getCode()); } return"redirect:/resume/resume.html"; }}packagecom.bybo.hr.web.model.resume;publicclassPerresume{privateLongresumeid;privateStringname;privateStringsex;privateStringphone;privateStringschool;privateStringprofession;privateStringemail;privateStringjobintention;privateStringedubackground;privateStringschoolwork;privateStringsocialwork;privateStringselfevaluation;privateStringisvalid;publicLonggetResumeid(){returnresumeid;}publicvoidsetResumeid(Longresumeid){this.resumeid=resumeid;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name==null?null:name.trim();}publicStringgetSex(){returnsex;}publicvoidsetSex(Stringsex){this.sex=sex==null?null:sex.trim();}publicStringgetPhone(){returnphone;}publicvoidsetPhone(Stringphone){this.phone=phone==null?null:phone.trim();}publicStringgetSchool(){returnschool;}publicvoidsetSchool(Stringschool){this.school=school==null?null:school.trim();}publicStringgetProfession(){returnprofession;}publicvoidsetProfession(Stringprofession){fession=profession==null?null:profession.trim();}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){this.email=email==null?null:email.trim();}publicStringgetJobintention(){returnjobintention;}publicvoidsetJobintention(Stringjobintention){this.jobintention=jobintention==null?null:jobintention.trim();}publicStringgetEdubackground(){returnedubackground;}publicvoidsetEdubackground(Stringedubackground){background=edubackground==null?null:edubackground.trim();}publicStringgetSchoolwork(){returnschoolwork;}publicvoidsetSchoolwork(Stringschoolwork){this.schoolwork=schoolwork==null?null:schoolwork.trim();}publicStringgetSocialwork(){returnsocialwork;}publicvoidsetSocialwork(Stringsocialwork){this.socialwork=socialwork==null?null:socialwork.trim();}publicStringgetSelfevaluation(){returnselfevaluation;}publicvoidsetSelfevaluation(Stringselfevaluation){this.selfevaluation=selfevaluation==null?null:selfevaluation.trim();}publicStringgetIsvalid(){returnisvalid;}publicvoidsetIsvalid(Stringisvalid){this.isvalid=isvalid==null?null:isvalid.trim();}}publicCriteriaandEdubackgroundIn(List<String>values){addCriterion("edubackgroundin",values,"edubackground");return(Criteria)this;}publicCriteriaandEdubackgroundNotIn(List<String>values){addCriterion("edubackgroundnotin",values,"edubackground");return(Criteria)this;}publicCriteriaandEdubackgroundBetween(Stringvalue1,Stringvalue2){addCriterion("edubackgroundbetween",value1,value2,"edubackground");return(Criteria)this;}publicCriteriaandEdubackgroundNotBetween(Stringvalue1,Stringvalue2){addCriterion("edubackgroundnotbetween",value1,value2,"edubackground");return(Criteria)this;}publicCriteriaandSchoolworkIsNull(){addCriterion("schoolWorkisnull");return(Criteria)this;}publicCriteriaandSchoolworkIsNotNull(){addCriterion("schoolWorkisnotnull");return(Criteria)this;}publicCriteriaandSchoolworkEqualTo(Stringvalue){addCriterion("schoolWork=",value,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkNotEqualTo(Stringvalue){addCriterion("schoolWork<>",value,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkGreaterThan(Stringvalue){addCriterion("schoolWork>",value,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkGreaterThanOrEqualTo(Stringvalue){addCriterion("schoolWork>=",value,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkLessThan(Stringvalue){addCriterion("schoolWork<",value,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkLessThanOrEqualTo(Stringvalue){addCriterion("schoolWork<=",value,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkLike(Stringvalue){addCriterion("schoolWorklike",value,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkNotLike(Stringvalue){addCriterion("schoolWorknotlike",value,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkIn(List<String>values){addCriterion("schoolWorkin",values,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkNotIn(List<String>values){addCriterion("schoolWorknotin",values,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkBetween(Stringvalue1,Stringvalue2){addCriterion("schoolWorkbetween",value1,value2,"schoolwork");return(Criteria)this;}publicCriteriaandSchoolworkNotBetween(Stringvalue1,Stringvalue2){addCriterion("schoolWorknotbetween",value1,value2,"schoolwork");return(Criteria)this;}publicCriteriaandSocialworkIsNull(){addCriterion("socialWorkisnull");return(Criteria)this;}publicCriteriaandSocialworkIsNotNull(){addCriterion("socialWorkisnotnull");return(Criteria)this;}publicCriteriaandSocialworkEqualTo(Stringvalue){addCriterion("socialWork=",value,"socialwork");return(Criteria)this;}publicCriteriaandSocialworkNotEqualTo(Stringvalue){addCriterion("socialWork<>",value,"socialwork");return(Criteria)this;}publicCriteriaandSocialworkGreaterThan(Stringvalue){addCriterion("socialWork>",value,"socialw
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度货物供应框架合同标的:电子产品供应链管理3篇
- 中国地质大学(武汉)《首饰制图》2021-2022学年第一学期期末试卷
- 中国地质大学(武汉)《地震学》2022-2023学年第一学期期末试卷
- 2024版版权许可合同:影视作品版权使用与许可条件2篇
- 2024年临时施工过路合同3篇
- 2024年硬币清分机项目合作计划书
- 2024年度内架施工安全教育培训承包合同范本2篇
- 2024年双方外训合作具体实施协议版
- 2024年度淡水鱼苗买卖协议范本版B版
- 2024年拖拉机交易协议模板版B版
- DL∕T 5776-2018 水平定向钻敷设电力管线技术规定
- 颈脊髓损伤患者的护理查房
- 《孤独的小螃蟹》整本书导读课教学设计-2023-2024学年语文二年级上册统编版
- 历年安徽中考作文题目汇编
- 全国川教版信息技术八年级上册第三单元第1节《体验生活中的策略》教案设计
- 《找规律》(教案)-2023-2024学年人教版数学一年级下册
- 客运员、客运值班员技能鉴定考试题库800题(含答案)
- 韩国语入门智慧树知到期末考试答案章节答案2024年延边大学
- CJJ56-2012市政工程勘察规范
- 人工智能知识竞赛题库及答案(500题)
- 2024年新疆铁道职业技术学院单招职业技能测试题库附答案
评论
0/150
提交评论