基于java的CRM客户关系管理系统(二)

目录

第二章 相关技术介绍 

2.1 后台介绍 

2.1.1 B/S平台模式  

2.1.2 MVC

2.1.3 Spring

2.1.4 Hibernate

2.1.5 Struts

2.2 前端介绍

2.2.1 JSP网页技术

2.3 开发工具

2.4 本章小结


前面内容请移步

基于java的CRM客户关系管理系统(二)

资源+毕业设计+毕业论文+源代码请移步

CRM客户关系管理系统+毕业论文+毕业设计+源代码

第二章 相关技术介绍 

2.1 后台介绍 

2.1.1 B/S平台模式  

        B/S 平台模式。在客户端上装置浏览器(Browser),如360、Firefox,服务器端就需要安装数据库,例如Oracle数据库、Mysql数据库、SqlServer2008或者SqlServer2010。浏览器经过 Web服务和Web服务器进行数据流转,服务器再和数据库进行数据的对接。B/S 平台模式中,第一层的是客户端,第二层的是Web服务层,可以由一台或多台服务器构成,可以动态的根据应用的需要增加或者减少服务器的个数,因此Web服务层是动态变化的,第三层的是数据层,组成部分是数据库系统和持久化层。系统维护时只需要对服务器进行升级或者其他操作,但是对浏览器就不需要做出巨大维护变动。这样客户端可以变“瘦”,而服务器端则越来越“胖”,但是更加的安全便捷。如图2-1所示

图2.1 典型的B/S架构图

2.1.2 MVC

        MVC 三层架构设计模式分为三个部分,M(模型),V(视图),C(控制),每个部分都有应该有的功能和任务,然而他们又是一个整体,共同解析用户的请求并返结果。层与层之间的代码、逻辑的拆开使得系统的整体性更清晰。如图2-2 所示为三层结构的基本构架。

        视图(View):视图是最先也是唯一一个和用户面对面交流的层次,也就是用户能用肉眼看到的。在Web 应用程序中,应用程序的界面的处理和设计变得多样化。视图层没有对传递的数据进行处理的功能,就是对数据提供不同形式的呈现输出方式。

        模型(Model):经过了模型处理的数据可以通过定义好的视图去呈现结果,说到具体的模型,模型就是明确定义了一对业务规则的数据。模型的另一个优点就是支撑模型的代码可以被多个视图重用使用,减少了代码的冗余度。

        控制器(Controller):用一个形象的比喻,控制器就是一个人的大脑,起到的是关键的调度作用,他的过程是这样的:当用户的请求被发出后,控制器接纳申请内容但是对申请不做处理,然后就转发请求信息给相应的模型和视图去处理和呈现数据结果

图2.2 MVC结构

2.1.3 Spring

        Spring框架采用分层架构,如图2-3

  1. Spring Core:BeanFactory是SpringCore最基础的组成,工厂模式的设计方式的使用就是希望每次调用对象的时候就去创建,浪费资源,把应用程序的代码和配置信息分离开来,达到互不干扰的目的。
  2. Spring AOP:Spring中的切面功能。
  3. Spring DAO:数据访问层就是dao,这个模块的最强大的作用就是操作Hibernate下的持久化对象。
  4. Spring ORM::目的是通过Spring 映射,让 Hibernate 和SQL 或者HQL的集成使用。
  5. Spring Web容器:web容器存在的目的是为该系统程序访问上下文信息。
  6. LOC:控制反转(依赖注入),在使用控制反转的程序中,对象不会被直接创建,而是规定怎样去创建它们。在配置文件是用来描述组件和功能怎么样进行合理的组合。对象由容器所创建,对象的必要属性也能通过容器进行设置,最后容器通过配置管理将各部分联系在一起,并调用方法。表2-1所示是控制反转的类型,一般来说loC容器由采用后两种实现模式。

图2.3 spring基本模块

表 2-1 LOC实现类型

 类型一

服务需要专门的接口,通过接口,由对象提供这些服务,可以从对象查询服务的依赖性

 类型二

通过JavaBean的属性分配依赖性

 类型三

依赖性由构造函数提供

2.1.4 Hibernate

        Hibernate 框架使用的非常妙的地方是运用了数据库到java类的反射体系,通过对关系映射文档进行 XML 解析,然后就可以通过一系列的层次对象操作数据库数据,它和JDBC有很大的不同,也有很多相同之处,相同之处就在于Hibernate框架和JDBC 都是与数据经常操作,查询数据库数据返回前台或者就是前台数据存储在数据库里面。

