基于StrutsHibernateAjax电子商城系统_第1页
基于StrutsHibernateAjax电子商城系统_第2页
基于StrutsHibernateAjax电子商城系统_第3页
基于StrutsHibernateAjax电子商城系统_第4页
基于StrutsHibernateAjax电子商城系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编号黑龙江生物科技职业学院毕 业 论 文论 文 题 目:基于Struts+Hibernate+Ajax电子商城系统所属系 (专业): 信息工程系 (计算机应用技术)班 级 (学 号): 应用07-4 (200761010401)论 文 作 者: 毛爱辉 指 导 教 师: 张金柱 完 成 时 间: 10 年 06 月 2 日毕 业 论 文 鉴 定 书一、指导教师评语(指导教师填写)二、毕业论文成绩 指导教师签字: 年 月 日目 录一 引 言4二 相关知识和技术背景5三 系统需求分析7四 系统概要设计10五 系统详细设计16六 系统实现29结论31致谢33摘要:人们将传统的商店转移到了网上,模拟一

2、般商店的经营模式,形成了各式各样的网上电子商城。本系统针对现在的发展趋势,以Struts框架和Hibernate框架为基础进行应用开发,并使用Ajax的技术实现异步通信的机制。Struts和Hibernate为本电子商城系统的开发提供了现成的通用的框架。将Ajax技术运用到Web应用中来,相当于用户和服务器之间加了一个中间层。现在将这些技术整合起来,使得系统在各方面都能达到要求,并有利于系统的维护和升级。系统分为前台部分和后台部分,前台部分主要实现的功能有顾客的注册和登录功能、查看商品信息功能、搜索商品的功能、购物车功能、反馈意见或留言功能,修改登录会员的资料;后台部分主要实现商品管理员管理商

3、品信息及特价商品信息、订单管理员管理订单信息、会员管理员管理顾客的情况及查看顾客的反馈信息、系统管理员可以对管理员进行管理。关键词: 网上电子商城系统;Struts框架;Hibernate框架;Ajax技术;MVC模式一 引 言因特网的迅猛发展正以前所未有的深度和广度影响和改变着人们各个方面的生活,越来越多的人开始意识到因特网所蕴含的巨大经济价值和无穷商机,并积极投身于电子商务活动。实际上,电子商务是一些商业行为的电子化,例如网上商店、网上贸易等。就网上电子商城来说,在应用方面具有一定的影响力和成功性。网上电子商城的崛起对传统的商品流通体系产生了强烈的冲击,有效地缩短了商品流通发行环节,将广大

4、顾客、销售商、开发商紧密地结合在一起,大大提高了商品流通率。电子商务的网上实践,是从网上销售开始的,“网上商店”打破了传统的销售形式商店,将商店和网络结合;是一种典型的电子商务网站运用。“网上商店”实际上是运行在Web服务器中的一个Web运用程序。“网上商店”模拟一般的商店的经营模式。电子商务将成为二十一世纪人类信息世界的核心,也是网络应用的发展方向,具有无法预测的增长前景。电子商务还将构筑二十一世纪新型的经济贸易框架。大力发展电子商务,对于国家以信息化带动工业化的战略,实现跨越式发展,增强国家竞争力,具有十分重要的战略意义。主要体现在各种网上电子商城的开发,包括涉及查看商品、定制商品、购物车

5、等内容。网上商城遍布各个行业,各大城市,目前国内外知名的网站,包括淘宝网、网易等大型网上购物网站。或者分块的网上购物网站,比如说网上书店、网上电子城等等,形形色色的网上购物系统竞相产生,使得电子商务得到了一定的发展。本系统以Struts框架和Hibernate框架为基础进行应用开发,并加以Ajax的技术实现异步通信的机制。Struts和Hibernate为本电子商城系统的开发提供了现成的通用的框架,Struts框架提供全套MVC模式的代码,极大地节省了时间;Hibernate框架完成数据持久化的重任,将数据库的操作提升到一个面向对象的层面上来。将Ajax技术运用到Web应用中来,相当于用户和服

