- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章客户订购子系统.doc
第8章 客户订购子系统
学习目标:
本章详细介绍了采用MVC设计模式开发客户订购子系统的过程,要求通过相关知识的学习和客户订购子系统的开发,熟练掌握使用JSP、JavaBean及Servlet等技术应运MVC设计模式,为后续章节打下牢固的基础。本章的学习要求有以下几点:
理解客户订购子系统的设计要求
理解客户订购子系统的总体结构
掌握分页显示技术的实现
理解HttpSession在订购子系统中的应用
内容框架
本章主要包括以下内容:
图8-1 客户订购子系统结构图
随着Internet的迅速发展和人们生活节奏的加快,越来越多的人们喜欢网上购物。客户订购子系统为客户提供在线购物的服务,使客户不用离开家或办公室就可以完成购物,同时也为企业提供了更具优势的销售方式。客户订购子系统使客户在不与公司销售人员进行面对面交流的情况下,即可得到有关下订单的信息。
MVC设计模式和分页显示技术技术
在MVC模式下开发客户订购子系统,JavaBean负责业务逻辑的处理,封装JDBC对数据库的操作, JSP负责页面显示逻辑,Servlet负责控制业务处理。使用这种模式,能够有效的区分不同的角色,避免彼此间的互相影响,使开发人员具有更清晰的逻辑划分,充分发挥每位开发人员的特长。
8.1.1 MVC设计模式
MVC(Model-View-Controller)模式的核心思想是将程序代码分成相对独立、而又能协同工作的三个组成部分:
模型(Model):业务逻辑层。实现具体的业务逻辑、状态管理的功能。
视图(View):显示MVC模式,采用三层架构,运用JSP+Servlet+JavaBean技术实现的。其模式通讯结构如图9-2所示:
图8-2 MVC模式通讯结构图
从图9-2可以看出三层架构的优势,它把整个应用服务分成三个逻辑层:客户端、WEB服务器和数据库服务器。客户在能够连到Internet网络的客户端提交订购请求,WEB服务器接收客户的请求并处理,数据库服务器为WEB服务器提供所需数据。如果是小型应用服务,那么WEB服务器和数据库可以部署在同一台服务器中。
MVC模式将程序分为控制器(Controler)、业务逻辑处理(Model)和视图(View)。控制器(Controler)由Servlet组成,Servlet只起到控制导向的作用,不包含任何业务逻辑或视图处理功能。控制器负责响应客户的请求并根据请求,决定调用的JSP页面Model)由JavaBean组成,其根据订购子系统的需求实现业务规则。视图(View)由HTML或JSP组成,构成表现层Web设计人员只关注前端的页面设计,而程序员则注重实现模型中的业务逻辑,也就是Java组件编写。MVC模式对客户订购子系统的技术实现非常适合。因为其分层明确,开发快速简单。客户从WEB客户端视图(View)发出请求,把请求提交到应用服务器控制端(Control),控制器再通过调用具体的逻辑组建(Model)完成请求。
8.1.2 分页显示技术
在商品进销存系统中,对每一种实体数据的查询都涉及到分页显示的问题。例如客户订购子系统中:浏览商品,查询订单信息等。在商品进销存系统中不仅要求查询结果能够分页显示,使查询方便,页面清晰,方便用户的浏览,同时也需要很高的响应效率。需要一种高性能的查询分页技术。
故在销售经理子系统定义的com.util包结构下增加一个com.util.PageControl分页处理类。系统的控制层通过调用分页处理类进行相应分页计算,则显示层显示分页处理后的结构。下面将结合浏览商品这一实例介绍有关技术。
1.分页处理类PageControl
分页处理类PageControl定义了处理分页显示逻辑需要使用的相关属性和方法,各方法的功能见代码段的注释。以下是分页处理类PageControl的实现代码:
public class PageControl {
public int fromRow; // 当前页显示开始的行 public int toRow; //当前页显示结束的行currentPage * rowsPerPage
public int totalRow; // 总记录条数
public int currentPage; // 当前页
public int totalPage; // 总页数
public int rowsPerPage; // 每页 public boolean flag = false; // false 默认不存在记录 public PageControl() {
}
//带参数构造器,供初始化分页数据使用。主要在控制器中使用
public PageControl(int curPage, int rowsPerPa
文档评论(0)