1.ORM:Object Relation Mapping,从字面上理解及时对象关系映射,这个功能就很有用处了,定义了需要的持久化对象后,还需要对实体对象和数据库的表名进行一一对应的联系。

2.Hibernate 的API

         Hibernate 框架基本组成是有Session、SessionFactory、Transaction、Query、Criteria 、Configuration等六个核心接口。下面就逐一对这几个接口说明下我自己的理解。

  1. Session 接口:Session 接口与持久层中java对象的持久化有关,这个接口下的crud方法可以完成持久化。
  2. SessionFactory 接口:这个会话工厂接口需要完成的工作就是读入Hibernate配置文件里的Sessionfactory内容,构架出sessionfactory并且要完成对Hibernate进行初始赋值的任务。
  3. Configuration 接口:Configuration这个接口主要在配置上有大用处,当Hibernate框架开启的时候,需要首先创建一个会话工厂对象,这需要Hibernate框架需要调度Session接口和Sessionfactory接口完成对factory工厂类的构建,然而这些都是需要configuration接口去完成一系列的操作的。
  4. Transaction 接口:控制事物的接口,是对数据的原子性,一致性的保证。

        5.  Query 和 Criteria 接口:这两个接口在Hibernate框架里扮演着和数据库打交道的角色和地位,通过query或者criteria接口根据请求信息操纵数据库信息,达到预料的目的,同时他们也都对应着HQL和SQL的操作方式。

图2.4 Hibernate结构

2.1.5 Struts

1. Struts 概述

        Struts 框架在开发中算是比较经典了,特别是在结合了像MVC三层架构这样的观念思想后就更为大家所接受。Struts框架的简单原理就是这样的:Struts预先就定义好了Controller,也就是用于控制的控制器。首先就是去配置文件里面读取相关的配置信息要求,值得注意的是该文件的名称可以struts-config.xml,也可以用其他的形式命名。当用户的请求进入系统之后,首先对用户所要提交的数据进行打包,经过模型层和视图层的流转和相关处理,进入数据库。值得一提的是各个层次之间相互分开,都有各自的功能,在理解层次上更清晰。Struts 框架可以这样说,是更加紧密的把三层架构思想联系在一起。图 2-4 表现的Struts框架的各个组成部分具有相应的功能特点和各自的联系情况。

1)从视图角度(View)

        站在视图的视野上,也就是前台页面呈现的观点上,JSP页面的形成得益于这个Struts 结构的tagLib等库的运用进来,例如说Taglib标签库可以快速简单的调用标签然后去形成页面。

2)从模型角度(Model)

        模型主要是表示一个系统业务规则的状态体现。

3)从控制器角度(Controller)

        在理解中到的Struts框架语法里,Controller层站在控制的角度上就是对的是业务逻辑的实现进行管制,最主要也就是Action组件的控制,由于Action组件是系统的逻辑业务的最终完成层和承担者,例如:ActionForword就定义了业务逻辑根据不同的需求进行流转。

图2.5 Struts三层图

2. Struts 工作流程

        Struts框架的使用很广,在大型前端应用程序的应用更为经典,例如说web系统,下面简单的说明下:web应用程序的启动就要去Struts的配置文件里读取配置信息,之后会把创建配置对象存放配置信息的内容,而后加载和构建ActionServlet对象等配置对象,执行如下流程步骤:

①首先判断ActionServlet是否存在。当不存在的时候,返回的信息就应该为无效的,这时候就有必要执行第二步。

②当判断出ActionServlet不存在时就需要把客户提交的表单数据保存在另外一个对象里,所以需要需要创建ActionFom对象。

③对接收的表单数据按照配置信息所要求的进行规则验证。

④验证成功的表现:当执行完ActionForm.validate()方法后得到的结论有两种状况:一种情况是返回空(NULL),另一种情况是不包括ActionMessage的ActionErrors 对象。

⑤ActionServlet把请求信息转发给相应的Action层,那么Action层的具体实例对象就可以调用exexcute()方法,假定action的对象载体没有构建,就需要立马构建一个。

⑥ Action对象载体带有的方法调度完成后就会得出一个成果,那么ActionServlet就会把这个结果转发给相应的JSP页面。