6、务器之间加了一个中间层。将这些技术整合起来的时候,使该系统在健壮性、代码重用和可扩充方面上了一个新的台阶,有利于系统的维护和升级。本文共分为六部分。第一部分为引言,介绍课题的背景以及研究的意义等;第二部分介绍了相关知识,简要的介绍了J2EE, Struts框架, Hibernate框架,Ajax技术等。第三部分提出了系统需求分析,并使用用例图确定了系统的各个功能模块。第四部分根据以上需求作出系统的概要设计。第五部分是系统的详细设计部分,包含了数据库设计,架构设计以及详细的模块设计。第六部分为系统的实现部分,主要描述了系统的环境配置,主要代码以及系统的界面。二 相关知识和技术背景(一) J2EE

7、概述J2EE(Java 2 Platform, Enterprise Edition)是SUN 公司定义的一个开发分布式企业级应用的规范。它提供了一个多层次的分布式应用模型和一系列开发技术规范。多层次分布式应用模型是指根据功能把应用逻辑分成多个层次,每个层次支持相应的服务器和组件,组件在分布式服务器的组件容器中运行,容器间通过相关的协议进行通信,实现组件间的相互调用。遵从这个规范的开发者将得到行业的广泛支持,使企业级应用的开发变得简单、快速。J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制。(二) MVC设计模式与Struts架构MVC(Model-View-Contro

8、ller)模式是现在世界上非常流行的一种设计模式。MVC包括三类对象,Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。在JSP开发中最常使用的Model 2实际上就符合MVC模式。在Model 2体系结构中,Servlet首先拦截客户端请求,此Servlet也被称为控制器Servlet。此Servlet处理请求的初始处理过程,决定要显示的下一个JSP页面。Struts架构是Model 2体系结构的扩展,它包括一个控制器Servlet、JSP页面和应用程序的商业逻辑Bean。Controller层在Struts架构中,主要的控制组件是Act

9、ionServlet和ActionMapping。View层这部分由JSP技术实现。通过Struts提供的标记库html、Bean、Logic以及Template来创建JSP表单,并实现了和Model部分的ActionForm的映射,完成对用户数据的封装。Model层Struts由Action和ActionForm对象组成,Action对象封装着具体的处理逻辑,由它来调用业务逻辑模块,并且把响应提交给合适的View组件。(三)O/R映射与Hibernate架构在信息系统的开发过程中,由于绝大多数业务模型都涉及到关系数据库,在采用Java作为信息系统的开发语言时,传统Web应用开发方法是直接用J

10、DBC与数据库交互。考虑到Java的面向对象性和关系型数据库的关系型结构相差甚远,因此很有必要引入一种在对象与关系型数据库之间的直接映射机制,这种映射应该是最大量地使用配置文档,以便今后业务逻辑更改后是尽可能地修改映射文件而不是Java源代码,因此出现了O/R映射模式。有很多开源项目都使用Java实现了这个O/R映射,而Hibernate是其中最为优秀的实现架构之一。由于Hibernate实现了O/R映射,现在模型部分使用持续化对象类而不再是冗长的JDBC语句,从而使得模型部分得到极大的简化。(四) Struts与Hibernate的整合集成Struts架构与Hibernate架构的方法是利用

11、Struts架构作为系统的整体基础架构,它负责了MVC的分离,而在Struts架构的模型部分,利用Hibernate架构来提供持续层支持。具体做法是首先分析系统的需求,并利用面向对象的分析方法来提出一个完整的领域模型(最好用UML表示出来),将这些领域模型采用Java语言实现出基本的Java对象(POJO)。然后写出基本的DAO接口,并给出Hibernate的DAO实现(同时给出POJO与数据库之间的映射文档),在业务类BO中,调用采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后在Struts架构的控制器部分的Action中调用BO来完成业务逻辑。这样,就

