好文档 - 专业文书写作范文服务资料分享网站

酒店客户关系管理系统设计与实现

天下 分享 时间: 加入收藏 我要投稿 点赞

第二章 技术架构和设计简介

2.1 系统构思

系统功能层次

表现层:包括JSP页面视图,静态HTML页面,CSS文档,JavaScript代码等,主要负责界面的呈现显示。

功能层:包括Struts类库,Struts2的Action类,Servlet类等。主要负责在服务器端调用服务层提供的服务来完成系统设计的所有功能。

服务层:包括提供服务接口的Java文件。Spring连接功能层。

数据层:包括Hibernate类库,提供数据访问接口的DAO类,数据库中表的域模型Java类和相应的X.hbm.xml文件,Hibernate配置文件。

系统底层:包括Win7操作系统,应用服务器Tomcat 6.x,数据库库软件MySQL 5.x。

2.2 关键技术与算法 2.2.1 分页技术

private int pageSize; //每页的记录数 private ArrayList list; //全部的记录 private int itemCount; //记录总数 private int pageCount; //页数 private int headPage; //首页编号 private int tailPage; //尾页编号 private int prevPage; //上一页编号 private int nextPage; //下一页编号 private int[] press = new int[5]; //可显示的页码

public PageSpliter(ArrayList list, int size) throws SQLException{ } public ArrayList getPage(int page){ if ( page > this.pageCount ) page = this.pageCount; 4

this.pageSize = size; this.list = list; this.itemCount = this.list.size(); this.pageCount = itemCount/size + 1;

} else if ( page <= 0 ) page = 1; newPage(page); //计算相关分页数据 int start = (page - 1) * this.pageSize; //目标项目的起始编号 int end = (start + this.pageSize) > this.list.size() ? this.list.size() : (start + pageSize); //目标项目的结束编号 ArrayList subList = new ArrayList(); for(int i = start; i < end; i++) subList.add(this.list.get(i)); return subList; private void newPage(int page){ } if ( this.itemCount > 0 ){ this.headPage = 1; this.tailPage = this.pageCount; this.prevPage = page == 1 ? 0 : (page - 1); this.nextPage = page == this.pageCount ? 0 : (page + 1); int start = (page-1)/5 * 5 + 1; for(int i = 0; i < 5; i++, start++) this.press[i] = start > this.pageCount ? 0 : start; } else { } this.headPage = 0; this.tailPage = 0; this.prevPage = 0; this.nextPage = 0; for(int i = 0; i < 5; i++) this.press[i] = 0; 2.2.2 数据库操作技术

对数据库的操作,如增加,删除,修改,查询等。这点不是难点,但是每个模块都涉及到了一些。

5

2.3 开发语言

目前,主流的编程语言有C++、C#、VB、PHP、Java。 本系统拟采用JAVA(统一写法)语言进行编写。

Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。

当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?

Java语言其实最早诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。

在Java出现以前,Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEB中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力。SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都心生感叹:噢,这正是我想要的!于是Java成了一颗耀眼的明星,丑小鸭一下子变成了白天鹅。

“一次编写,随处运行”,Java系统可以运行在不同的操作系统和硬件上。随着Linux的持续增长以及Mac OSX完全支持Java技术,跨平台的特性变得越来越有分量。

与C++等语言相比较,语法上Java是简单的。Java提供了垃圾回收机制。以往C++的开发中,最容易出错误的地方便是内存管理,申请的内存用完以后必须释放,否则可使用的内存资源越来越少,直至耗尽系统资源而造成死机。而Java系统中,你可以任意申请内存,Java系统会在适当的时候自动释放无用的内存资源。在Java中,要写出低劣的代码也不是一件容易的事情。一方面,垃圾回收机制堵住了内存泄漏的可能性,另一方面就是异常捕捉机制,它强迫你做最坏的打算。编写程序时,难免会遇到一些意外,比如文件无法打开、网络读取失败等特殊情况。在C++等语言中是依靠返回值来判断的,如果一句句地检查返回值,那实在是太麻烦了。从而,程序员习惯性地忽略返回值的检查,并安慰自己一切都会好起来的。这便埋下了隐患。在Java中,Java的方法可以抛异常,而你必须应答异常,即使你不想进行任何操作。比如编写打开文件的代码,你不得不响应异常以防意外发生,否则程序根本不能够通过编译。未雨绸缪,使得 Java系统更稳健。

