版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于MVC模式的电子商务网站的设计报告兰州财经大学网站建设技术课程设计学 院 、 系: 信息工程学院 专 业: 信息管理与信息系统 姓 名: 刘美辰 学 号: 201407020108 指 导 教 师: 易纪海 成 绩: 2016年06月27日目录一、电子商务网站设计模式21.1 MVC设计模式的概述21.2电子商务网站应用技术及系统框架的介绍41.3系统的软件开发工具5二、电子商务网站的需求分析与功能设计62.1 系统的需求分析6三、电子商务网站的设计与实现73.1 电子商务网站数据库的设计与实现73.1.1 数据库的简介73.1.2 数据库的需求分析73.1.3 数据表结构设计83.2 数
2、据持久层的设计与实现83.3 业务逻辑层的设计与实现93.4 控制器的设计与实现93.5 视图层的实现12总结15参考文献16一、电子商务网站设计模式1.1 MVC设计模式的概述MVC是一种设计模式,它强制性的将应用程序的输入、处理和输出分开。使用MVC的应用程序被分为3个核心部件:模型(Model)、视图(View)、控制器(Controller)。它们各司其职,既分工明确又相互协作。MVC设计模式的典型流程34为:首先Controller接收用户的请求,并决定应该调用哪个Model来进行处理,然后Model用业务逻辑来处理用户的请求并返回数据,最后Controller用相应的View格式化
3、Model返回的数据,并通过表示层呈现给用户。具体的关系如图1.1所示。图11 模型、视图、控制器之间的分工协作关系 控制层(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉我们,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。控制层的功能为:接受用户的请求,根据用户的请求调用某个模型进行业务处理,将处理结果送给某个视图进行显示。 模型层(Model)就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的
4、数据,并返回最终的处理结果。它的作用是反映整个应用程序的状态,对用户请求进行业务逻辑处理,响应状态查询,通知视图并更新业务状态。视图层(View)代表用户交互界面,对于Web应用来说,可以概括为显示界面,随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。视图层的功能就是显示模型的数据,接受数据更新并请求更新视图数据,接受用户输入的数据并送给控制层。MVC设计模式不仅可以实现功能模块和显示模块的分离,同时它还提高了
5、应用系统的可维护性、可扩展性、可移植性和组件的可复用行,是一个优秀的创建软件的途径,尤其实在Java Web应用程序的构架方面。Java EE把MVC引入Web领域,在此基础上架构出一套称为Model25的体系,使Java Web应用程序的健壮性、代码重用和结构方面新上一个新台阶。1.2电子商务网站应用技术及系统框架的介绍在本系统的设计过程中,根据MVC模式,使用Struts 2、Spring、Hibernate技术进行系统的开发。 (1)Struts 67是Apache基金会Jakarta 项目组的一个开源项目,它采用 MVC 模式,能够很好地帮助Java开发者开发 Web 应用,它能大量减
6、少开发 Web 应用的时间,提高产品的重用度。Struts 主要是采用 Servlet 和 JSP 技术来实现的,它把 Servlet、JSP、自定义标签和信息资源(message resources) 整合到一个统一的框架中,Struts 它只有一个中心控制器,他采用 XML 定制转向的 URL,采用 Action 来处理逻辑,开发人员利用其进行开发时不用再自己编码实现全套 MVC 模式。 Struts这是它的一大优点,使开发者能更深入的了解其内部实现机制。Struts Framework 是 MVC模式的体现。在系统中,Struts 2充当控制器的角色,它通过核心控制器FilterDisp
7、atch与拦截器Interceptor实现了Model2架构,及MVC架构,其体系结构如图12所示。图12 Struts的MVC实现(2)Spring 是由Rod Johnson创建并且是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从Spring 中受益8。 简单的说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。在系统开发的过程中,Spring充当的是整个
8、应用的Bean资源管家,甚至包括Struts 2的业务控制器Action 实例的接管,充当Struts的得力助手。(3) 时代在发展,技术在进步,人们对于各种复杂数据及业务逻辑的处理要求也在不断的提高,MVC 三层模型已不能满足高性能,低耦合框架结构的分层要求,此时,人们引入了持久层的概念,用于封装底层数据的持久化与访问操作。对象关系映射ORM(object-Relation Mapping)是用来将对象与对象之间的关系对应到数据库与表之间的关系的一种模式。Hibernate是一个面向Java环境的对象/关系数据库映射工具。Hibernate 是一个开源的对象关系映射框架,它对JDBC 进行了
9、非常轻量级的封装,使JAVA程序员可以随心所欲的使用面向对象的编程思想来操作数据库。它负责持久层,直接与底层数据库打交道910。使用Struts 2、Spring、Hibernate 组合的框架11后,系统的框架如下图23所示。图13 系统的框架图1.3系统的软件开发工具(1)开发工具 MyEclipse MyEclipse 是企业级工作平台,全称是 MyEclipse Enterprise Workbench,是对 Eclipse IDE 的扩展。MyEclipse是功能比较丰富的集成开发环境,比如编码、调试、测试和发布功能,并且完整支持 HTML,Struts,JSF,CSS,Javasc
10、ript,SQL,Hibernate。 (2)服务器 Tomcat Tomcat是一个免费的开源的Serlvet容器,它是APache基金会的Jakarta项目中的一个核心项目,由 APache,sun 和其它一些公司及个人共同开发而成 。(3)数据库MySQLMySQL是由MySQL AB公司开发、发布并支持的全世界最流行的开源SQL数据库管理系统,于2008年被Sun公司收购12。二、电子商务网站的需求分析与功能设计需求分析在软件开发过程中,具有举足轻重的地位,它具有决策性,方向性,策略性的作用。需求分析的任务就是要解决“做什么”的问题,就是要全面地理解用户的各项需求,并准确地表达所接受的
11、用户需求。功能设计则是具体的说明系统要完成的功能。2.1 系统的需求分析系统的实际应用性很明显,电子商务发展非常迅速,人们追求的是简捷、方便、省时,通过Internet选购商品,不必花费太多的时间去逛商场,坐在家里上网就可以买到称心的商品,符合人们的心愿。但是,系统不仅仅只要有简单易学的操作界面,还需要考虑交易的安全性,所以在注重界面美观、容易操作的基础上,还要特别注意对信息进行保管。关键要注意:在具备基本的功能这个基础上要保证操作简单以及界面美观,并要使顾客很快适应这个系统。本系统的应包括的功能有:消费者可以浏览新闻和商品信息,可以查看商品的详细信息,当注册后可以购物,并可以对其购物车进行管
12、理,购物完成后提交订单,购物完成后可以查看订单。会员购物完成后可以自动增加相应的积分。管理员根据不同的权限可以对新闻模块,订单和商品模块,会员管理模块,流量统计模块进行管理。具有高级权限的管理员可以添加新的管理员。电子商务网站主要有新闻发布模块、会员管理模块、商品管理模块、购物车及订单管理模块、系统用户管理与流量统计模块。系统的总体功能结构图如下31所示。图21 系统总体功能模块图三、电子商务网站的设计与实现3.1 电子商务网站数据库的设计与实现3.1.1 数据库的简介本系统采用MySQL作为数据库平台,它对存储过程、触发器和视图都有很好的支持,并且MySQL是开源的数据库服务器,有利于降低开
13、发成本。支持上千万条的数据记录。安装简单,使用方便。3.1.2 数据库的需求分析网站的需求重点体现在各种信息的提供、保存、更新和查询。这就要求数据库结构能够满足各种信息的输出和输入。针对网站的需求,通过对网站各个模块的需求分析,可以得到所需实体的数据结构:系统用户信息:系统用户的编号、账户、密码、权限等信息。购物车信息:购物车编号、所属会员编号、购物车的总金额、购物车状态。购物车商品选购记录信息:编号、所属购物车编号、所属商品编号、选购数量、成交价格、成交总价。订单信息:编号、所属的购物车编号、所属的商品编号、订单编号、订单日期、订单状态。注册会员信息:会员编号、所属会员级别号、登录账号、密码
14、、会员真实姓名、电话、地址、邮政编码、邮政编码、最后一次登录的日期、会员积分等。会员级别信息:会员级别编号、会员级别名称、所需积分、优惠百分比。商品类别信息:编号、上级商品类别编号、商品类别名称。商品信息:编号、所属商品类别编号、商品名称、商品市场价、商品促销价、商品型号、商品图片、商品视频、商品描述、是否有促销价、商品详情静态页面路径、商品状态。新闻栏目信息:编号、上级栏目编号、新闻栏目编号、新闻栏目名称。新闻信息:编号、所属新闻栏目ID、新闻标题、新闻内容、新闻摘要、关键字、是否图片新闻、图片URL、新闻来源、新闻发布日期、作者、点击数、排序优先、状态等。流量信息:编号、来源URL、受访页
15、面的URL、访客的URL、物理地址、访问时间等。3.1.3 数据表结构设计表就是数据库中用来存放数据的场所。在数据库中可以有多个表,但表名应该是唯一的。同一数据库中的表可以相互关联,也可以彼此独立。该系统包含多个表,每张表存储着该系统某项功能的数据信息20,根据上述的数据需求分析,可以得到表结构。如表31为系统用户信息表,记录了系统用户的属性信息。表 31 系统用户表(admin)字段名称数据类型主键自增允许为空描述IDint(11)是增1ID号LoginNamevarchar(20)否登录账户LoginPwdvarchar(50)否登录密码Privilegesvarchar(50)否权限3.
16、2 数据持久层的设计与实现持久层是专门负责持久化工作的逻辑层,由它统一与数据库打交道。它封装了所有与数据库相关的操作和细节。持久层是业务逻辑层与底层数据库之间的纽带,除了完成关系数据表的持久化以外,还要提供统一的数据访问服务。Hibernate作为持久层中间件,功能强大。它可以使开发人员方便的实现数据表的持久化,为其提供统一的数据访问服务。1. 统一数据访问接口。在系统中,所有的模块使用统一的数据访问接口,减少底层的代码开发量,提高系统的维护效率。系统使用BaseDao及其实现为系统提供数据访问服务。2.表的持久化及表的关联利用Hibernate的功能实现新闻栏目表对应的持久化类Newscol
17、umns及其ORM映射文件Newscolumns.hbm.xml实现新闻栏目的自身多对一的关联。3.3 业务逻辑层的设计与实现Dao组件已经实现了统一的数据访问,业务逻辑组件则调用Dao组件提供的数据访问服务,替业务控制器实现真正意义上的用户请求处理14。通常的业务逻辑单元的划分是针对用户请求进行的,从事务管理的角度而言,这种业务逻辑单元具有原子性,因此,一个用户请求幕后往往会有一个相应的业务处理单元,同时,它也是一个事务管理单元。在SSH2组合框架中,Spring负责接管业务逻辑层。利用Spring的面向切面功能,系统的所有业务逻辑组件统一采用Spring的BeanNameAutoProxy
18、Creatorf 自动创建事务代理,这样就不必为每个业务逻辑组件创建事务代理,大大降低了application.xml中代码的冗余度,提高了代码的重用性和可维护性。Spring的控制反转IoC功能,可以使我们将统一的数据访问Dao组件注入到业务逻辑层中,使我们可以方便的调用Dao组件中方法。3.4 控制器的设计与实现控制器在本系统是通过Struts2来实现的。Strut2通过核心控制器FilterDispatch与拦截器Interceptor拦截用户请求,针对不同的用户请求,调用相应的业务控制器来进行处理。业务控制器调用不同的业务逻辑处理,最终有业务控制器返回一个Result命名视图。使用St
19、ruts 2的流程如下:用户请求均通过直接调用Action类的相应方法进行处理,Action类中的相应方法在收到请求后,首先送交拦截器LoginedCheckInterceptor进行Session过期、登录有效性及操作权限验证,当Session已过期、尚未成功登录或不具备新闻管理的权限时,由拦截器直接返回相应的错误提示页面或登录页面。否则继续交由Struts2的默认拦截器进行相关处理,最后调用有Spring2依赖注入进行的业务逻辑处理组件Service实例进行业务逻辑处理,根据Struts.xml中的视图配置,将处理结果交由相应的视图组件返回展现给用户。下面将以系统用户管理模块为例,讲述控制
20、器的实现。1. 系统用户管理业务控制器AdminAction类系统用户管理业务控制器AdminAction类采用模型驱动,直接使用持久化类Admin充当模型类,用于封装表单属性、请求参数及处理结果。AdminAction类的功能有:处理登录请求,处理推出请求,处理浏览系统用户请求,处理删除系统用户的请求,处理添加系统用户的请求,处理更新系统用户的请求等。下述的代码讲述的是登录,注销,浏览,新增系统的功能。/* 系统管理员处理控制器 */SuppressWarnings(serial)public class AdminAction extends ActionSupport implement
21、s ModelDriven/* 通过依赖注入AdminService组件实例 */AdminService service;/* 系统用户管理所有请求中常用的参数值 */private String rand; /随机验证码private String actionMsg;/Action间传递的消息参数private List adminList;/系统用户列表/采用模型驱动private Admin model=new Admin();/用于封装系统用户属性模型public Admin getModel() return model;/* 处理登录请求 */public String log
22、in()if(!rand.equalsIgnoreCase(String)ServletActionContext.getRequest().getSession().getAttribute(rand)addActionError(getText(login_rand_error);return login;elseAdmin tempAdmin = service.adminLogin(model.getLoginName(), MD5.MD5Encode(model.getLoginPwd();if(tempAdmin!=null)ServletActionContext.getRequ
23、est().getSession().setAttribute(admin,tempAdmin);return index;elseaddActionError(getText(login_fail);return login;/* 处理注销请求 */public String logout()ServletActionContext.getRequest().getSession().invalidate();return login;/* 处理浏览系统用户请求 */public String browseAdmin()if(actionMsg!=null)try actionMsg = n
24、ew String(actionMsg.getBytes(ISO8859-1),gbk); catch (UnsupportedEncodingException e) e.printStackTrace();addActionMessage(actionMsg);adminList = service.browseAdmin();return SUCCESS;/* 处理新增系统用户请求 */public String addAdmin()Admin tempAdmin = new Admin();tempAdmin.setLoginName(model.getLoginName();temp
25、Admin.setLoginPwd(MD5.MD5Encode(model.getLoginPwd();tempAdmin.setPrivileges(model.getPrivileges();if (service.saveOrUpdateAdmin(tempAdmin)addActionMessage(getText(admin_add_succ);elseaddActionMessage(getText(admin_add_fail);return SUCCESS;/ setXX() 和getXX() 方法省略2.在Spring中配置业务控制器AdminAction类将Struts 2
26、的业务控制器交给Spring容器来负责,可以充分的利用Spring容器的IoC特性。Spring使用单例模式,为每个用户的请求生成一个全新的实例。在applicationContext.xml中的配置如下: 在Spring中配置过业务控制器后,就可以在Struts.xml中直接引用AdminAction的beanid了,无需指定AdminAction的全类名。3.Struts.xml中配置业务控制器用户的具体请求,业务控制器中的处理方法及结果展现视图之间的对应关系,必须在Struts 2的配置文件 Struts.xml中进行正确的配置方能生效。对于哪些具有一定命名规则的用户请求可以使用通配符实
27、现动态方法调用,如“admin_*”来表示。在Struts.xml中的配置如下: /admin/editAdmin.jsp/admin/1.jsp/admin/1.jsp/admin/index.jsp/admin/login.jspadmin_browseAdmin 控制器的配置流程是:首先完成业务控制类的功能实现,然后将业务控制类注入到Spring的配置文件中, 最后在Struts 2中配置相应的视图结果。3.5 视图层的实现视图层的功能就是显示模型的数据,接受用户输入的数据并送给控制层,接受数据更新并请求更新视图数据。视图层没有任何的业务操作,它只负责接受用户数据和显示用户数据。本节将给
28、出系统运行时页面的部分效果图。1.前台页面显示画面。用户首次进入网站首页面展示的效果图31所示。图31 网站首页面进入首页后,用户可以浏览商品信息,网站新闻等内容。如果用户需要购物,则需注册账号,注册页面如下图32所示。图32 注册页面用户购买完商品后,可以再购物车中查看所购商品,并在其中可以修改数量,清空购物车等。效果图如下图33所示。图33 购物车管理的页面 确认过订单信息后,可以提交订单,订单提交成功后会生成一个订单编号,通过订单编号,可以查看订单的状态,进行订单的管理。订单管理的效果图如下图34所示。图34 订单管理页面2.后台管理员管理页面系统用户进入页面时,首先要进行登录,登录页面如下图35所示。图35 管理员登录管理员登录后,会根据其权限分配相应的功能。登录后的页面,如图36所示。图36 后台管理主页面后台的订单管理页面的展示如下图37所示。图37 后台的订单管理页面总结电子商务网站是现在流行的一种网上购物方式。随着互联网的普及以及电子商务的发展和人们购物理念与购物方式的改变,网上购物系统将有着巨大的市场潜力。本文MVC模式,利用SSH2 组合框架,设计与开发了电子商务网站。本文所做
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石河子大学《中小学生心理辅导》2021-2022学年第一学期期末试卷
- 石河子大学《武术》2021-2022学年第一学期期末试卷
- 石河子大学《基本乐理》2021-2022学年第一学期期末试卷
- 沈阳理工大学《专题产品设计》2022-2023学年第一学期期末试卷
- 沈阳理工大学《新能源与分布式发电》2023-2024学年期末试卷
- 沈阳理工大学《人工智能》2023-2024学年期末试卷
- 沈阳理工大学《计算机网络实践指导》2022-2023学年期末试卷
- 警察现场救护学习通超星期末考试答案章节答案2024年
- 沈阳理工大学《光电子学》2022-2023学年期末试卷
- 沈阳理工大学《德语国家社会与文化》2022-2023学年第一学期期末试卷
- 医科大学2024年12月精神科护理学作业考核试题答卷
- 论青少年合理怀疑精神的培育
- 机关干部礼仪培训课件
- 安徽省合肥市2024年七年级上学期期中数学试卷【附答案】
- 成都铁路局招聘2024届高校毕业生663人高频难、易错点500题模拟试题附带答案详解
- 《剪映专业版:短视频创作案例教程(全彩慕课版)》 课件 第2章 剪映专业版快速入门
- 中考物理试题及答案经典大全集高分
- DB11T 854-2023 占道作业交通安全设施设置技术要求
- 2024-2025学年浙教版八年级上册科学期中模拟卷
- 第6课《我们神圣的国土》 (教学设计)-部编版道德与法治五年级上册
- 模拟电子技术说课
评论
0/150
提交评论