MVC

 
   

基于MVC架构的电子商城管理系统案例研究

杨紫媛

(石家庄铁道大学)

摘  要:应用程序中的一些复杂问题例如缓存问题、持久性问题和系统响应速度问题等可以借助MVC(Model-view-Controller)架构加以缓解。本文在分析JSP, Servlet 和MVC 基本原理和交互过程的基础上,以电子商城中的模块为例,利用Servlet+JSP 实现模块设计,MVC 架构实现展示层和逻辑层分离,减少了模块与模块之间的耦合性,在某一模块功能发生变化的时候不会迫使其他代码改变。

关键词:电子商城;Servlet;JSP;MVC框架

Case study of electronic mall management system based on MVC architecture

YANG Zi-yuan

(Shijiazhuang Tiedao University)

Abstract:Some complex problems in the application, such as cache problems, persistence problems, and system response speed problems, can be alleviated with the help of MVC (Model-view-Controller) architecture. Based on the analysis of the basic principles and interaction processes of JSP, Servlet and MVC, this article takes the modules in the e-commerce mall as an example, uses Servlet+JSP to realize the module design, and the MVC architecture realizes the separation of the presentation layer and the logic layer, reducing the number of modules and modules. The coupling between each other will not force other code to change when the function of a certain module changes.

Key words:Electronic mall; Servlet; JSP; MVC framework

一、系统开发工具选择

电子商城管理系统是基于B/S 结构(Browser/ Server)的Web 应用系统,系统设计过程中主要针对服务端进行开发。服务端选择采用的架构为现如今较为流行的MVC 模式(即Model、View、Controller),软件编程采用Java 语言, 开发平台选择Eclipse 完成,MySQL数据库完成系统相关数据的存储,调用等功能

二、MVC架构介绍

MVC,全称Model View Controller,即模型-视图-控制器。MVC 架构把交互系统组件分为模型、视图、控制器三种:处理应用程序数据的模型(Service 层)、呈现用户界面的视图(Web 层)以及处理用户输入的控件(DAO 层)。
1)Model(模型)是Web应用中用于处理数据逻辑的部分,包括Service层和Dao层;Service层用于和数据库联动,放置业务逻辑代码,处理数据库的增删改查,Dao层用于放各种接口,以备调用;

2) View(视图)是Web应用中处理响应给客户的页面的部分,例如我们写的html静态页面,jsp动态页面,这些最终响应给浏览器的页面都是视图;通常视图是依据模型数据来创建的;

3)Controller(控制器)在Web应用中,简而言之,就是Servlet,或者SpringMVC框架中加了注@Controller的方法(实际上一个方法就相当于一个对应的Servlet);

采用MVC 设计思想完成三层体系结构实现展示层和逻辑层分离,使得一个模型可以具有多个显示视图,当模型数据发生变化,控制器都会通知所有的视图显示的更新。同时实现了数据层与表示层的分离,在需要替换或更新某一模块时不需要改动其他模块。这样一方面有助于设计在需求分析改变时可重复使用,减少再次设计的成本。另一方面减少类与类之间的耦合性,在某一模块功能发生变化的时候不会迫使其他模块代码改变。

三、Servlet 交互过程

Servlet 通过HTTP 协议与Web 浏览器进行信息交互,交互完成后Servlet 将生成响应返回给Web 服务器。servlet容器接受请求,创建httpServletRequest和httpServletResponse 两个对象。容器通过http请求中的url地址,找到所请求的servlet ,创建或分配一个线程,将上面的两个对象传递给该线程。然后容器调用service() 方法 ,service() 方法调用doGet()方法。doGet() 方法产生动态页面,填充到响应对象。线程结束,容器将响应对象转换成http响应 ,发回给客户端,然后删除请求和响应对象

四、JSP执行过程

当一个JSP 页面被客户端访问时,它被JSP 引擎解析、验证、传译成一个Servlet 并最终执行,其中传译包括将自定义标签转换为Java 代码并设置脚本变量的过程。传译成Servlet 后产生一个发送给客户端浏览器的响应。

五、MVC架构下JSP+Servlet实现

MVC 设计思想完成 Web 应用程序开发时,JavaBean 和Servlet 组成了业务逻辑层(Service 层),JavaBean 管理客户端和服务器上运行的数据流,并调用相对应的方法来封装数据, Servlet 从客户端接收数据、处理数据并将其发送到数据访问层进行存储。业务逻辑层是系统的至关重要的一部分,上有表现层(Web 层)下有数据访问层(DAO 层),如需改变视图则改变表示层,如需改变数据则改变数据访问层。JSP 是Web 层方面的开发,Web 层将Service 层数据呈现给用户,并观察Service 层进行更新,是用户能看到的最直观的一层。数据访问层(DAO 层)是由大量的接口来实现访问/操作数据的地方,处理数据的增删改查并把所有操作封装成接口返回一个结果集供业务逻辑层调用,安全性较高,维护起来也更加方便。

以电子商城管理系统为例,大体流程如下

 

以订单模块为例,当用户点击购买的按钮时访问MVC 表示层的ShopServlet 中的showOrder 方法,并且带着用户想要购买的商品的id,showOrder方法列出订单的基本信息,要求用户提供购买数量如图,用户点击结算后把商品存到request 域中,重定向到表示层,表示层的ShopServlet 中进行四步操作:

1)表示层从request 域中拿出订单号+下单用户名+下单产品+下单时间等需要插入数据表中的值。

2)把订单号+下单用户名+下单产品+下单时间+订单金额这些信息,调用表示层中的Service 方法插入到数据库,并从product表中扣除相对应的库存数量。

3)Service 调用数据访问层的Dao 的方法,对数据库的表进行操作,且采用事务管理的方式,让两步操作处在同一个事务里面,事务具有原子性不可分割要么同时完成要么同时不完成,有一步操作中断全部事务回滚。

4)重定向回表示层。理想情况下用户不应该直接访问JSP页面,请求直接发送到Servlet。该Servlet 负责处理请求的实际处理,然后将该控制转移到适当的JSP 页面。 JSP 页面然后将显示对用户的响应,随后的请求在用户填写表单并单击提交按钮之后再次被引导到一个Servlet 进行处理。系统的用户根本不应该知道任何JSP 页面的存在。

 

六、结束语

本文基于MVC架构的电子商城管理系统,采用JSP+Servlet 的MVC 三层架构技术,实现了视图层、逻辑层、数据层的分离,使得系统具有良好的扩展性,减少了类与类之间的耦合性。

参考文献:

[1]    姚红燕. 图书管理系统的设计与开发分析[J]. 电脑知识与技术,2016,12(17):82-84.

[2]    匡蕾,刘进锋.MVC 架构下的Servlet+JSP 在电子商务网站开发中的研究[J].电脑知识与术,2018,14(33):265.

原文地址:https://www.cnblogs.com/zzstdruan1707-4/p/12452283.html