⑦ JSP技术中带有的组件动态的生成页面展现出现。

2.2 前端介绍

2.2.1 JSP网页技术

        JSP网页技术,Java Server Page顾名思义是把Java代码嵌在服务页面的开发技术 它的组成部分有Java代码,html的语法规则,Jsp标签。JSP的大致变化是这样的,首先通过表单来获取用户数据并提交给系统,系统再把结果返回通过JSP组件动态的创建页面显示。JSP页面的执行过程如图

图2.6 JSP页面的执行过程

  1. 客户端登录上浏览器上访问特定的网址,由资源的路径信息的请求发出,服务器接收请求并解析路径信息,找到被请求的资源。
  2. 找到资源后就开始加载JSP或和html页面文件。
  3. JSP文件在JSP组件的处理下被以Servlet代码保存。
  4. 产生的servlet代码就可以进行编写译为Class代码文件。
  5. Class文件就是一被服务器的组件所识别然后执行。
  6. 系统执行的结果会在被浏览器所展示。

2.3 开发工具

软硬件环境需求

        浏览器采用IE,360,GooGle。

        系统JVM为JDK1.6或更高版本。

        系统数据库使用MySql配合图形化界面HeidiSql

        系统的集成幵发环境MyEclipse2012。

        Web容器Tomcat7.0

        系统的技术架构:Struts2.0+Spring4.0+Hibernate3.0

2.4 本章小结

        本章对完成论文的理论基础及需要的关键技术进行了论述,系统决定使用的是的B/S 平台开发然后,分别介绍了 SSH等框架和JSP前端技术。最后说明了完成该系统的软硬件要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/338234.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看docker中各个容器所占的资源

要查看Docker中的每个容器占用的资源,可以使用docker stats命令。这个命令提供了容器的实时资源使用统计,包括内存使用情况。以下是如何使用docker stats命令的示例: docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsa…

Appium安装及配置(Windows环境)

在做app相关自动化测试,需要使用appium来做中转操作,下面来介绍一下appium的环境安装配置 appium官方文档:欢迎 - Appium Documentation 一、下载appium 下载地址:https://github.com/appium/appium-desktop/releases?page3 通…

进程——linux

目录 冯诺依曼体系结构(计算机组成原理与体系结构) 关于冯诺依曼,必须强调几点: 操作系统(Operator System) 概念 设计OS的目的 定位 如何理解 "管理" 总结 系统调用和库函数概念 承上启下 一、进程 基本概念…

C++:细谈Sleep和_sleep

ZINCFFO的提醒 还记得上上上上上上上上上上上上上上上上上上(上的个数是真实的)篇文章吗? 随机应变——Sleep()和_sleep() 但在ZINCFFO的C怪谈-02中: 我不喜欢Sleep...... 奤?媜煞鷥! 整活!…

STL中stack的使用

目录 一、stack类介绍和使用 stack类介绍 stack类定义 stack类常见构造函数 stack数据操作 empty()函数 top() pop() 和 push() 函数 size()函数 swap()函数 一、stack类介绍和使用 stack类介绍 1.stack是一种容器适配器,专门用在具有后进先出操作的上下…

C语言 指针——函数指针

目录 什么是函数指针? 函数指针的定义 定义函数指针时的常见错误 函数指针有什么用? 函数指针的主要应用 什么是函数指针? 函数指针 (Function Pointer) 就是指向函数的指针变量 数据类型 ( * 指针变量名 ) ( 形参列表 ); 例如&#x…

Python 机器学习 基础 之 处理文本数据 【停用词/用tf-idf缩放数据/模型系数/多个单词的词袋/高级分词/主题建模/文档聚类】的简单说明

Python 机器学习 基础 之 处理文本数据 【停用词/用tf-idf缩放数据/模型系数/多个单词的词袋/高级分词/主题建模/文档聚类】的简单说明 目录 Python 机器学习 基础 之 处理文本数据 【停用词/用tf-idf缩放数据/模型系数/多个单词的词袋/高级分词/主题建模/文档聚类】的简单说明…

什么是PLAB?

接上文PLAB---》 可以看到和TLAB很像,PLAB即 Promotion Local Allocation Buffers。用在年轻代对象晋升到老年代时。 在多线程并行执行YGC时,可能有很多对象需要晋升到老年代,此时老年代的指针就"热"起来了,于是搞了个…

