首页 > 经验记录 > java > 纯J2EE商城【所有】模块流程图以及项目总结

纯J2EE商城【所有】模块流程图以及项目总结

老子画得要死了!!!

毫不吹比的说,现在的我对这个项目已经熟悉到了可怕的地步,哪个功能是怎么实现的,甚至调用过程和关联的类我都能背出来

(发布看了一遍真是醉了,这特么的都被压瘦了,字都看不清楚,推荐要在网页看图的朋友右键图片在新标签打开查看,或者干脆别看了,下ppt看吧,原生图片清楚多了)

ppt我传到度盘了:/s/1djWr4IcxDZIxL7bFAu2NbQ 密码: nrww

 

系统实现目标:

1.用户的登陆注册以及退出

2.首页展示二级菜单、商品分类列表、查看商品详情

3.实现购物车和订单功能,用户选择所需商品后,放到购物车

4.购物车实现:商品加入,内部增删改查,数据持久化

5.订单实现:购物车数据指向订单、订单提交、确认订单、结算、支付、我的订单、确认收货、收货成功

模块分析

用户模块具有以下功能:

(1)登录模块负责验证会员的登录,这种操作都是从数据库查询。

(2)用户注册模块负责新会员注册,并将其持久化,也就是将新注册的会员的信息写入数据库

(4)购物车模块就是收集和记录用户所购买的商品,用户离开时购物车若还有数据则需要将其持久化

(5)订单模块能将购物车中的数据指向订单,并能够使用户能查看自己所下的订单,以及对订单的操作。

(6)商品展示模块应当是从数据库中将商品拿出来, 然后再以某种方式显示在网页上(前端数据交互)

首页

商品详情页

登陆页

注册页

购物车查看页

订单提交页

确认支付页

支付成功页

订单查看页

数据库的操作始终贯穿在整个系统里面,几乎所有的地方都涉及到了数据库的操作。

 

下面是表关联图和用户购物流程图

分隔符—

 

 

系统具体实现

首页实现

1、轮播图实现

2、用户加载页面的时候在jquery的准备函数中使用Ajax请求

3、请求到servlet中会判断session中是否已拥有了菜单和分类查询的数据

4、若没有则将数据封装为bean之后,将其处理成json数据,保存在session中

5、若有则直接从session中获取,无论怎样都将数据返回到首页

6、在Ajax的回调函数中接收json对象并取得json对象中的值,将其动态的显示到页面上

分隔符—

 

 

商品详情页面实现

商品详情页实现了商品信息的显示与其商品图片的显示,并且动态显示了用户选择的规格库存

1、用户选中商品点击后首先会跳到servlet将其选中的商品和商品对应的图片信息放入session域中

2、从servlet跳转到商品显示页面,在页面中使用JSTL和EL表达式显示servlet储存到session中的数据

3、为商品的规格绑定了一个click事件,判定用户同时选中颜色和尺码后调用ajax进行局部刷新库存

4、ajax把用户选择的规格和商品id传到servlet,通过这些数据从数据库中找到该条数据的库存,并返回显示

 

 

 

登陆注册实现

用户在商品详情页面选择加入购物车或者立即购买时,若未登陆则会进入登录界面

1、用户在登陆界面需要输入正确的账号以及密码才能够进行登陆

2、若没有账号则可以在注册界面实现注册

3、注册界面实现了对用户输入信息的效验,只能输入匹配格式的信息

4、登陆注册界面均实现了验证码功能,用户必须输入正确的验证码才能进行下一步

 

购物车实现

用户在商品详情页面选择加入购物车时,可将该商品和其对应的规格组合成一个订单项记录到购物车中

并对购物车进行增删改查

4、购物车页面使用JQuery技术实现了动态的获取用户增删改后的总金额并显示

3、购物车页面实现了对每个购物项的增删改查操作,查通过JSTL+EL表达式进行查询

-无论如何最后都将购物车放入到session域中覆盖掉原有的购物车,并跳转到购物车jsp页面

-若购物车中没有该条数据,则将该条数据塞入购物车中

-若购物车中已有该条数据,则在其基础上进行数量的增加

2、servlet获取session中已存在的的购物车bean对象,进行判断

1、用户点击加入购物车时会将商品id、规格id、数量传入到servlet

分隔符—

在用户退出时、或者session自动销毁时

监听器将会调用方法将session中的订单项数据

和数据库中的订单项数据进行交叉修改

交叉修改逻辑为:

遍历tableList,在其循环体中遍历sessionList。通过规格id判断,如果tableList有的数据sessionList没有,则执行删除操作,在数据库中删除该数据

遍历sessionList ,在其循环体中遍历tableList ,通过规格id判断如果sessionList有的数据tableList没有,则执行增加操作,在数据库中增加该数据。

在遍历同时,遇到tableList中对象拥有相同的规格id则进行判断,如果双方数量一致则continue跳过当前循环,如有不一致的项则执行修改操作,修改数据库中已有的数据

 

 

 

订单实现

用户在商品详情页面选择立即购买时、在购物车提交订单时,跳到提交订单页面提交订单

用户可到我的订单页查看订单,并进行订单类型转换操作

1、实现从立即购买到提交订单页、从购物车到提交订单页

2、提交订单页的订单项数据显示、用户填写信息的表单效验、用户确认提交订单时进行订单持久化

3、我的订单页实现用户à多个订单  ,  每个订单à多个订单项的查询显示

4、我的订单页实现对每个订单总价的动态计算、对每个不同类型订单操作动态显示

5、我的订单页使用jquery实现了点击顶部标签切换显示其标签所对应的数据

6、我的订单页实现用户对每个不同状态的订单能够执行各种不同操作(付款、催卖家发货、收货、退款、催退款…)

7、支付页和支付成功页实现、和其订单数据显示

 

从购物车或立即购买跳转到提交订单页:

 

提交订单页实现逻辑:

 

查看订单页遍历的数据类型(这玩意是最吉尔麻烦的)

查看订单页实现逻辑:

订单状态变换:


EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00