静坐常思己过,闲谈莫论人非,能受苦乃为志士,肯吃亏不是痴人,敬君子方显有德,怕小人不算无能,退一步天高地阔,让三分心平气和,欲进步需思退步,若着手先虑放手,如得意不宜重往,凡做事应有余步。持黄金为珍贵,知安乐方值千金,事临头三思为妙,怒上心忍让最高。切勿贪意外之财,知足者人心常乐。若能以此去处事,一生安乐任逍遥。

Eclipse+Struts+Hibernate的网络商店

作者:大鹏 发布于:2006-11-9 21:16 Thursday 分类:Java与Jsp

本文介绍一下网络商店的开发所需要的开发工具和架构。
  [b]基本配置[/b]
  开发本例需要的开发工具。
  ·开发平台:Eclipse 3.1。
  ·Web服务器:Tomcat 5。
  ·开发技术:JSP,Struts框架,Hibernate技术,JSTL。
  ·数据库服务器: MySQL5.0。
  [b]系统需求[/b]

  大部分读者都有过在网上购物的经历,在购物网站可以很方便的注册、浏览商品、查询商品、购买时也只需点几下
[url=http://diy.yesky.com/input/]鼠标[/url]
。本章的网络商店实现了上述的基本功能,用户可以在网络商店中进行注册、浏览商品以及查询购物车。下面来讲解每个系统功能。
  1.登录和注册
  用户登录和注册就是实现一个新的用户注册和老用户的登陆,这两个功能基本上每个电子商务网站上提供。用户注册就是新用户可以在网络商店进行信息注册,这是购物的前提。用户必需先注册才能进行购物。注册时系统会对注册信息进行验证,以确保注册信息的正确性。用户登录就是用户可以在登陆页面进行登陆,在购物结帐时,用户需要登陆信息,当然在进入系统开始的时,用户可以进行登陆。登陆时,如果用户名密码错误,系统会提示错误。
  2.商品浏览
  商品浏览是实现用户可以在网络商店中随意浏览商品,商品是根据商品的类别来进行分类的,用户可以单击每一个分类的链接来进入每一个分类,查看的详细信息。进入每一个商品类别之后,商品是根据每个产品的类型再分类的。
  例如,进入书这个大的类别,书有可以分很多种,如计算机相关的书,管理方面相关的书。用户根据每一个产品链接来进入每一个产品系列。例如单击进入计算机相关的书,进入之后,列举的就是每一个商品。单击每一个商品就可以看到每一个商品的具体信息,例如单击计算机程序设计艺术,就可以看到这本书的出版日期,价格,书的大概内容。如果觉得这本书很合适,就可以把它放进购物车。
  3.结帐
  在结帐的时候,系统会
[url=http://diy.yesky.com/monitor/]显示[/url]
用户购物车中已有的商品,包括产品名、产品数量、单价、总的价格以及是否有库存。在最后确定订单时,用户可以修改每一个商品的数量。例如计算机程序设计与艺术想买2本,则用户可以修改它的购买数量,更新购物车就可以。如果用户不想买这本书了,就可以把这本书从购物车中消除。但是一旦单击了结帐生成订单,则购物车就不能被改变了。
  根据上面大概的需求,画出网络商店的用例图,如图1所示。
  
点击在新窗口中浏览此图片
  图1 用例图
  [b]系统功能描述[/b]
  在本节中,将以最直观的方式来向读者介绍整个系统要实现的功能。
  1、用户注册
  用户注册是网络商店的基本功能之一。用户如果想从网络商店购买商品,必须有一个网络商店的账号。用户可以通过注册获得账号。注册页面效果如图2所示。
  当注册成功之后,会进入到网络商店的首页。此时已经以新的帐号登录了网络商店,系统页面的首页如图3所示。在注册时,系统会对注册信息作一些简单的验证,如果信息格式不对,则注册会失败,系统会提示失败的原因,注册失败如图4所示。
  
点击在新窗口中浏览此图片

  图2 注册页面
  
点击在新窗口中浏览此图片

  图3 注册成功
  2、用户登录
  当用户已经拥有一个账号,就可以进行登录。当用户登录系统首页时,可以点击登陆链接尽心登录。登录页面如图5所示。如果登录成功,则返回到系统的首页,如果登录失败则会转入到失败页面,如图6所示。
  
点击在新窗口中浏览此图片

  图4注册失败
  
点击在新窗口中浏览此图片

  图5 登录页面
  用户成功登录后,在系统的右上角有一个链接,单击进入可以修改跟人信息,如图7所示。
  
点击在新窗口中浏览此图片

  图6 登录失败
  
点击在新窗口中浏览此图片

  图7 修改个人信息
  3、浏览商品
  用户成功登录后就可以浏览网路商店中的商品了。在首页有几种商品品种可以供用户选择的,如电子商品、书籍以及软件。例如,用户单击软件,进入软件商品的浏览,软件商品下面分为Microsoft和kingsoft,如图8所示。
  进入某一个商品品种后,系统会列出这个商品品种下的所有商品系列,每一商品系列又有很多具体的商品,例如用户单击Microsoft,如图9所示。
  
点击在新窗口中浏览此图片

  图8浏览商品
  
点击在新窗口中浏览此图片

  图9浏览具体商品
  在图9的页面中列出的是一个一个具体的商品,用户可以单击每一个商品名,以查看这个商品的具体信息。例如单击anti spy,如图10所示。
  4、购物
  当用户浏览商品时,看中了一个商品,就可以把这个商品放到自己购物车中。每一个商品都有一个链接提供放入购物车。单击放入购物车,如图11所示。
  
点击在新窗口中浏览此图片

  图10 商品具体信息
  
点击在新窗口中浏览此图片

  图11 查看购物车
  在查看购物车页面中有很多供选择的操作,如删除一个购物车。当用户单击删除,如图12所示,系统还是会跳转到购物车页面。如果用户觉得某一个商品的数量不合适,用户可以更改该商品的数量,在数量这一栏中填上要购买的数量,然后单击更新购物车,如图13所示。
  
点击在新窗口中浏览此图片

  图12 删除一个商品
  
点击在新窗口中浏览此图片

  图13 更改商品的数量
  5、结帐
  查看购物车之后,如果用户想进行结帐可以单击结帐链接,如图14所示。单击下一步链接,就可以查看该订单的详细情况,如图15所示
  
点击在新窗口中浏览此图片

  图14 结帐
  
点击在新窗口中浏览此图片

  图15 订单详细信息
  查看订单详细后,然后单击下一步链接,就是订单的确认了,如图16所示
  订单确认完毕之后,就是订单的生成了。如果单击下一步链接,生成订单,此时订单不能在被修改了。如图17所示。
  
点击在新窗口中浏览此图片
   图16确认订单
  
点击在新窗口中浏览此图片
   图17订单生成
  [b]系统设计[/b]
  在对系统的需求进行了分析以后,接下来开始对系统的整体架构进行设计。本章的重点在于讲述如何进行开发,而不是在于如何进行设计。因此,在设计这一部分只是简单进行了介绍,目的是为了使读者更容易理解整个系统。
  1、系统架构设计
  整个应用程序遵循多层次的架构模式,从上到下依次为视图层、控制器层、模型层、持久化层和数据库层,如图18所示。前面三层其实就是Struts框架的基本基本层次。持久化层则是Hibernate来创建的。
  
点击在新窗口中浏览此图片
  图18系统架构
  其中,模型层、持久化层、数据库层之间的关系是上层依赖下一层,而下一层对上一层的依赖很少,如同网络的ISO七层模型。各层次间的依赖关系应该是自顶向下的,即上层可以依赖下层,而下层应该尽量减少对上层的依赖。
  例如,此时在系统中使用Hibernate来实现持久化层,若要采用其他机制实现持久化层时,则不需要改动业务逻辑中的代码。而视图层和控制器层都是通过Struts框架来实现的。模型层实际上又可细分为数据访问层(DAO)和数据服务层(Manager)。持久化层是使用Hibernate实现的,在这层使用了DAO模式,所以这层又可分为数据访问层和数据服务层。
  2、业务实体设计
  一个系统的业务实体在
[url=http://diy.yesky.com/memoery/]内存[/url]
中表现为实体域对象,在数据库中表现为关系数据,实现业务实体包括以下内容。
  ·设计域模型,创建域模型实体对象。
  ·设计关系数据模型。
  ·创建对象—关系映射文件。
  在网络商店中有以下的业务实体:用户、具体商品、商品系类、商品类、订单、订单项、购物车和购物车中具体的商品。下面对这些业务实体作一个简单的解释,后面章节会有详细的解释。
  ·用户:代表一个用户实体,主要包括用户的详细信息,如用户名,密码,地址之类的。
  ·具体商品:代表每一个具体的商品信息,如上面提到的计算机程序设计艺术,主要包括商品的名字,价格等。
  ·商品系类:代表一系类商品,如前面提到计算机相关书籍。
  ·商品类别:代表一类商品,如前面提到的书。
  ·订单:代表用户的订单,主要包括订单名,用户信息,订单的具体内容。
  ·订单项:代表订单中具体项,一个订单项包括一个商品的购买情况。
  ·购物车:代表用户的购物车,是一个虚拟的概念。
  ·购物车中的具体商品:代表购物车中每一个具体的购物项。
  这些实体之间的关系如图19所示。
  
点击在新窗口中浏览此图片
  图19 业务实体关系图
  如图19所示,这里来介绍一下各实体之间的对应关系。
  ·用户和订单:一个用户可以拥有多个订单,一个订单只能属于一个用户,他们之间的关系是一对多的关系。在数据库表中是表现为订单表中有一个用户表的外键,在Hibernate中则表现为订单持久化类中有一个用户持久化类引用。
  ·订单与订单项:一个订单中可以有很多订单项,一个订单项只是对一个具体商品的封装。订单与订单项的关系在Hibernate中表现为一个订单项中有一个订单的持久化类引用。
  ·订单项与商品:一个订单项就是对商品的封装,一个商品就是这个商品的详细信息,订单项中除了有这个商品的信息,还有这个商品的购买数量,属于哪个订单等。
  ·商品系列与商品:一个商品系列有多个商品,如同计算机方面书籍与计算机程序设计艺术关系。
  ·商品类别与商品系列,一个商品类别有多个商品系列,如同书与计算机方面书籍的关系。
  ·购物车与购物商品,用户的购物车中可以有多个购物商品,由于是网上购物,也许购物车中把一个没有库存的商品放到了购物车中,所以购物商品就必须有这个信息。
  ·购物商品与商品,这个关系同订单项与商品的关系类似,只是购物商品对商品的封装角度不一样,购物商品中除了要记录商品的数量还需记录它的库存情况。
  以上是系统中所有实体域模型之间的关系的定义。
  3、业务逻辑设计
  在本系统中,应用的持久化层采用Hibernate做为中间件,并使用了DAO设计模式实现对数据层的访问。DAO模式是J2EE核心模式中的一种,其主要的行为就是在业务核心方法和具体数据源之间再增加一层,用这一层来连接业务方法和数据源,这样就实现了两者的解耦。
  因为具体持久层数据源可能是多样化的,可能是XML或者是关系数据库。在具体的关系数据库中,也可能是不同的产品,如Oracle或者MySQL。通过使用DAO模式,业务核心部分就不用关心数据层是如何实现对数据库的操作的,而只关心自己的业务操作,对数据库的操作全部仍给了DAO代理,如图20所示。
  
点击在新窗口中浏览此图片
  图20 DAO模式


标签: java jsp

et_highlighter
发表评论 »本文目前尚无任何评论

发表评论

干净网络从你做起,切勿黏贴小广告