秒杀基本功能开发(显示商品列表和商品详情)

文章目录 1.数据库表设计1.商品表2.秒杀商品表3.修改一下秒杀时间为今天到明天 2.pojo和vo编写1.com/sxs/seckill/pojo/Goods.java2.com/sxs/seckill/pojo/SeckillGoods.java3.com/sxs/seckill/vo/GoodsVo.java 3.Mapper编写1.GoodsMapper.java2.GoodsMapper.xml3.分别编写Seck…

数据库(10)——图形化界面工具DataGrip

以后关于数据库的图片演示就使用DataGrip了 : ) 创建数据库和表 在连接上数据库之后,可以选择Schema创建一个新的数据库。 点击OK后,就已经创建了一个空的表。 要在数据库中建立一张新的表,右键数据库,点击new table 要给新表添…

Java对sqlserver表的image字段图片读取和输出本地

Java代码实现对sqlserver数据库表的image字段图片的读取,和输出存储到本地 由于表image字段图片存的内容是二进制值,如何输出保存到本地: 代码示例:(注:连接sqlserver数据库需配置其驱动文件) …

让EXCEL VBA支持鼠标滚轮,vb6 IDE鼠标滚轮插件原理

vb6 IDE鼠标滚轮插件怎么运行的(适用于VBA) 使用 Spy,我发现代码窗口正在获取 WM_MOUSEWHEEL 事件,但没有触发 WM_VSCROLL 消息。因此,我编写了一个简单的消息钩子,当它捕获鼠标滚轮事件时触发滚动事件。 我从 Spy 得知代码窗口的…

Android 项目Gradle文件讲解(Groovy和Kotlin)

Android 项目Gradle文件讲解(Groovy和Kotlin) 前言正文一、Gradle的作用二、Gradle的种类① 工程build.gradle② 项目build.gradle③ settings.gradle④ gradle.properties⑤ gradle-wrapper.properties⑥ local.properties 三、Groovy和Kotlin的语言对比…

系统安全及其应用

系统安全及其应用 部署服务器的初始化步骤: 1、配置IP地址,网关,DNS解析 2、安装源,外网(在线即可yum) 内网(只能用源码包编译安装) 3、磁盘分区 lvm raid 4、系统权限配置和基础安…

【ArcGISPro】3.1.5下载和安装教程

下载教程 arcgis下载地址:Трекер (rutracker.net) 点击磁力链下载弹出对应的软件进行下载 ArcGISPro3.1新特性 ArcGIS Pro 3.1是ArcGIS Pro的最新版本,它引入了一些新的特性和功能,以提高用户的工作效率和数据分析能力。以下是ArcGIS…

神经网络的工程基础(二)——随机梯度下降法|文末送书

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型:从线性回归到通用人工智能》,欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下:regression2chatgpt/ch06_optimizer/stochastic_gradient_descent.ipynb 本文将讨论利用…

QT——QSlider实现,QT滑动控件的使用

目录 简介滑动块调节两种方法滑动条触发信号量理想滑动块运用(参考) 简介 QT中滑动条的控件叫QSlider,继承自QAbstractSlider类。 主要用途是通过滑块的滑动的方式在一定范围内调节某个值。根据调节的后得到的结果去执行一些处理&#xff0c…

第十三章 进程与线程

第十三章 进程与线程 程序与进程的概念 程序: 英文单词为Program,是指一系列有序指令的集合,使用编程语言所编写,用于实现一定的功能。 进程: 进程则是指启动后的程序,系统会为进程分配内存空间。 函数式…

浅析R16移动性增强那些事儿(DAPS/CHO/MRO)

R16移动性增强相关技术总结 Dual Active Protocol Handover Dual Active Protocol Handover意为双激活协议栈切换,下文简称DAPS切换,DAPS切换的核心思想是切换过程中,在UE成功连接到目标基站前继续保持和源基站的连接和数据传输,…

贷款借钱平台 小额贷款系统开发小额贷款源码 贷款平台开发搭建

这款是贷款平台源码/卡卡贷源码/小贷源码/完美版 后台51800 密码51800 数据库替换application/database.php程序采用PHPMySQL,thinkphp框架代码开源,不加密后台效果:手机版效果 这款是贷款平台源码/卡卡贷源码/小贷源码/完美版 后台51800 密码…