12、利用DAO模式来实现了Struts架构与Hibernate架构的无缝集成。(五) JavaScript语言概述JavaScript是一中基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互的作用。从而可以开发客户端的应用程序等。它是嵌入或调入在标准的HTML语言中实现的。JavaScript语言可以做到响应使用者的需求时间(form的输入),而不用任何的网络来回传输资料,所以当一位使用者输入一项资料时,它不用经过传给服务器端(se

13、rver)处理,再传回来的过程,而直接可以被客户端(client)应用的程序所处理。它的出现弥补了HTML语言的缺陷,是Java与HTML折中的选择。(六 ) AJAX技术AJAX是“Asynchronous JavaScript and XML” (异步JavaScript和XML)的缩写,是一种运用JavaScript和可扩展标记语言(XML),在网络浏览器和服务器之间传送或接收数据的技术,是Web2.0的核心之一。AJAX不是一项全新的技术,它是一道包括JavaScript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest在内的大杂烩。它使用XHTML和CSS标

14、准化呈现,使用DOM实现动态显示和交互,使用XML和XSTL进行数据交换与处理,使用XMLHttpRequest进行异步数据读取,最后用JavaScript绑定和处理所有数据。AJAX的工作原理相当于在用户和服务器之间加了一个中间层,使用户请求与服务器响应异步化。这样把以前的一些服务器负担的工作转交给客户端,利用客户端闲置的处理能力来处理,减轻服务器和带宽的负担。三 系统需求分析(一)系统模块介绍网 上 电 子 商 城 系 统前 台 部 分后 台 部 分顾 客 注 册 登 录查 看 商 品 信 息搜 索 商 品 信 息顾 客 购 物 车顾 客 反 馈 意 见管 理 商 品 信 息管 理 订 单

15、 信 息管 理 会 员 和 留言管 理 管 理 员本系统主要分为前台部分和后台部分,前台部分主要实现的功能针对顾客使用,有顾客的注册和登录功能、查看商品信息功能、搜索商品的功能、购物车功能、反馈意见或留言功能;后台部分主要由商城的管理员使用,分别为实现商品管理员管理商品信息及特价商品信息、订单管理员管理订单信息、会员管理员管理顾客的情况及产看顾客的反馈信息、系统管理员可以对管理员进行管理。这里的模块主要按照使用者不同进行分配。图3-1 本系统的前台部分和后台部分模块它们各自的功能如下所述:1) 前台部分l 前台部分主要包括以下几个方面,顾客的注册登录,顾客查看商品信息,搜索商品信息,查看购物车

16、,删除购物车,修改购物车,确认下订单操作,查看留言反馈信息,增加留言信息,修改顾客自己的信息等。这里的使用对象主要是顾客。l 首先顾客可以方便地注册与登录。若还未注册的顾客只能进行商品的查看,不能购物;未注册的顾客可进入注册页面进行注册,然后可以选择不同的会员级别,有不同的打折率。但是若顾客不符合要求或是有重大表现,后台的管理员可以对其会员级别进行调整。l 顾客可以灵活地检索所需的商品信息及了解特价商品信息。可采用关键字搜索。l 顾客可以方便地查看详细的商品资料。l 顾客可管理自己的购物车(包括添加或删除选购商品、修改商品购买数量及在线下订单等操作)。l 顾客还可以反馈自己的意见或留言。2)

17、后台部分l 后台部分,管理员必须登录才能进行管理,管理员根据不同的权限可以进行相应的操作。l 商品管理员可以方便地管理商品及特价商品信息(新增、删除、修改商品信息及特价商品信息)。l 订单管理员可以查看订单、发货与缺货处理。l 会员管理员可以查看顾客的注册信息以及调整会员的级别,还可以查看顾客的反馈信息及具体的处理情况,进行回复。l 系统管理员可以进行管理员的管理(新增、删除、修改管理员信息)。(二) 确定用户需求要求不同类型的用户拥有不同的功能,具体用户类型包括:后台管理员(商品管理员、订单管理员、会员管理员、系统管理员),顾客(未注册或未登录用户,登录用户)。用例图如下(图3-2,图3-3

18、):图3-2 后台管理员用例图图3-3 前台顾客用例图(三)需求规定3.1运行环境需求1) 设备一台具备Microsoft Windows XP系统计算机2) 支持软件(1)开发工具平台:Windows XPWEB SERVER:Tomcat 5.0数据库:MySQL 5.0相关类库:struts、hibernate、Ajax等四 系统概要设计(一) 总体设计1.1.1 环境配置此系统都基于JDK1.5开发并测试,采用Tomcat 5.0做Web服务器,并在基于MyEclipse 6.0的平台上开发并测试运行,数据库采用关系数据库MySQL 5.0。如此搭建出一个稳定的适于系统的应用开发运行环