2.4 项目界面原理分析 2.4.1 界面原理简介

6

该项目界面设计主要用AJAX技术。

AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。

通过 AJAX,您的 JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据。

AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请(端对齐)求),这样就可使网页从服务器请求少量的信息,而不是整个页面。

AJAX 可使因特网应用程序更小、更快,更友好。

AJAX 是一种独立于 Web 服务器软件的浏览器技术。 AJAX 基于下列 Web 标准: JavaScript XML HTML CSS 在 AJAX 中使用的 Web 标准已被良好定义,并被所有的主流浏览器支持。AJAX 应用程序独立于浏览器和平台。

Web 应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。

不过,因特网应用程序并不像传统的桌面应用程序那样完善且友好。 通过 AJAX,因特网应用程序可以变得更完善,更友好。

2.4.2 开发模式

许多重要的技术和AJAX开发模式可以从现有的知识中获取。例如,在一个发送请求到服务端的应用中,必须包含请求顺序、优先级、超时响应、错误处理及回调,其中许多元素已经在Web服务中包含了,就像现在的SOA。AJAX开发人员拥有一个完整的系统架构知识。同时,随着技术的成熟还会有许多地方需要改进,特别是UI部分的易用性。

AJAX开发与传统的CS开发有很大的不同。这些不同引入了新的编程问题,最大的问题在于易用性。由于AJAX依赖浏览器的JavaScript和XML,浏览器的兼容性和支持的标准也变得和JavaScript的运行时性能一样重要了。这些问题中的大部分来源于浏览器、服务器和技术的组合,因此必须理解如何才能最好的使用这些技术。

综合各种变化的技术和强耦合的客户服务端环境,AJAX提出了一种新的开发方式。AJAX开发人员必须理解传统的MVC架构,这限制了应用层次之间的边界。同时,开发人员还需要考虑CS环境的外部和使用AJAX技术来重定型MVC边界。最重要的是,AJAX开发人员必须禁止以页面集合的方式来考虑Web应用而需要将其认为是单个页面。一旦UI设计与服务架构之间的范围被严格区分开来后,开发人员就需要更新和变化的技术集合了。

2.4.3 开发框架

随着AJAX迅速地引人注目起来,我想开发人员对这种技术的期待也迅速地增加。就像任何新技术,AJAX的兴旺也需要一整个开发工具/编程语言及相关技术系统来支撑。

主要包含的技术:

7

基于web标准(standards-based presentation)XHTML+CSS的表示; 使用 DOM(Document Object Model)进行动态显示及交互; 使用 XML 和 XSLT 进行数据交换及相关操作; 使用 XMLHttpRequest 进行异步数据查询、检索;

类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。

图2-1 ajax开发框架

JavaScript如名字所示,AJAX的概念中最重要而最易被忽视的是它也是一种JavaScript编程语言。JavaScript是一种粘合剂使AJAX应用的各部分集成在一起。在大部分时间,JavaScript通常被服务端开发人员认为是一种企业级应用不需要使用的东西应该尽力避免。这种观点来自以前编写JavaScript代码的经历:繁杂而又易出错的语言。类似的,它也被认为将应用逻辑任意地散布在服务端和客户端中,这使得问题很难被发现而且代码很难重用。在AJAX中JavaScript主要被用来传递用户界面上的数据到服务端并返回结果。XMLHttpRequest对象用来响应通过HTTP传递的数据,一旦数据返回到客户端就可以立刻使用DOM将数据放到网面上。

8

酒店客户关系管理系统设计与实现

第二章技术架构和设计简介2.1系统构思系统功能层次表现层:包括JSP页面视图,静态HTML页面,CSS文档,JavaScript代码等,主要负责界面的呈现显示。功能层:包括Struts类库,Struts2的Action类,Servlet类等。主要负责在服务器端调用服务层提供的服务来完成系统设计的所有功能。
推荐度:
点击下载文档文档为doc格式
  • 正文标题

  • 上下篇章

  • 相关推荐

  • 精选图文

8ekwy8ln9m7b8vd538ce5nrap1rg1l00xjx