《web课程设计-个人信息增删改查.docx》由会员分享,可在线阅读,更多相关《web课程设计-个人信息增删改查.docx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录第一章 需求分析21.1 安全需求21.2 性能需求21.3 功能需求3第二章 系统开发模式及技术42.1 JSP简介42.2 JSP的特点42.3 JSP技术52.4 访问WEB数据库常见技术52.5 本系统采用的数据库访问技术62.6 B/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 数据字典
2、154.1.2 数据库代码164.2 部分代码17第一章 需求分析随着网络的飞速发展和普及,越来越多的用户习惯上网浏览个人简历信息。本系统的主要目的就是为用户提供一个方便、及时的网上个人简历信息发布、浏览平台。利用本系统,用户可以直接在网上发布个人简历并根据自己的需要对信息进行增加、修改、删除或查看详细个人简历。本系统遵循软件工程标准,并按照软件工程规定的流程进行项目的开发。1.1 安全需求由于使用JSP编写的程序代码隐蔽,在客户端仅可以看到由JSP输出的动态HTML文件,因此只要编写程序时注意严谨性,防止SQL注入和cookies欺骗,整个系统的安全就能得到保障,同时也能防止别人抄袭源代码。
3、本系统仅以管理员admin登录。使用Tomacat7.0为系统地发布平台,发布方便,安全可靠性比较高。1.2 性能需求Tomacat可以免安装,体积小,运行效率高。能很方便的在Windows和Linux系统下发布。同时使用Sql server数据库,安装方便,而且免费使用,Sql server在Windows XP以及Linux下都能被良好的支持。而JSP不但可以用Eclipse,也可以用Dreamweaver编辑,甚至记事本等文本编辑工具即可编写,因此对系统运行环境非常低,小型服务器和家用电脑均可作为本系统运行环境。1.3 功能需求本个人简历发布系统将实现以下几个功能(1) 新增:点击新增按
4、钮即可新增个人信息(2) 修改 选中需要修改的信息可以使用修改功能(3) 删除 选中需要删除的信息可以使用删除功能(4) 查看详细个人简历选中需要查看的信息可以使用查看功能第二章 系统开发模式及技术2.1 JSP简介 JSP(Java Server Pages)是一种建立在Servlet规范提供的功能之上的动态网页技术,和ASP类似,他们都是在通常的网页中嵌入脚本代码,JSP文件中嵌入的是Java代码和JSP标记。 用JSP开发的Web应用是跨平台的,既能在Windows/Linux下运行,也能在其他操作系统上运行。2.2 JSP的特点 JSP技术在多个方面加速了动态Web页面的开发,具有以下
5、特点。(1) 将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。(2) 强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。(3) 采用标识简化页面开发Web页面开发人员不会都是
6、熟悉脚本语言的编程人员。JavaServerPage技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。 (4) 健壮性与安全性由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理与安全性.(5) 良好的移植性:作为Java平台的一部分,JSP拥有Java编程语言一次编写,随处运行的特点。(6) 企业级的扩
7、展性和性能:当与Java2平台、企业版(J2ee)和EnterpriseJavaBeans技术整合时,JSP页面将服务器JSP页面中的程序代码的识别就是依靠一些基本指令完成.2.3 JSP技术JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。2.4 访问WEB数据库常见技术目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:(1) 公共网关接口
8、CGI(Common Gateway Interface)CGI是较早实现的技术。适用于多种服务器平台,如UNIX、WINDOWS等,但CGI的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。(2) INTERNET数据库连接器IDC(Internet Database Connector)。IDC集成在ISAPI(Internet Server API)中,充分利用了DLL技术,易扩充,但编程较CGI更为复杂,只适用于小型数据库系统。(3) 先进数据库连接器ADC(Advance Database Connector)ADC提供了ActiveX Control来访问数
9、据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。(4) JAVA/JDBC语言编程JAVA语言是一种面向对象、易移植、多线程控制的语言,可通过JDBC去连接数据库。用JAVA/JDBC编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。(5) 动态服务器页面JSP(Active Server Page)JSP是微软公司推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的非
10、常好的选择。2.5 本系统采用的数据库访问技术 本新闻发布系统使用JDBC访问Sql Server数据库,JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sy
11、base数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。 Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中
12、间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。访问并操纵数据库服务器中的数据。JDBC由JSP技术支持,其数据库访问模型如下图所示。图2-1 采用JDBC技术实现数据库访问模型2.6 B/S开发模式 B/S结构,即Browser/Server-浏览器服务器结构,浏览器发送请求而服务器应答请求。其工作原理如下浏览器WEB服务器数据库服务器SQL数据请求返回结果Web请求返回HTML图2-2 B/S结构的三层模型前台通过IE、Firefox等浏
13、览器向Web服务器发送HTTP请求,web服务器通过JSP和一些中间件访问后台数据库,并将操作的结果以HTML页面的形式返回给前端的浏览器。比与C/S模式,采用B/S模式用户的操作更加简单,不像C/S需要在客户端进行客户端程序,只需要一个通用浏览器即可完成数据的请求与接收,大幅的减少了客户端的维护工作。同时,B/S模式使用的技术是Internet的Web技术,因而更适合于网上的信息发布。第三章 运行界面3.1 登录界面本系统登录时需要用户名与密码,当用户名为admin时其密码为123456。登录时的密码与用户名可以在数据库中新建。图3-1 登录界面3.2 主界面点击登录后,进入本系统的主界面。
14、在此界面中,右上方一行为用户操作栏,可进行用户的个人信息查询、修改密码、退出系统等操作;左侧为菜单栏(导航菜单-个人信息个人简历),点击导航菜单旁的箭头,可实现菜单栏的隐藏与显现。图3-2 主界面3.3 个人简历界面点击个人简历,进入个人简历界面。在个人简历列表中,包含了增删改查四部分,本页信息条数固定最大值为15条,超出15条自动分页。图3-3 个人简历界面3.3.1 新增界面此界面,我将所有填写项均设定为必填项(即isvalid ! = 1)。当填写信息未将信息栏填写全点击保存时,提示“该项为必填项,请填写”。将所有项填写完全,点击保存,则提示保存成功,并跳转回个人简历界面。点击清空,则将
15、所有已填好的信息清空。点击取消,则跳转回个人简历界面。图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 退出系统点击右上角我的操作退出登录,则弹出提示框。点击取消,返回个人简历界
16、面;点击确定,退出系统并返回登录界面。图3-12 退出登录第四章 代码部分4.1 数据库设计4.1.1 数据字典本系统采用Sql Server数据库,在数据库中使用数据表来储存个人信息。字段名称数据类型说明nameVarchar(50)姓名sexVarchar(2)性别phoneVarchar(50) 电话号码SchoolVarchar(50)学校ProfessionVarchar(50)专业EmailVarchar(50)电子邮箱jobIntentionVarchar(50)求职意向edubackgroundVarchar(500)教育背景schoolWorkVarchar(500) 学校工
17、作seciaWorkVarchar(500) 社会工作selfEvaluationVarchar(500)自我评价isValidChar(1) 标志resumeIdBigint 唯一标识表4-1 数据表4.1.2 数据库代码SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE dbo.PerResume(name varchar(50) NULL,sex varchar(2) NULL,phone varchar(50) NULL,school varchar(50) NULL,profes
18、sion 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 NOT NULL, CONSTRAINT PK_resumeId PRIMARY KEY CLUSTERED (resumeId
19、ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARYGOSET ANSI_PADDING OFFGO4.2 部分代码public class resume extends GenericController public String selectByCondtition(ModelMap map,HttpServletRequest request,Req
20、uestParam(value = page, required = false) String page,RequestParam(value = rows, required = false) String pageSize)throws UnsupportedEncodingException Page pageInfo = new Page(null = page) ? 1: Integer.valueOf(page), (null = pageSize) ? 15: Integer.valueOf(pageSize);List list = resumeService.selectL
21、ist(pageInfo);ObjectMapper objectMapper = new ObjectMapper();objectMapper.setDateFormat(new SimpleDateFormat(yyyy-MM-dd);String result = ;try result = total : + pageInfo.getTotalCount() + ,rows:+ objectMapper.writeValueAsString(list) + ; catch (JsonProcessingException e) / TODO Auto-generated catch
22、blocke.printStackTrace();return result;RequestMapping(/resume)RequiresPermissions(value = PermissionSign.TRAIN_MAINTAIN)public String personnelPage(RequestParam(value = oprationResult, required = false) String oprationResult,ModelMap map) return /resume/resume;RequestMapping(/insertPage)RequiresPerm
23、issions(value = PermissionSign.TRAIN_CREATE)public String insertPage(ModelMap map, HttpServletRequest request) return /resume/insertResume;RequestMapping(/insert)public String insert(ModelMap map, HttpServletRequest request,RequestParam(value = resumeId,required = false) Long resumeId)throws ParseEx
24、ception Perresume perresume = new Perresume();if(null = resumeId)perresume.setResumeid(PrimaryKeyGenerator.getLongKey();elseperresume.setResumeid(resumeId);String name = request.getParameter(name);String sex = request.getParameter(sex);String phone = request.getParameter(phone);String school = reque
25、st.getParameter(school);String profession = request.getParameter(profession);String email = request.getParameter(email);String jobIntention = request.getParameter(jobIntention);String edubackground = request.getParameter(edubackground);String schoolWork = request.getParameter(schoolWork);String soci
26、alWork = request.getParameter(socialWork); String selfEvaluation = request.getParameter(selfEvaluation);perresume.setName(name);perresume.setSex(sex);perresume.setPhone(phone);perresume.setSchool(school);perresume.setProfession(profession);perresume.setEmail(email);perresume.setJobintention(jobInten
27、tion);perresume.setEdubackground(edubackground);perresume.setSchoolwork(schoolWork);perresume.setSocialwork(socialWork);perresume.setSelfevaluation(selfEvaluation);perresume.setIsvalid(1);int i = 0;String msg = ;if(null = resumeId)i = resumeService.insert(perresume);msg = EnumOpration.INSERT_SUCCESS
28、.getCode();elsei = 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)public String deletereason(ModelMap map, HttpServle
29、tRequest request) /* String id =request.getParameter(id); */* Map infoMap = new HashMap(); */String ids = request.getParameter(ids);/ Long.parseLong()String isvalid = EnumBool.NO.getCode();String idsStr = ids.split(,);List idsLong = new ArrayList();for (int i = 0; i 0) map.put(oprationResult, EnumOp
30、ration.DELETE_SUCCESS.getCode();return redirect:/resume/resume.html;package com.bybo.hr.web.model.resume;public class Perresume private Long resumeid; private String name; private String sex; private String phone; private String school; private String profession; private String email; private String
31、 jobintention; private String edubackground; private String schoolwork; private String socialwork; private String selfevaluation; private String isvalid; public Long getResumeid() return resumeid; public void setResumeid(Long resumeid) this.resumeid = resumeid; public String getName() return name; p
32、ublic void setName(String name) this.name = name = null ? null : name.trim(); public String getSex() return sex; public void setSex(String sex) this.sex = sex = null ? null : sex.trim(); public String getPhone() return phone; public void setPhone(String phone) this.phone = phone = null ? null : phon
33、e.trim(); public String getSchool() return school; public void setSchool(String school) this.school = school = null ? null : school.trim(); public String getProfession() return profession; public void setProfession(String profession) this.profession = profession = null ? null : profession.trim(); pu
34、blic String getEmail() return email; public void setEmail(String email) this.email = email = null ? null : email.trim(); public String getJobintention() return jobintention; public void setJobintention(String jobintention) this.jobintention = jobintention = null ? null : jobintention.trim(); public
35、String getEdubackground() return edubackground; public void setEdubackground(String edubackground) this.edubackground = edubackground = null ? null : edubackground.trim(); public String getSchoolwork() return schoolwork; public void setSchoolwork(String schoolwork) this.schoolwork = schoolwork = nul
36、l ? null : schoolwork.trim(); public String getSocialwork() return socialwork; public void setSocialwork(String socialwork) this.socialwork = socialwork = null ? null : socialwork.trim(); public String getSelfevaluation() return selfevaluation; public void setSelfevaluation(String selfevaluation) th
37、is.selfevaluation = selfevaluation = null ? null : selfevaluation.trim(); public String getIsvalid() return isvalid; public void setIsvalid(String isvalid) this.isvalid = isvalid = null ? null : isvalid.trim(); public Criteria andEdubackgroundIn(List values) addCriterion(edubackground in, values, ed
38、ubackground); return (Criteria) this; public Criteria andEdubackgroundNotIn(List values) addCriterion(edubackground not in, values, edubackground); return (Criteria) this; public Criteria andEdubackgroundBetween(String value1, String value2) addCriterion(edubackground between, value1, value2, edubac
39、kground); return (Criteria) this; public Criteria andEdubackgroundNotBetween(String value1, String value2) addCriterion(edubackground not between, value1, value2, edubackground); return (Criteria) this; public Criteria andSchoolworkIsNull() addCriterion(schoolWork is null); return (Criteria) this; p
40、ublic Criteria andSchoolworkIsNotNull() addCriterion(schoolWork is not null); return (Criteria) this; public Criteria andSchoolworkEqualTo(String value) addCriterion(schoolWork =, value, schoolwork); return (Criteria) this; public Criteria andSchoolworkNotEqualTo(String value) addCriterion(schoolWor
41、k , value, schoolwork); return (Criteria) this; public Criteria andSchoolworkGreaterThan(String value) addCriterion(schoolWork , value, schoolwork); return (Criteria) this; public Criteria andSchoolworkGreaterThanOrEqualTo(String value) addCriterion(schoolWork =, value, schoolwork); return (Criteria) this;