19、境。Java开发包J2SDK(Java 2 Software Development Kit)是基于Java软件开发的前提。J2SDK简称JDK,JDK1.5仍是目前的主打。Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。曾被JavaWorld杂志评为最具创新的Java产品(Most Inovative Java Product),同时它又是Sun公司官方推荐的Servlet和JSP容器。Eclipse是一个开放源代码的、基于Java的可扩展开发平台。MyEclipse是Ecl

20、ipse的插件,集成了对Spring、Struts、Hibernate等主流Java EE组件开发插件的支持,大大简化了Java EEj应用的开发。MySQL是由MySQL AB公司开发、发布并支持的全世界最流行的开源SQL数据库管理系统,目前最新版本为MySQL5.0,对存储过程、触发器和视图有了很好的支持,成为开源数据库之首选。1.1.2 系统结构此系统在通讯机制上以传统的同步通信为主,在需要更新局部数据或处理一些简单的数据传递时采用异步通信。整个系统的架构设计遵循MVC模式,将展示层、控制层、模型层(业务逻辑层)及持久层进行合理分离。视图层(View)将采用JSP页面、HTML页面、Ac

21、tionForm Bean、Displaytag、Struts-menu来实现。控制层(Controller)用于提供应用的控制,对提交的不同请求,根据要求转发到适当的处理组件去,主要有ActionServlet(中央控制器)和struts-config.xml(配置文件)。模型层(Model)用于存储数据并且让其它组件能容易的访问和更新,由各Action类、AjaxBean类、BaseLog类、BaseAction类组成。数据库访问层(DAO,Data Access Object)主要包括各DAO接口和各DAO接口的实现。Hibernate中间件(ORM,Object Relational

22、Mapping)有hibernate.cfg.xml(配置文件)、SessionFactory类、ORM映射文件和实体类。用户主要与视图层接触,进行对页面的请求访问,等待回应。视图层同步请求编码过滤器,访问控制层,再通过模型层访问数据库,返回相应数据,由控制层响应,由视图层显示。视图层的异步通信则通过AJAX组件JSON-RPC,直接通过模型层来访问数据库,又由模型层响应异步通行AJAX组件,显示在视图层。V 视图层C 控制层M 模型层DAO 数据库访问层ORM Hibernate中间件DB MySQL数据库编码过滤器异步通信AJAX组件用 户图4-1 此系统MVC分层架构示意图1.1.3 总

23、体模块总体设计是把总体任务分解为许多基本的、具体的任务。这些具体任务合理地组织起来构成总体任务。其基本任务是将系统划分成模块,决定每个模块的功能,决定模块的调用关系,决定模块的界面及模块间信息的传递。已 登 录 会 员注册、登录查看、搜索商品信息购物车管理顾客留言修改会员资料未登录会员或未注册顾客商品管理员系统管理员会员管理员订单管理员商品种类管理商品和特价商品管理会员信息管理会员留言信息管理订单信息管理管理员信息管理此 数据库总体设计过程首先寻找实现目标系统的各种不同的方案。通常,设计出初步的软件结构后还要多方改进,从而得到更合理的结构,进行必要的数据库设计。图4-2 此系统总体模块图1.2

24、 功能模块此系统大致可以划分为11个功能模块:1.2.1 顾客注册、登录模块顾客可以通过填写注册信息注册成为会员,会员登录后才能进行购物车的管理与意见反馈,未登录的会员或未注册的顾客只能检索与浏览商品信息。顾客注册时可以选择不同的会员级别,有不同的打折率。但是若顾客不符合要求或是有重大表现,后台的管理员可以对其会员级别进行调整。在注册信息时,系统会对注册信息进行有效性的验证,有效才会注册成功。图4-3 顾客注册、登录模块活动图1.2.2 商品检索、浏览模块顾客可以直接查看商品的全部信息(如商品名称、商品图片、商品型号、商品价格、生产厂商、生产日期等),也可以根据不同的商品种类浏览商品信息,也可

