版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊客户关系管理系统页目录TOC\o"1-3"\h\u31600第一章绪论 5148071.1系统的开发背景 5172501.1.1客户关系管理系统的发展 5106101.1.2客户关系管理系统的现状 5154521.2系统实现的目标 632601.3系统开发的意义 614066第二章系统需求分析 75732.1系统的设计目标 7119732.2系统的可行性分析 7310782.2.1用户群体与市场分析 7303472.2.2技术能力分析 7161132.2.3可行性分析总结 7249432.3系统设计的特点 75457第三章关键技术分析 8154273.1系统使用的技术 84063.1.1JSP编程技术 8156993.1.2Oracle开源数据库的开发 9308273.1.3Java语言概述 1020223.1.4SSH框架 11133433.2系统架构设计 1322193.3开发环境与技术 15979第四章系统设计 16232034.1总体设计 1695454.1.1整体分析 1682654.1.2数据流分析 1615054.2详细设计 17233004.2.1系统功能模块设计 17278464.2.2系统E-R图 18233404.2.3数据库设计 2024422第五章系统实现 24299885.1数据库连接 24231955.2用户登录管理 24195415.3营销管理 2436375.3.1销售机会管理 26192285.3.2客户开发计划 27301515.4客户管理 28222315.5服务管理 29166105.6统计报表 3324945.7基础数据 33200055.8权限管理 3518478第六章系统测试 36224736.1测试的作用和意义 37300866.2测试方法 3796196.3测试内容 37278576.4测试结果 37305466.5开发技巧和难点分析 3817357结束语 3913396致谢 4021259参考文献 413956附录一 423956附录二 61绪论1.1系统的开发背景 1.1.1客户关系管理系统的发展 随着市场的开放,各个企业之间的竞争逐渐加剧,并且也从独立的企业与企业之间的竞争发展成为了一个个群体之间的竞争。在这些群集中,不同的企业扮演着不同的角色,比如有原料供应商、制造商、分销机构、零售商等。在企业与企业之间需要进行大量的信息交互、流程管理和对各种异常情况的处理,前者主要是针对一些动态的数据信息即供应链管理,后者则是更多的是一些静态资料的管理及合作伙伴信息管理。对于普通的中小企业来说,资金和人力都有限,因此对于定制比较复杂的供应链管理来说是不现实的。中小企业更倾向于首先把散乱的资料、协议有效的管理起来,在一定程度上有效地提高工作效率和企业信息化建设的进程。因此,在这样一种市场需求下,一款通用性强、功能实用、易于上手,面向全行业中小企业的企业管理系统就产生了。 企业的客户资源才会是最重要的资源。在21世纪,客户管理的道理网络技术的充分支持。此时客户也有条件要求企业尊重他们,并对服务的质量和及时性等方面提出更高要求。网络时代到来,使得顾客可以有更大的选择权,市场由原来的供方主导变为顾客主导。企业在处理与客户的关系时,被动地处理顾客的抱怨、解答顾客的问题,顾客服务并未成为整体服务产品的核心。在这种情况下,企业越来越感觉到没有信息技术支持的客户信息管理系统力不从心。于是CRM系统便应运而生。并将成为21世纪企业竞争获胜的通行证。何谓客户关系管理,客户关系管理时企业为赢得顾客的高度满意,建立起与客户的长期良好关系所开展的工作。本项目将详细展示该系统的开发与实现。1.1.2客户关系管理系统的现状 对于企业来说最重要的是客户,而这些客户又分为了不同的客户群体,例如有大客户、小客户,有正在联系的客户、有即将联系的客户等等。而且这些客户有可能属于属于不同的行业,不同的区域地区。这时如何对这些客户进行有效的管理,今儿指导企业对客户的下一步行动,从而提升企业的价值,成了企业发展的关键所在。 传统的客户管理时采用人工手动记录的方式,通过通信员将客户的信息记录在通信本上实现的。但是这种方式记录非常慢,而且容易出错,对于后期的查找和维护以为是非常困难的。不难看出,企业想在竞争激烈的市场中占有一席之地,就必须牢牢把握住客户。 目前,企业管理系统已经逐步被企业所使用,功能也在不断地完善。而客户管理系统作为客户管理中的一个重要组成部分,也是值得重视的。 鉴于以上的原因,通过对客户管理的具体工作进行分析,编写了客户管理系统,用来方便的管理客户方面的工作。 系统通过对各种信息的录入、编辑、查询、删除等各个功能的实现,基本上可以满足企业部门的需要,在很大的程度上提高客户管理的效率和合理性,以及统计数据的真实性。 系统的功能和传统管理模式相比较,毫无疑问会大大提高客户信息管理的运作效率,辅助提高企业的管理水平,为减少差错,节省人力,为以后统计各类信息提供有效的技术保障。 目前,客户管理系统已经越来越多的应用到了很多企业之中,并起到了良好的效果。1.2系统实现的目标 整个客户关系管理系统都要以客户为中心,从而简化与各类客户关系的信息,如销售、服务以及支持等等。在构建CRM系统时,还应当注意与其他管理系统的协调,例如人力资源管理系统、进销存管理系统等等。例如现在系统的使用者是某中小型企业,系统通过该系统来改善现有客户的管理混乱状态,从而加强企业和客户之间的联系。 本系统主要对客户信息的管理。一方面录入客户信息、并对客户各方面的信息进行分析;另一方面根据客户反馈的信息,及时统计各种相关数据并根据数据作出分析,发现问题并给出措施建议。 本课题就是要开发一个基于web的客户管理系统。 依据客户管理需要完成的内容,本系统要完成的主要功能分析如下: 1.客户基本信息的录入:主要包括基本资料、交费和任务的登记。 2.登录的权限设置:对于不同的角色能够赋予不同的权限。 3.营销管理:为了更好地开发客户,需要设置销售机会管理模块和客户开发计划管理。 4.客户的服务管理:在建立了客户联系人之后,为了能够更好地保证服务质量,减少客户流失,需要对不同客户的不同服务项目进行归类管理。 5.统计报表:为了更好地查询和分析数据,需要对客户构成、客户贡献及客户服务进行分析。1.3系统开发的意义客户管理系统主要是将客户关系管理、人物管理、客户交费、投诉管理、查询报表等多功能于一身的客户管理软件,操作简单方便,界面美观大方,能满足企业进行客户管理的需求,客户关系管理系统通过准确、智能、高效、创新的营销策略,协助企业不断提高销售额、提升客户忠诚度。第二章系统需求分析2.1系统的设计目标 系统使用简洁的框架结构,可以进行客户的查看、信息录入等操作,实现客户的管理、客户的统计分析、系统维护等模块组成。以及一些常规的设置和数据库管理等操作。2.2系统的可行性分析2.2.1用户群体与市场分析 客户管理系统将能为企业实现有效的客户关系管理。它既是一种国际领先的、以“客户价值”为中心的企业管理理论、商业策略和企业运作实践,也是一种以信息技术为手段、有效提高企业利益、客户满意度、雇员生产力的管理软件。 客户管理系统是通过赢得、发展、保持有价值的客户,增加企业收入,优化盈利性,提高客户满意度的商务战略。通过获得更多的客户线索、更广泛地共享客户信息,协同工作,增加收益,提高给客户的价值,实现企业和客户的“双赢”。 企业希望通过客户管理系统能够了解更多的客户需求,从而为客户提供个性化的产品和服务,提高客户满意度,与此同时能够获得更大的利润。 客户管理系统是一种旨在健全、改善企业与客户之间的新型管理系统。指的是企业利用信息及时,通过有意义的交流来了解并影响客户的行为,以提高客户招揽率、客户保持率、客户忠诚度和客户收益率。客户管理系统是一种把客户信息转换成良好的客户关系的可重复性过程。利用激励因素来刺激客户进一步消费,并激发其“感激”心理,对保持长期的销售和提高客户保持率十分重要。2.2.2技术能力分析 根据本系统的功能需求,采用JSP与开源的Oracle数据库引擎开发。JSP将网页逻辑与网页设计和显示分离,支持可充用的基于组件的设计,使基于Web的应用程序的开发变的迅速和容易。而Oracle作为一种快速的、多线程的多用户和健壮的SQL数据库服务器,根据第三方测试结果,在千万级的数据环境中保持较高的执行速度。因此在技术层面上,是完全可行的。2.2.3可行性分析总结 综合企业用户群体的特点和不断增长的需求,以及技术、市场前景趋势等因素,客户管理的信息化系统有很大的发展前途,而客户管理系统则是建立在此基础上的,因此本系统的开发是具有可行性的。2.3系统设计的特点 系统的设计上需要安全性和用户操作的流畅性。因此要在对用户的管理和资格审核环节做出限定,只有经过审核确认的会员才有权使用,而且需要对管理员进行不同的权限分配。搜索将在系统功能中占据重要的位置,可以使用多个属性字段进行模糊搜索,并在搜索结果提供比较的通道。第三章关键技术分析3.1系统使用的技术 本系统采用Oracle数据库,使用JavaEE进行开发,采取B/S架构。数据库设计原则上符合第三范式,且规范,易于维护。程序需使用MVC模式,采用三层架构,保证系统的可维护性和可扩展性。主要基于Struts+Spring+hibernate框架进行开发。JSP编程技术JavaServerPage或简称为JSP是由Sun公司在Java语言上开发出来的一种动态网页制作技术,它提供了一种建立动态网页的简单方法,并未开发人员提供了一个Server端框架,基于这个框架,开发人员可以综合使用HTML,XML,Java语言以及其他脚本语言,灵活、快速抵创建和维护动态网页,特别是目前的商业系统。作为JavaTM技术的一部分,JSP能够快速的开发出给予所有Web服务器和应用服务器环境,独立与平台的应用程序,而且具有非常强的可伸缩性。同时,JSP把用户界面从系统内容中分离出来,使得设计人员能够在不改变底层动态内容的前提下改变网页布局。JSP编程技术的优势在于:1.一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。2.JSP就是在HTML中嵌入Java代码,所以在本质上JSP程序就是Java程序继承了Java的一切优点。JSP程序有严格的Java语法和丰富的Java类库支持。3.JSP页面在服务器中都会被JSP编译器编译成对应的Servlet,所以就拥有Java跨平台的优点,所有的JSP程序,无需改动就可以方便的迁移到其他操作系统平台,这就是在其他动态脚本中无法想象的。4.JSP中可以使用JavaBean进行逻辑封装,这样就可以实现逻辑功能代码的重用,从而大大提高系统的可重用性,同时也提高了程序的开发效率。5.JSP程序容易上手,如果有HTML和Java的基本知识,那么学习JSP程序就没有任何难度。在JSP中可以使用Java众多的开源工具也是其他的动态网页语言无法比拟的。由于以上种种优势JSP在众多的动态语言中成为开发人员最喜欢的语言之一。JSP的运行原理:如果JSP页面是第一次被请求运行,服务器的JSP编译器会生成JSP页面对应的Java代码,并且编译成字节码文件。当服务器再次收到对这个JSP页面请求的时候,会判断这个JSP页面是否被修改过,如果被修改过就会重新生成Java代码并且重新编译,而且服务器中的垃圾回收方法会把没用的字节码文件删除。如果没有修改过,服务器就会直接调用以前已经编译过的字节码文件。JSP在第一次访问时由于要转化和编译,运行速度较慢,但是当第二次访问该页时,由于文件已经编译成字节码文件了,所以速度非常快。 JSP页面的组成:通常来说,JSP页面由两部分组成:1.JSP页面的静态部分,如HTML,CSS标记等用来完成数据显示和样式。 2.JSP页面的动态部分,如脚本程序,JSP标签等,用来完成数据处理。 JSP运行环境:要运行JSP(注意,不是浏览JSP页面),需要有支持JSP的服务器。这里分2种情况:一种是自身就支持JSP的服务器,如Jrun,Weblogic,JSWDK等;而另一种则是在不支持JSP的服务器上安装JSP引擎的插件,如在IIS,Apache等服务器上安装WebSphere,tomcat,Resin等插件。其中主流服务器是Weblogic和tomcat.Tomcat服务器是ApacheGroupJakarta小组开发的一个免费服务器软件,适合于嵌入Apache中使用,而且,它的源代码可以免费获得,你可以自由地对它进行扩充。Tomcat服务器的兼容性很好,如WebLogic服务器采用其为Web服务器引擎,JBuilder将其作为标准的测试服务器,Sun公司也将其作为JSP技术应用的示例服务器。不足之处是它的配置比较麻烦,而且有一些安全性的问题没有解决。但是Tomcat服务器有众多大软件公司的支持,而且服务器的性能稳定,其发展前景很好。Oracle开源数据库的开发ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。Oracle特点:完整的数据管理功能:数据的大量性数据的保存的持久性数据的共享性数据的可靠性Java语言概述Java语言是由Sun公司开发的一种很新的计算机语言,它的历史很短。Java语言的发展史是简短而曲折的。由于它与网络的良好结合,使得它在刚发布时就引起了轰动。因为Java语言没有兼容低版本计算机语言的负担,所以它在采用计算机新技术方面比传统的计算机语言显得更为纯粹,Java语言的特点也更为鲜明。它的特点与其历史发展是相关的。Java编程语言的风格十分接近C、C++语言。Java是一个纯的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心。Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在Java1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了Java程序的运行效率。Java语言的特点:1.简单性。Java语言是在C和C++计算机语言的基础上进行简化和改进的一种新型计算机语言。它去掉了C和C++种最难正确应用的指针和最难理解的多继承技术等内容,通过垃圾自动回收机制简化了程序内存管理,统一了各种数据类型在不同操作系统平台上所占用的内存大小。2.网络特性。Java语言是目前对网络支持最全面,与网络关系最密切的计算机语言之一。其对互联网络有着良好的支持。3.面向对象。Java语言在面向对象特性上比C++语言更为彻底的一种语言。面向对象模型是一种模拟人类社会和人解决实际问题的模型,因此更符合人们的思维习惯,而且容易扩充和维护。它的缺点是程序在开发的过程中往往会变得越来越庞大。4.平台无关性。平台无关性又称为可移植性。Java语言的设计目标是让其程序不用修改就可以在任何一种计算机平台上运行。解决异构操作系统兼容性问题是一个很艰巨的任务。虽然Java语言并没有完全实现最初的设计目标,但在这方面确实是同类语言中做的最好的。5.健壮性。鲁棒性指的是程序执行的稳定性。Java语言的垃圾自动回收机制和异常处理机制以及它的简单性在很大程度上保证了程序的鲁棒性。6.安全性。在网络上运行的Java语言是符合网络安全协议的。在执行Java程序的过程中,Java虚拟机对程序的安全性进行检测。一般说来,Java程序是安全的,它不会访问或修改不允许访问的内存或文件。7.多线程性。多线程性主要用来处理复杂事务或需要并行的事务。组成Java虚拟机的各个程序本身一般也采用多线程机制。采用多线程机制是提高程序运行效率的一种方法,但同时也增加了程序的设计难度。8.解释性。Java语言是一种解释执行的语言。这是Java语言的一个缺点,因为解释执行的语言一般会比编译执行的语言的执行效率要低。Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。3.1.4SSH框架 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(DataAccessObjects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。系统的基本业务流程是:在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的SpringIoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。Struts2Struts对Model,View和Controller都提供了对应的组件。ActionServlet,这个类是Struts的核心控制器,负责拦截来自用户的请求。Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。Model部分:由ActionForm和JavaBean组成,其中ActionForm用于将用户的请求参数封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionForm里面的请求参数处理用户的请求。JavaBean则封装了底层的业务逻辑,包括数据库访问等。View部分:该部分采用JSP(或HTML、PHP……)实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。对应上图的JSP部分。Controller组件:Controller组件有两个部分组成——系统核心控制器,业务逻辑控制器。系统核心控制器,对应上图的ActionServlet。该控制器继承了HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用Model来完成处理。对应Action部分。SpringSpring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个核心接口分别加以介绍。Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。SessionFactory接口:SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。系统架构设计该客户管理系统采用B/S模式,服务器采用轻量级应用服务器Tomcat,该服务器运行时所占用的系统资源小,支持负载平衡与邮件服务等开发应用系统常用的功能。有着良好的跨平台性和安全性,可以运行在包括windows、Linux、mac等操作系统上。用户客户端使用各种浏览器都能够进行正常的浏览和操作。需要注意的是在程序的开发过程中,程序和路径相关的要考虑到不同的操作系统的文件目录结构。B/S结构,即Browser/Server(浏览器/服务器)结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起,对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(VBScript、JavaScript等)和ActiveX技术,是一种全新的软件系统构造技术。B/S三层体系结构采用三层客户/服务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件将应用分为表示层、业务逻辑层和数据存储层三个不同的处理层次。三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。B/S结构的三层体系结构图如图3-1所示。图3-1B/S三层体系结构在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由WebServer完成。随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。B/S三层体系结构的主要优点:•B/S模式提供灵活的信息交流和信息发布服务。B/S模式借助Internet强大的信息发布与信息传送能力可以有效地解决企业内部的大量不规则的信息交流•可共享性。单个应用服务器可以为处于不同平台的客户应用程序提供服务,在很大程度上节省了开发时间和资金投入;•较好的安全性。在这种结构中,客户应用程序不能直接访问数据,应用服务器不仅可控制哪些数据被改变和被访问,而且还可控制数据的改变和访问方式。•三层模式成为真正意义上的“瘦客户端”,客户端计算机不需要很高的硬件配置,也无需特殊的软件配置要求,只要有web浏览器就可以使用系统。•B/S模式提供了一致的用户界面:B/S模式的应用软件都是基于Web浏览器的,这些浏览器的界面都很相似。对于无用户交互功能的页面,用户接触的界面都是一致的,从而可以降低软件的培训费用。•在B/S模式下,外部的用户亦可通过通用的浏览器进行访问。•B/S模式的结构易于扩展:由于Web的平台无关性,B/S模式结构可以任意扩展,可以从一台服务器、几个用户的工作组级扩展成为拥有成千上万用户的大型系统。•B/S模式具有更强的信息系统集成性:在B/S模式下,集成了解决企事业单位各种问题的服务,而非零散的单一功能的多系统模式,因而它能提供更高的工作效率。开发环境与技术系统开发平台:MyEclipse8.5数据库管理系统软件:Oracle运行平台:Win7Java开发包:JDK5.0以上Web服务器:Tomcat6.0本系统采用的MVC架构模式开发技术的具体技术:SSH框架显示层:使用JSP技术开发数据访问层:使用DAO模式开发持久层:使用Hibernate框架开发第四章系统设计4.1总体设计4.1.1整体分析系统整体主要流程图,系统由登录页面开始,首先实现身份的识别,若和数据库中的数据匹配,则实现登录,根据系统的权限设置,允许登录者对系统进行权限内操作。进入管理员界面后,系统包括了营销管理、服务管理、客户管理、库存管理和邮件管理等功能模块。系统整体流程示意图如图4-1所示。图4-1系统整体主流程示意图4.1.2数据流分析数据流图(DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。在数据流图中没有任何的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。图4-2系统数据流图4.2详细设计4.2.1系统功能模块设计系统功能结构层次图主要是介绍系统功能的大体层次结构,使读者能够对系统功能有一个更加直观的把握。系统的软件结构如图4-3所示。图4-3客户管理系统功能能模块图4.2.2系统E-R图系统总体E-R图描述各个实体之间的相互关系,例如多个管理员都可以管理客户信息,同样多个客户信息也可以被多个管理员管理,1个管理员可以管理多条服务信息,具体描述如图4-4所示。图4-4系统总体E-R图系统管理员实体图管理员信息包括了管理员密码和用户名以及编号,方便管理员登录和操作设置。管理员拥有最高权限。系统管理员实体图如图4-5所示。图4-5系统管理员实体图营销信息实体图 营销信息包括了创建人、客户名称、编号、客户成功几率、联系人等重要信息,这些信息的管理关系着公司营销的业绩,是一项非常重要的模块。营销信息实体图如图4-6所示。图4-6营销信息实体图客户信息实体图为了对客户的信息进行有效地管理,用户需要清楚客户的名称、状态、等级、地区以及客户经理。客户信息实体图如图4-7所示。图4-7客户信息实体图服务信息实体图为了对服务进行更有效的管理,提高工作效率和工作质量,必须包括客户服务信息管理。对于客户信息的管理,需要了解服务创建人、服务创建时间、服务请求、服务类型等。服务信息实体图如图4-8所示。图4-8服务信息实体图4.2.3数据库设计根据需求分析以及系统功能的需要,系统信息数据存放在MySQL数据表中。下面给出重要数据表的简单描述。1.customer(客户信息表)该表存储了客户的基本信息,主要用于客户信息记录。字段属性描述如表4-1所示。列类型大小描述是否为空cust_idlong客户id(自动生成)(主键)cust_noNumber客户编号(唯一)否cust_namenvarchar2100客户姓名(公司名称)(唯一)否cust_regionNumber50客户地区,基础信息表外键是cust_manager_idNumber客户经理编号(指派人)(user.Id)外键是cust_levelNumber50客户等级是cust_satisfyNumber客户满意度是cust_creditNumber客户信用度是cust_addrnvarchar2300客户地址是cust_zipchar10客户邮政编码是cust_telnvarchar220客户电话是cust_faxnvarchar220客户传真是cust_websitenvarchar250客户网址是cust_licence_nonvarchar250营业执照注册号是cust_chieftainnvarchar250法人是cust_bankrollNumber(100)注册资金是cust_turnoverNumber(100)年营业额是cust_banknvarchar250开户银行是cust_bank_accountnvarchar250银行帐号是cust_local_tax_nonvarchar250地税登记号是cust_national_tax_nonvarchar250国税登记号是cust_statusNumber2客户状态0:正常1:客户流失预警是表4-1客户信息表2.cst_service(服务信息表)该表存储了记录服务的基本信息,主要用于服务信息的记录。字段属性描述如表4-2所示。列类型大小描述是否为空svr_idNumber(客户服务编号)系统自动生成(标识列、主键)否svr_typenvarchar220服务类型否svr_titlenvarchar2500服务概要否svr_cust_noNumber客户编号(cst_customer.cust_id)是svr_cust_namenvarchar2100客户名称svr_statusnvarchar210服务状态(0新创建、1已分配、2已处理、3已归档)否svr_requestnvarchar22000服务请求否svr_create_idNumber服务创建编号否svr_create_bynvarchar250服务创建人(客户经理)svr_create_dateDate服务创建时间否svr_due_idNumber服务分配编号svr_due_tonvarchar2服务分配给的人是svr_due_dateDate服务分配时间是svr_dealnvarchar22000服务处理是svr_deal_idNumbersvr_deal_bynvarchar250服务处理人是svr_deal_dateDate服务处理时间是svr_resultnvarchar2500服务处理结果是svr_satisfyNumber服务满意度是表4-2服务信息表3.sal_chance(营销信息表)该表存储了营销信息的基本信息,主要是营销信息的记录,该表的字段属性如表4-4。列类型大小描述是否为空chc_idnumber系统自动生成(标识列、主键)否chc_sourcenvarchar250机会来源是chc_cust_namenvarchar2100客户名称否chc_titlenvarchar2200概要(对销售机会的简要描述)否chc_ratenumber成功机率否chc_linkmannvarchar250负责人是chc_telnvarchar220负责人电话是chc_descnvarchar22000机会描述否chc_create__idnumber创建人编号外键(sys_user.user_id)否chc_create__bynvarchar250chc_create_datedate创建时间(默认为当前系统时间)否chc_due_idnumber指派给的人编号外键(sys_user.user_id)是chc_due_tonvarchar250chc_due_datedate指派时间是chc_statusnumber2销售机会状态为“已指派”、“未分配”或“已归档”。已指派或者叫开发中。已归档有两种状态:1、开发成功。2、开发失败。未分配”1.“已指派”(2.开发成功3开发失败)否表4-3营销信息表4.sys_user(用户信息表)该表存储了用户信息的基本信息,主要是用户信息的记录,该表的字段属性如表4-5所示。列类型大小描述是否为空user_idnumber系统自动生成(标识列、主键)否user_namenvarchar250用户名否user_passwordnvarchar250用户密码否user_role_idnumber用户权限(外键sys_role表role_id)(多对一)是user_flagnumber用户状态(1或0,0是禁用,1是正常)否表4-4用户信息表第五章系统实现5.1数据库连接Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。本系统使用Hibernate实现数据库的连接,体现了一定的优越性。5.2用户登录管理用户登录需要验证用户的用户名和密码,从而保证用户可见和可使用的资源。管理员和其他用户的登录界面是一样的,单击“登录”按钮后的调用相应函数,它根据用户名和密码,以及用户种类将界面重定向到各类用户的主界面上,登录界面调用了LoginAction类的Login()函数判断用户是否已经登录。5.3营销管理营销管理模块包含销售机会的管理和对客户开发过程的管理,子用例图如图5-1所示。图5-1子用例图营销的过程是开发新客户的过程。对老客户的销售行为不属于营销管理的范畴。客户经理有开发新客户的任务,在客户经理发现销售机会时,应在系统中录入该销售机会的信息。销售主管也可以在系统中创建销售机会。所有的销售机会由销售主管进行分配,每个销售机会分配给一个客户经理。客户经理对分配给自己的销售机会制定客户开发计划,计划好分几步开发,以及每个步骤的时间和具体事项。制定完客户开发计划后,客户经理按实际执行请跨功能填写计划中每个步骤的执行效果。在开发计划结束的时候,根据开发的结果不同,设置该销售机会为“开发失败”或“开发成功”。如果开发客户成功,系统自动创建新的客户记录。5.3.1销售机会管理创建销售机会使用者销售主管、客户经理输入要素 创建销售机会时需录入以下信息:数据项说明输入格式是否必填编号系统自动生成输入框只读机会来源文本客户名称文本是成功机率从0到100的数字数字是概要对销售机会的简要描述文本是联系人文本联系人电话文本机会描述文本是创建人自动填入当前登录用户,用户不可更改输入框只读是创建时间当前系统时间输入框只读是表5-SEQ表格\*ARABIC1处理流程从页面获取输入信息,在数据库中创建新记录。输出要素提示“保存成功”,或报告相应错误。页面必填项未填时不允许提交表单。修改销售机会业务概述对未分配的销售机会记录可以编辑。使用者销售主管、客户经理输入要素在销售机会管理的列表页面列出所有状态为“未分配”的销售机会记录,可选择一条进行编辑。在编辑页面,可以对机会来源、客户名称、成功机率、概要、联系人、联系人电话、机会描述进行编辑。其他信息不可编辑。处理流程在列表页面选择“未分配”的销售机会进行编辑,跳转到编辑页面;在编辑页面填入更新的信息,提交表单,保存新的信息到数据库。输出要素提示“保存成功”,或报告相应错误。页面必填项未填时不允许提交表单。删除销售机会业务概述状态为“未分配”的销售机会可以删除。删除时需要判断当前登录用户为该销售机会的创建人,否则不可删除。使用者销售主管、客户经理输入要素在“未指派”的销售机会列表中选择一项删除。处理流程点选删除操作后应提示“确认删除?”,用户选“确定”则执行删除操作,否则不执行。输出要素删除成功后提示“删除成功”。指派销售机会业务概述销售主管根据各客户经理的负责分区、行业特长等对销售机会进行指派。每个销售机会指派给一个客户经理,专事专人。指派成功后,销售机会状态改为“已指派”。使用者销售主管输入要素进行指派时需要选择输入客户经理,系统自动输入指派时间。两相皆为必输项。处理流程选择要指派的销售机会,察看销售机会的详细信息并选择客户经理进行指派。输出要素指派成功后提示“指派成功”,该销售机会状态改为“已指派”(即“开发中”)。5.3.2客户开发计划对“已指派”的销售机会制定开发计划,执行开发计划,并记录执行结果。客户开发成功还将创建新的客户记录。制定开发计划业务概述客户经理对分配给自己的销售机会制定开发计划。使用者客户经理输入要素在制定开发计划时,应显示出销售机会的详细信息。客户经理可以通过新建计划项,编辑已经有的计划项,即删除计划项来针对一个销售机会来制定客户开发计划。每个计划项包括两个输入要素:日期和计划内容,都是必输项。日期的输入格式为“2007-12-13”。编辑计划项时,日期不可以编辑。处理流程首先选择一“已指派”的销售机会进行指定计划的操作,然后制定计划。输出要素提交并更新当前页面时在计划项列表中显示新建的计划项。执行开发计划业务概述完成客户开发计划的制定后,客户经理开始按照计划内容执行客户开发计划,并按时记录执行结果。使用者客户经理输入要素对每个计划项填写执行效果,并保存。开发成功业务概述某个客户开发计划执行过程中或执行结束后如果客户同意购买公司产品,已经下订单或者签订销售合同,则标志客户开发成功。客户开发成功时,需修改销售机会的状态为“开发成功”。并根据销售机会中相应信息自动创建客户记录。使用者客户经理输入要素从列表中选择一个状态为“已指派”的销售机会,点选“开发成功”操作。或者在执行计划页面点选“开发成功”操作。处理流程修改销售机会的状态为“开发成功”。根据销售机会中相应信息(包括客户名称、联系人和联系人电话)自动创建客户记录。输出要素操作成功后提示“操作成功”。开发失败业务概述某销售机会在确认客户的确没有采购需求后,或不具备开发价值时可认为“开发失败”。使用者客户经理输入要素从列表中选择一个状态为“已指派”的销售机会,点选“终止开发”操作。或者在执行计划页面点选“终止开发”操作。处理流程修改销售机会的状态为“开发失败”。输出要素操作成功后提示“操作成功”。5.4客户管理客户信息是公司资产的构成部分之一,应对其进行妥善保管、充分利用。每个客户经理有责任维护自己负责的客户信息,随时更新。在本系统中,客户信息将得到充分的共享,从而发挥最大的价值。有调查表明,公司的大部分利润来自老客户,开发新的客户成本相对较高而且风险相对较大。因此我们有必要对超过6个月没有购买公司产品的客户应予以特殊关注,防止现有客户流失。客户管理的子用例图如图5-2所示。图5-25.4.1客户信息管理编辑客户信息业务概述客户经理可以编辑状态为“正常”的客户信息。使用者客户经理输入要素有“*”标记的为必输项。地区、客户等级的候选项由数据字典维护;客户经理候选项为所有状态为“正常”的系统用户。客户满意度和客户信用度候选项的值都是1~5。处理流程从列表中选择要编辑的用户点选“编辑”按钮,编辑特定客户的信息,输入新信息后点“保存”按钮,返回列表页面。输出要素提示“保存成功”或报告错误。管理客户联系人业务概述每个客户可以有多个联系人。使用者客户经理输入要素新建联系人时要输入姓名、性别、职位和办公电话,必输。还可输入手机号码和备注信息。注意:联系人是属于某个客户的。编辑联系人时姓名、性别、职位和办公电话为必输项。处理流程选择一个客户,显示其所有联系人的列表,从中选择进行编辑或删除操作,还可以给该客户添加联系人。输出要素客户的联系人信息。管理客户交往记录业务概述系统可以保存每个客户的交往记录。使用者客户经理输入要素客户经理完成客户服务后,需记录和客户交往的内容,特别是里程碑事件或有重大影响的事件。添加一个客户交往记录时需要记录事件发生的日期、地点、概要和详细信息,还可以填写一个备注信息。交往记录可以修改。但必输项不能修改为空。处理流程首先选择一个客户,然后针对这个客户维护交往记录信息。输出要素客户的交往记录数据。查看客户历史订单业务概述客户的历史订单数据是一个客户重要的信息。本系统中不提供订单管理的功能。订单数据需要从销售系统中读取。读取时只读取订单状态为“已发货”或“已回款”的数据(对应订单记录状态为5或6)。使用者客户经理输入要素本系统根据客户展示历史订单。处理流程首先选择一个客户,然后查看这个客户的历史订单,再选择一条历史订单查看订单明细。输出要素针对某一客户显示其全部已发货或已回款的历史订单,分页显示,最新的订单显示在前面。需要在列表中显示订单的编号、下单日期、送货地址、订单状态。对每个订单可以查看明细。在订单明细中需要显示订单的总金额。5.4.2客户流失管理客户流失预警业务概述系统自动检查没有下单的客户,并在本系统中提出预警。订单数据需要从销售系统中获得。使用者客户经理输入要素本功能由后台程序完成,没有输入界面。处理流程客户经理登录本系统后在客户流失管理中就可以看到。对客户流失预警可以采取“暂缓流失”和“确认流失”两种措施。。输出要素客户流失预警记录。暂缓客户流失业务概述对于系统自动产生的客户流失预警,负责该客户的客户经理要第一时间采取措施,充分了解客户流失的原因,并采取应对措施。然后在系统中使用“暂缓流失”功能点,填写采取的措施。使用者客户经理输入要素处理流程选择客户流失预警记录,添加加暂缓措施。输出要素该客户的状态修改为“暂缓措施”。确认客户流失业务概述如果确是存在不可逆转的因素,客户不可能再购买本公司的产品,则确认该客户的流失。使用者客户经理输入要素在确认客户流失时要填写客户流失的原因。处理流程选择一条客户流失预警,填写客户流失原因,确认客户流失。输出要素确认客户流失后,该客户的状态修改为“已流失”。图5-3待开发…5.5服务管理待开发…5.6统计报表图5-5待开发…5.7基础数据图5-6数据字典管理业务概述对系统中需要已选择的方式输入的输入项的候选项,统一通过数据字典来配置。比如服务类型、客户等级等。使用者系统管理员输入要素每个数据字典项包括系统自动生成的编号、类别(如:服务类型)、条目(如:咨询)和值(如:1)构成。数据字典项有的能编辑。有的不可编辑,只能查看。对于可以编辑的数据字典项,可以修改其类别、条目和值。还可以设为不可编辑。在数据字典项的列表中,对可编辑的数据字典项显示“编辑”和“删除”的操作按钮。处理流程输出要素数据字典数据。查询产品数据业务概述本系统中没有产品数据,需要从销售系统中获得。使用者客户经理输入要素可以根据产品的名称、型号、批次进行查询。处理流程输出要素列出符合查询条件的产品信息。查询库存业务概述为了处理客户服务的需要,本系统需要从销售系统中读取并查询库存数据。使用者客户经理输入要素可以根据产品和仓库进行查询。处理流程输出要素列出符合查询条件的库存记录。5.8权限管理与本系统相关的用户和角色包括:系统管理员:管理系统用户、角色与权限,保证系统正常运行。销售主管:对客户服务进行分配。创建销售机会。对销售机会进行指派。对特定销售机会制定客户开发计划。分析客户贡献、客户构成、客户服务构成和客户流失数据,定期提交客户管理报告。客户经理:维护负责的客户信息。接受客户服务请求,在系统中创建客户服务。处理分派给自己的客户服务。对处理的服务进行反馈。创建销售机会。对特定销售机会制定客户开发计划。执行客户开发计划。对负责的流失客户采取“暂缓流失”或“确定流失”的措施。高管:审查客户贡献数据、客户构成数据、客户服务构成数据和客户流失数据。第六章系统测试6.1测试的作用和意义系统测试是系统的开发周期中一个十分重要的环节。尽管在系统开发周期的各个阶段均采取了严格的技术审查,但依然难免会留下错误,如果没有在投入运行前的系统测试阶段被发现并纠正,问题迟早会在运行中暴露出来,到那时纠正错误将会付出更大的代价。系统测试占用的时间、花费的人力和成本占软件开发的很大比例。统计表明,开发较大规模的系统,系统测试的工作量大约占整个软件开发工作量的40%-50%.而对于一些特别重要的大系统,测试的工作量和成本更大,甚至超过系统开发其他各阶段的总和的若干倍。6.2测试方法通过在计算机上直接运行被测程序,来发现程序中的错误。机器测试包括黑盒测试和白盒测试。黑盒测试也称功能测试,将软件看做黑盒子,在完全不考虑程序的内部结构和特性的情况下,研究软件的外部特性。根据软件的需求规格说明书测试用例,从程序的输入和输出特性上测试是否满足设定的功能。白盒测试也称结构测试,将软件看做一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查与测试是否相符。6.3测试内容软件的正常运行、关闭及退出。用户登录界面友好,可操作性及安全性能较好,能对不同管理级别者进行限制,以保证数据库的安全。数据库的可维护性好,数据的录入、删除及更改均能顺利完成,并实现动态更新。数据查询便捷,能对各种不同的查询条件进行搜索,以找到最合适的答案。数据溢出、越界均能进行非法提示,以警告用户正确使用。数据类型填写错误时,系统能够报错。软件对操作系统的兼容性良好,可移植性完好。6.4测试结果登陆成功(以管理员身份)进入主界面。开始对系统全方面的测试,在测试的过程中,对系统做出了在少量数据交换时的运行情况,在有大量数据交换时的数据处理能力、速度、是否发生数据错误等。软件在运行、关闭及退出时保存记录的提示功能基本完成,在软件的不断启动关闭过程中没有出现死机、程序执行效率降低等各种不良现象,功能的实现较为完善。用户登录界面友好,但软件界面的色彩选择、搭配对于长期工作者而言仍然会产生眼部不适感。可操作性及安全性能较高,能完成对不同管理级别者的限制工作,可以对软件涉及到的机密数据进行保护而无法保证数据库的基本安全。数据库的可维护性好,数据的录入能顺利完成,并能实现动态更新,删除和修改也能顺利完成。数据查询比较全面,能按系统设定的查询条件进行搜索,并可以进行模糊查询以找到合适的答案。数据溢出、越界基本未能进行非法提示,以警告用户正确使用。对用户的非正常操作方式也未能提出警告。数据类型填写错误时,系统有报错功能,在数据输入错误时,使用者能够知道错误所在。6.5开发技巧和难点分析jsp页面乱码问题Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。首先Java(包括JSP)原文件中很可能有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。基于这种乱码,建议在Java文件中尽量不要写中文(注释部分不参与编译,写中文没关系),如果必须写的话,尽量手动带参数-encodingGBK或-encodinggb2312或-encodingUTF-8编译;在JSP文件加上<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>就能基本解决乱码问题。图形验证码问题大部分Web程序都不会局限于局域网,而是在整个互联网都可以访问。这时面对的用户群都非常广了,而这些用户当中可能会有一些“破坏分子”。对于他们来说攻击手段非常多,但是最简单同时最有效的就是大量的恶意注册和登录,例如在一秒钟之内注册5000个用户。这时系统的大部分资源都消耗殆尽,从而导致系统崩溃。既然有攻击手段,肯定会有相应的防御手段。防止用户大量恶意注册和登录最有效的办法就是生产图形验证码。用户只有正确输入图形验证码上显示的数字或者字母才能继续进行注册或者登录。这样用户就无法再短时间内,多次进行注册和登录了。用户权限问题就是用户的权利,即用一个账号登录后,有些功能可以使用,有些功能无法使用,这就是管理员对其设置的权限,只有符合权限的人才可以使用对应的功能。结束语经过三个多月的设计,一个基本完整客户关系管理系统设计完成了。设计完此毕业设计,首先让自己对Java这门课的掌握有了进一步的加深和巩固,能够更熟练的应用各种功能,特别是运用它来完成设计网页。感觉到Java在网页设计方面的应用的广泛和它的功能之精湛。通过对客户关系管理系统设计,对Java的进一步了解,对Java这门课有了很大的信心和勇气,在设计之前一直不相信自己,萎萎缩缩,都认为自己没有办法做成自己预期的效果,现在对自己的作品稍微满意,对自己有了一定的肯定,明白做事是重在有心,有志者竟事成!信心是成功的一半,相信自己在今后的学习当中能够将Java做的更加完美。但是由于毕业设计时间较短,所以该设计还有许多不尽如人意的地方,比如界面不够美观,渲染不够完善等。致谢四年的大学生活即将结束,在完成毕业论文这最后一份作业的时刻,我内心既兴奋,又怀念。兴奋的是我即将顺利走完大学四年的美好时光,并且有机会继续深造,怀念的是大学期间的点点滴滴。经过一学期的努力,我的论文在焦老师的悉心指导和严格要求下已完成,从课题选择和论文结构设计各方面,焦老师都给了极大的帮助。在此,我郑重感谢焦老师给予我这次宝贵的学习机会,能够在毕业实习期间完成毕业论文并继续研究该技术是我的荣幸。同时,感谢老师在论文的具体撰写过程中的耐心指导和帮助,他的真挚情感和的实际援助帮我渡过了很多难关。感谢大学期间的每位任课老师的无私奉献,课堂上的认真负责让我对学习有了新的认识,课后的真诚交流更是给了我极大的鼓励。大学老师是我成长最好的向导。他们的教育使我较全面的掌握了专业知识,并能够在毕业论文中得以应用。在此,特别感谢信息学院电子信息工程系各位老师的辛勤付出。四年前,我只身一人来西安求学,而在即将离开大学校园时,我已拥有很多朋友,他们是我最大的财富。感谢室友给我创造了家的归属感。感谢以及祝福我们的朋友,感谢他们在四年大学生活中对我的包容,在困难时刻给了我强大的精神支柱。祝愿所有的同学、朋友、老师都能够有美好的前程!参考文献[1]蒋卫祥.CRM系统论述[M].北京:北京大学出版社.[2]李钟尉,陈丹丹等.Java项目开发案例全程实录(第2版)[M].明日科技出版社
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 担保合同条款确认协议书(2篇)
- 二零二五年度初级农产品电商平台内容合作合同3篇
- 2025年绿色建筑门面租赁及物业管理服务合同3篇
- 2025年度跨国企业外籍员工绩效考核合同
- 二零二五版模具开模与全球市场拓展合同3篇
- 2025年度文化创意产业园代建合同范本4篇
- 二零二五年度土地复垦项目风险评估与管理合同
- 2025年度智能电网项目施工与运维个人雇佣合同4篇
- 2025版存单质押生物科技产业贷款担保合同3篇
- 2025年度个人二手房买卖合同(限价版)4篇
- 国家中医药管理局发布的406种中医优势病种诊疗方案和临床路径目录
- 2024年全国甲卷高考化学试卷(真题+答案)
- 汽车修理厂管理方案
- 人教版小学数学一年级上册小学生口算天天练
- 三年级数学添括号去括号加减简便计算练习400道及答案
- 苏教版五年级上册数学简便计算300题及答案
- 澳洲牛肉行业分析
- 老客户的开发与技巧课件
- 计算机江苏对口单招文化综合理论试卷
- 成人学士学位英语单词(史上全面)
- KAPPA-实施方法课件
评论
0/150
提交评论