基于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.mzph.cn/news/845682.shtml

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

相关文章

网络原理-TCP/IP --传输层(UDP)

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 今天你敲代码了吗 目录 端口号UDP协议 端口号 我们在学习套接字的时候,涉及到两个概念:IP地址和端口号 IP地址是用来确定主机,这是网络层提供的概念 而端口号就是用来确定主机上的应用程序,就是传输层的概念的…

std::scoped_lock

scope--范围 当创建一个 std::scoped_lock 对象时,它尝试取得其所给互斥量的所有权,即上锁。当控制权离开创建 scoped_lock 对象的作用域时,scoped_lock 会被析构,互斥量随之被释放。 链接

代码随想录35期Day54-JavaScript

Day54题目 ### LeetCode739每日温度 核心思想:今天主要是学会单调栈的使用.找到比元素更大的下一个元素,如果比栈顶元素小就入栈,否则就出栈顶元素,当前元素就是比栈顶元素大的"下一个更大的元素". /*** param {number[]} temperatures* return {number[]}*/ var …

Linuxftp服务003虚拟用户登入

如果基于Vsftpd系统用户访问FTP服务器,系统用户越多越不利于管理,而且不利于系统安全管理,鉴于此,为了能更加的安全使用Vsftpd,需使用Vsftpd虚拟用户方式。 虚拟用户原理: 虚拟用户就是没有实际的真实系统…

CANDela studio新建和编辑服务

服务定义和编辑只能够在CDDT里面进行,思路分为三步: 1、Protocol Services里面添加服务,定义服务的格式、请求和正负响应。 2、根据服务的功能归类到Diagnostic Class Tenplates 3、Variant里面的Supported Diagnostic Classes勾选 然后我…

题目:回答结果(结构体变量传递)

题目:回答结果(结构体变量传递) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about …

【2023百度之星初赛】跑步,夏日漫步,糖果促销,第五维度,公园,新材料,星际航行,蛋糕划分

目录 题目:跑步 思路: 题目:夏日漫步 思路: 题目:糖果促销 思路: 题目:第五维度 思路: 题目:公园 思路: 新材料 思路: 星际航行 思路…

Ubuntu基础使用

快捷键: 命令行打开快捷方式:Ctrl Alt T Ctrl l 清屏 截屏: LinuxOS命令: 显示当前工作目录所有内容:ls (-a -l、-lh) -a 输入全部内容(包括隐藏文件) -l 竖向展示…

CompassArena 司南大模型测评--代码编写

测试角度 要说测试模型,对咱们程序员来说,那自然是写代码的能力强不强比较重要了。那么下面我们以 leetcode 中的一道表面上是困难题的题目来考考各家大模型,看看哪个才应该是咱们日常写程序的帮手。 部分模型回答 问题部分如下截图&#…

GUI与Web前端:深入剖析与比较

GUI与Web前端:深入剖析与比较 在数字化时代的浪潮下,图形用户界面(GUI)和Web前端作为人机交互的两大关键领域,各自承载着不同的功能与价值。本文将从四个方面、五个方面、六个方面和七个方面,对GUI和Web前…

Linux前奏-预热版本

一、操作系统概述 1.1 了解操作系统的作用 我们所熟知的计算机,也就是电脑,就是由硬件和软件来组成的 硬件:计算机系统中由电子机械,和各种光电元件等组成的各种物理装置的总称 软件是什么呢? 软件:用…

调查问卷和考试系统SurveyKing

什么是 SurveyKing ? SurveyKing 是功能更强大的调查问卷、考试系统,很多功能体验超过问卷网、问卷星。支持在线考试/调查问卷/公开查询/题库刷题/投票。 软件特性 🥇 支持 20 多种题型,如填空、选择、下拉、级联、矩阵、分页、签…

【Java】Java主要知识点目录整理

一、Java SE概述 作者相关文章链接: 1、【Java】JavaSE概述-CSDN博客 Java SE(Java Platform, Standard Edition)是Java编程语言的标准版,主要用于开发桌面应用程序、控制台应用程序以及一些简单的中小型Web应用。以下是Java S…

QiuDN:新手友好的公益CDN

在数字化的今天,网站的速度将直接影响着用户体验和搜索引擎排名,因此,作为一名网站管理员,我一直在寻找能够提升网站速度的解决方案。在一次偶然的机会中,我了解到了QiuDN,一个公益性质的CDN。听创始人称丘…

Vue3-Ref Reactive toRef toRefs对比学习

响应式数据: Ref 作用:定义响应式变量。 语法:let xxx ref(初始值)(里面可以是任何规定内类型、数组等)。 返回值:一个RefImpl的实例对象,简称ref对象或ref,ref对象的value属性是响应式的。 注意点&am…

使用Python库Matplotlib绘制常用图表类型

使用Python库Matplotlib绘图 一、Matplotlib绘图参数设置1.1 设置分辨率和画布大小1.2 保存图片并设置边缘留白为紧凑型1.3 设置坐标轴标签1.4 画直线设置线宽和颜色1.5 画子图1.5.1 通过figure的add_subplot()画子图1.5.2 通过plt的subplots画子图 二、使用Matplotlib中scatte…

深入解析芯片背后的技术:揭开半导体产业的神秘面纱

引言: 在这个数字化、信息化的时代,芯片已经成为了现代科技发展的重要基石。从智能手机、电脑到汽车、物联网设备,芯片无处不在。然而,对于大多数人来说,芯片背后的技术仍然是一个神秘而遥不可及的领域。本文将深入解…

【Linux-阻塞,非阻塞,异步】

Linux-阻塞,非阻塞,异步 ■ Linux-阻塞-非阻塞 IO-异步■ Linux-阻塞IO■ 阻塞IO简介■ open■ 等待队列■ 示例一:APP阻塞IO读取进入睡眠后-等待队列唤醒进程■■ ■ Linux-非阻塞IO■ 非阻塞IO简介■ open■ 轮询■ 1、select 函数■ 2、po…

LeetCode 2965.找出缺失和重复的数字:小数据?我选择暴力(附优化方法清单:O(1)空间方法×3)

【LetMeFly】2965.找出缺失和重复的数字:小数据?我选择暴力(附优化方法清单:O(1)空间方法3) 力扣题目链接:https://leetcode.cn/problems/find-missing-and-repeated-values/ 给你一个下标从 0 开始的二维…

Cholesky分解(A=L * L^T)

Cholesky分解是一种用于解线性方程组和计算矩阵平方根的算法,特别适用于对称正定矩阵。这种方法相比于其他解法(如高斯消元法)在数值稳定性上通常有更好的表现,并且能够有效地利用矩阵的对称性和正定性。下面简要介绍如何使用Chol…