25、以透过输入关键字对商品进行检索,查看其信息。图4-4 商品检索、浏览模块活动图1.2.3 特价商品检索、浏览模块类似于商品检索、浏览模块,顾客可以直接查看特价商品的全部信息(如商品名称、商品图片、商品型号、商品价格、商品特价、生产厂商、生产日期等),也可以根据不同的商品种类浏览特价商品信息,也可以透过输入关键字对特价商品进行检索,查看其信息。图4-5 商品检索、浏览模块活动图1.2.4 购物车模块顾客经过登录后便可以进行购物车的管理,将选中的商品增加到购物车中、修改选购商品的数量、删除购物车中的商品、查看购买商品的总价、在线下订单及订单查看等操作。图4-6 购物车模块活动图1.2.5 会员反馈

26、信息、留言模块顾客登录成功后,进入留言信息填写页面,可发表自己的意见或留言,经验证有效方可提交。也可进入查看别人的留言或管理员的回复。图4-7 顾客反馈信息、留言模块活动图1.2.6 后台登录模块后台管理员输入账号密码可以在后台登录,登录验证模块根据输入的账号密码识别不同角色的管理员,然后进入不同的后台管理模块,账号密码输入错误后给出错误提示并要求重新输入。图4-8 后台登录模块活动图1.2.7 商品管理模块商品管理员可以查看商品种类和信息,可以新增、修改、删除商品的种类,同样可以查看商品和特价商品,对其进行新增、修改、删除商品和特价商品的信息等操作。图4-9 商品、特价商品管理模块活动图1.

27、2.8 订单管理模块订单管理员登录后,可以根据日期范围、订单完成状态、订单编号等取得订单列表与查看某订单的详情,也可以修改订单的完成状态及订单中的商品或数量,还可以删除订单本身及订单中的商品。图4-10 订单管理模块活动图1.2.9 会员管理模块会员管理员登录后,可以根据注册时间范围、会员级别及会员ID取得会员列表,然后对某个会员可以进行详细资料的查看、会员级别的调整与删除会员的操作;也可以根据留言时间范围、回复状态及会员ID取得留言列表,然后对某个留言进行内容查看、回复与删除操作。图4-11 会员管理模块活动图1.2.10 系统管理员管理模块系统管理员登录后,可以根据管理员列表进行管理员详细

28、资料的查看、新增管理员、修改管理员信息以及删除管理员操作。图4-12 系统管理员管理模块活动图1.2.11 退出系统模块在前台部分和后台部分都设置了退出系统模块。在前台部分,会员退出系统后,仍可以浏览、检索商品的操作。在后台部分,管理员退出系统,即回到管理员登录页面。五 系统详细设计(一) 数据库设计1.1概念数据模型设计图5-1 此系统的概念数据模型CDM图从图5-1可看出各数据表之间的各种关联关系,各关联关系将会在Hibernate的映射文件中体现出来。l 会员级别与注册会员为一对多关联:一个会员级别可以有多个注册会员,而一个会员只能属于一中会员级别。l 商品类别与商品为一对多关联:一个商

29、品类别可以有多个商品,而一个商品只能属于一种商品类别。l 注册会员与订单为一对多关联:一个会员可以有多张订单,而一张订单只能属于一个会员。l 购物车与商品为多对多关联:一个购物车可以有多个商品,而一个商品也可以放入多个购物车,在数据库的物理实现上,通过连接表“购物车商品选购表”实现购物车与商品的多对多关联。l 订单与购物车为一对一关联:一张订单与一个下订单的购物车相对应。l 注册会员与留言为一对多关联:一个会员可以有多个留言,而一个留言只能属于一个会员。l 系统管理员与留言为一对多关联:一个管理员可以回复多个留言,而一个留言只能由一个管理员回复。1.2 数据表设计表5-1 会员级别表(Memb

30、erLevel)字段名称数据类型主键是否允许为空描述IDint会员级别的ID号LevelNamechar(20)级别名称Favourableint优惠百分比表5-2 注册会员表(Member)字段名称数据类型主键是否允许为空描述IDint会员的ID号Memberlevelint外键会员级别的IDLoginNamechar(12)登录账号LoginPwdchar (12)登录密码MemberNamechar (20)真实姓名Phonechar (15)联系电话Addressnvarchar(100)联系地址Zipchar (10)邮政编码RegDatedatetime注册日期LastDateda

31、tetime最近登录日期LoginTimesint登录次数EMailnvarchar(100)电子邮箱表5-3 商品类别表(Category)字段名称数据类型主键是否允许为空描述IDint商品类别的ID号CateNamenchar(40)类别名称CateDesctext类别描述表5-4 商品表(Merchandise)字段名称数据类型主键是否允许为空描述IDint商品的ID号Categoryint外键商品类别的IDMerNamenchar(40)商品名称Pricedecimal(8,2)商品价格SPricedecimal(8,2)商品特价MerModelnchar(40)商品型号Picture

32、nvarchar(100)商品图片MerDesctext商品描述Manufacturernchar(60)生产厂家LeaveFactoryDatedatetime生产日期Specialint有无特价(0:无,1:有)表5-5 购物车表(Cart)字段名称数据类型主键是否允许为空描述IDint购物车的ID号Memberint外键会员IDMoneydecimal(9,2)总金额CartStatusint购物车状态表5-6 购物车商品选购表(CartSelectedMer)字段名称数据类型主键是否允许为空描述IDint选购ID号Cartint外键购物车IDMerchandiseint外键商品IDNu

33、mberint商品数量Pricedecimal(8,2)商品价格Moneydecimal(9,2)金额表5-7 订单表(Orders)字段名称数据类型主键是否允许为空描述IDint订单ID号Memberint外键会员IDCartint外键购物车IDOrderNOnchar(20)订单编号OrderDatedatetime订单日期OrderStatusint订单状态表5-8 系统管理员表(Admin)字段名称数据类型主键是否允许为空描述IDint系统管理员ID号AdminTypeint管理员类型AdminNamechar(12)管理员真实姓名LoginNamechar(12)管理员登录账号Log

34、inPwdchar(12)管理员登录密码(管理员类型分为4种:1商品管理员,2订单管理员,3会员管理员,4系统管理员)表5-9 留言表(LeaveWord)字段名称数据类型主键是否允许为空描述IDint留言ID号Memberint外键会员IDAdminint外键管理员IDTitlenchar(40)留言标题Contenttext留言内容LeaveDatedatetime留言日期AnswerContenttext回复内容AnswerDatedatetime回复日期1.3 架构设计1.3.1 常量类Constants设计此系统中的所有消息key以静态属性的形式存放到常量类Constants中,所有

35、需要用到消息key的地方通过调用Constants的相应属性实现,这有利于消息key的统一维护和管理。package com.base;/* 常量类 */public class Constants public static String ADMIN_LOSTNAME_KEY = "admin.lostName"public static String ADMIN_LOSTPWD_KEY = "admin.lostPwd"public static String ADMIN_LOGINERROR_KEY = "admin.loginerror

36、"将本系统中的所有消息内容以键值对的形式存放于消息资源文件ApplicationTperties中,实现消息内容的统一维护与管理,也便于应用国际化实现。1.3.2 带日志功能的基类设计创建一个带日志功能的基类BaseLog.java,简化Log4j在JavaBean中的应用,继承基类BaseLog的所有JavaBean均享受父类的日志功能。然后创建一个带有日志功能的基类BaseAction.java,简化Log4j在Struts Action中的应用,继承基类BaseAction的所有Action均享受父类的日志功能。1.3.3 应用配置文件在Web应用描述文

37、件web.xml中配置中文过滤器、Struts标签库组件、Struts中央控制器ActionServlet及默认的欢迎文件列表等。<!-配置Struts中央控制器-> <servlet> <servlet-name>action</servlet-name> <servlet-class></servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-conf

38、ig.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>3</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>3</param-value> </init-param> <lo

39、ad-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>1.3.4 Struts配置文件在Struts配置文件struts-config.xml中主要配置:l 配置ActionForm Beanl<form-beans > <form-b

40、ean name="loginForm" type="com.struts.form.LoginForm" /> <form-bean name="adminForm" type="com.struts.form.AdminForm" /> <form-bean name="cateForm" type="com.struts.form.CateForm" /> <form-bean name="merForm" typ

41、e="com.struts.form.MerForm" /> <form-bean name="memLoginForm" type="com.struts.form.MemLoginForm" /> <form-bean name="memberForm" type="com.struts.form.MemberForm" /> </form-beans>l 配置全局转发关系l 配置Action映射l 配置消息资源 <message-resour

42、ces parameter="com.struts.ApplicationResources" />l 配置Struts-menu插件 <plug-in className="net.sf.navigator.menu.MenuPlugIn"> <set-property property="menuConfig" value="/WEB-INF/menu-config.xml"/> </plug-in>l 配置Validator插件<plug-in classNam

43、e="org.apache.struts.validator.ValidatorPlugIn"> <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /> </plug-in>图5-2 struts-config.xml配置文件的Design图1.3.5 Hibernate配置文件在Hibernate配置文件中主要配置有:l 配置JDBC连接l 解决HQL查询中直接使

44、用中文的问题l 配置C3P0连接池l 在控制台显示SQL语句l 注册ORM 映射文件<mapping resource="com/ORM/Memberlevel.hbm.xml" /><mapping resource="com/ORM/Merchandise.hbm.xml" /><mapping resource="com/ORM/Admin.hbm.xml" /><mapping resource="com/ORM/Orders.hbm.xml" /><m

45、apping resource="com/ORM/Cartselectedmer.hbm.xml" /><mapping resource="com/ORM/Cart.hbm.xml" /><mapping resource="com/ORM/Leaveword.hbm.xml" /><mapping resource="com/ORM/Category.hbm.xml" /><mapping resource="com/ORM/Member.hbm.xml

46、" />1.3.6 工程包层次结构图5-3工程包层次结构图说明:m src存放JAVA源代码m base存放一些基本类与常量类m filter存放编码过滤器m ORM存放Hibernate的实体类及ORM映射文件m service存放所有与数据库操作相关的DAO类m struts存放所有Struts的FormBean、Action类及消息资源文件m Admin存放所有后台管理所用到的JSP页面m CSS存放CSS样式表文件m images存放应用中所有的图片素材文件m JS存放应用中所有的JavaScript脚本文件m Picture存放应用中所有上传的图片文件1.4 详细模块

47、设计1.4.1 顾客注册、登录模块顾客只有通过注册菜能成为会员,会员只有登录后才能进行管理自己的购物车、订单及留言等操作。图5-4顾客注册、登录模块图控制层Struts的实现:顾客将注册的表单提交之后,reg.jsp表单的内容由Struts自动封装到memberFrom对象中,并送交Validator进行表单有效性验证,如果验证失败则返回reg.jsp要求顾客重新填写,验证成功就将memberForm对象提交给MemAction的reg方法进行处理,处理完后将提示信息返回reg.jsp并完成注册。会员登录时,首先在default.jsp中登录,提交之后,登录表单的内筒有Struts自动封装到m

48、emLoginForm对象中,并提交到Validator进行表单有效性验证,如果验证失败则返回default.jsp要求重新登录,验证成功就将memLoginForm对象提交给LoginAction的login方法进行处理,处理完成后将处理结果返回default.jsp并完成登录。1.4.2 商品和特价商品检索、浏览模块顾客与会员可以根据不同的商品种类浏览商品信息,也可以输入关键字进行商品检索。控制层Struts的实现:顾客请求均通过直接调用MerAction类的相应方法进行处理,MerAction类中的方法在收到请求后,根据具体的请求调用MerService接口中的相应DAO方法完成数据库的

49、访问,并将检索得到的结果返回给MerAction,MerAction将最终的处理结果保存到request对象中,由相应的JSP页面展示出来。图5-5商品和特价商品检索、浏览模块图1.4.3 购物车模块会员输入账号与密码登录后便可进行购物车的管理了。图5-6购物车模块图1.4.4 会员反馈信息、留言模块顾客在未成功登录时,只能查看现有的留言及回复信息,会员成功登录后菜能进行留言。图5-7会员反馈信息、留言模块图1.4.5 后台登录模块后台管理员按职责与权限的不同共分为4种,共用同一个后台登录模块,系统根据输入的账号和密码来确定管理员的身份,以决定该管理员的操作权限。图5-8后台登录模块图1.4.

50、6 后台商品和特价商品管理模块商品管理员成功登录后,才能进行商品的管理操作。图5-9后台商品和特价商品管模块图此模块的页面包括有浏览商品分类页面adminCate.jsp,新增商品分类页面adminAddCate.jsp,修改商品分类页面adminModiCate.jsp,浏览商品页面adminMer.jsp,新增商品页面adminAddMer.jsp,修改商品页面adminModiMer.jsp,查看商品页面adminViewMer.jsp,浏览特价商品页面adminSMer.jsp,新增特价商品页面adminAddSMer.jsp,修改特价商品页面adminModiSMer.jsp,查看特

51、价商品页面adminViewSMer.jsp。1.4.7 后台订单管理模块图5-10后台订单管模块图订单是由会员在购物后,成功提交订单后产生的,从下单到结单中间还要经过订单受理和处理的过程。订单管理员成功登录后,才能进行订单的管理操作。1.4.8 后台会员管理模块会员管理员成功登录后,才能进行对会员和留言的管理操作。图5-11后台会员管模块图1.4.9 后台系统管理员管理模块系统管理员登录成功后,才能对各管理员的信息进行管理操作。图5-12后台管理员管模块图六 系统实现(一)环境配置1. 安装配置JDK1.5,JDK1.5的系统环境设置。2. 运行Tomcat5.0开启Tomcat,并进入其首

52、页测试http:/localhost:8080:3. 启动MySQL首先在服务中将MySQL启动,再进入其可视界面管理工具MySQL Query Browser。图6-1 MySQL Query Browser图4. 最后在Myeclipse6.0中进行开发与测试图6-2 MyEclipse界面图1.5 主要代码1. 顾客注册、登录模块的展示层主要由注册页面reg.jsp和登录页面default.jsp组成。登录页面default.jsp的验证: <!验证是否登录是否正确的JavaScript -><script language="javascript"

53、>if('<html:errors property="loginError"/>'.length!=0)alert('<html:errors property="loginError"/>');</script></logic:messagesPresent>2. 使用Ajax实现会员注册有效性验证在会员注册中,将会员登录的文本框的onblur事件处理函数指定为checkLoginName(),然后在JavaScript的checkLoginName()方法中通过J

54、SON-RPC组件调用服务器端AjaxBean的chkLoginName(String loginName)方法实现登录名的有效性检查。在reg.jsp中的checkLoginName()方法:/登录帐号有效性检查function checkLoginName()var lname = document.all.loginName.value;if(lname !=null)&&(lname.length>0)&&(!jsonrpc.ajax.chkLoginName(lname)alert('对不起,该登录帐号已被占用,请重新输入!');

55、document.all.loginName.focus();3. 会员登录表单MemLoginForm.java,default.jsp中登录表单的内容由Struts自动封装到memLoginForm对象中。private String loginPwd;private String loginName;public ActionErrors validate(ActionMapping mapping,HttpServletRequest request) return null;public void reset(ActionMapping mapping, HttpServletRequest request)4. 持久层Hibernate的实现,Hibernate负责处理会员与会员级别的关联关系及相关的数据库DAO操作。会员与会员级别的多对一单向关联在Member.hbm.xml中配置: <!-映射Member到Mem

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论