




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AJAX购物网站设计文档一、要实现的功能用户访问网站时,如未登陆成用户,则只可以查看网站中的商品信息不能购买商品。注册为会员并登陆后,可以购买指定数量的商品,购买完所有商品后,用户可调用结帐功能对所购买的商品进行结帐,在整个购买过程中,用户所购买的商品放在虚拟购物车中,并未记录数据库中。二、AJAX技术在本例中的作用实现动态无刷新的页面效果,即通过动态改变页面中层的内容改变页面的内容。三、数据库模型设计图3-1 数据库模型图描述:编号库表名称描述1ngwc_commodities商品信息表2ngwc_operlog用户操作记录,存购买信息3ngwc_user用户表4ngwc_type用户类型表四、类的设计1. 持久化类的设计图4-1 持久化类类图描述:编号类名描述1NgwcCommodities商品信息类2NgwcOperlog用户购买信息类,存购买信息3NgwcUser用户信息类4NgwcType用户类型类说明:持久化类的每个类的属性都有其对应的setter和getter方法,Hibernate通过持久化类可进行数据库的操作。2. 虚拟购物车类的设计图4-2 虚拟购物车类类图描述:编号类名描述1Cart虚拟购物车类2BeanItems购物车中存放的每一个商品3. 数据库操作类的设计图4-3 数据库操作类类图描述:编号类名描述1Dao数据库操作类2DaoImpl数据库操作类的接口,定义的数据库操作类中实现在方法Dao类中实现的方法说明: List showAllComms(int start); /按分页得所有商品List showFindComms(String commname, int start); /按查找得所有商品int getPages(); /得所有商品总页数int getFindCommsPages(String commname); /得查找的商品个数void addUser(NgwcUser user); /向数据库添加一个用户NgwcUser getUserInfo(String username, String password); /通过用户名和密码得到用户信息public List getUserLogs(NgwcUser user); /得到当前用户的购买记录public boolean existUser(String username); /是否存在用户boolean existUser(String username,String password); /是否存在该用户名及密码对应的用户public void saveLogs(NgwcOperlog logs); /保存logspublic void updateComms(NgwcCommodities comm ,int num); /更新商品信息public void updateUser(NgwcUser user); /更新用户信息public boolean registUser(NgwcUser user); /添加一个用户五、功能实现1. 注册功能实现功能说明:用户点击首页中的注册链接后,页面中显示注册层供用户填写注册信息,当用户输入新注册的用户名时,ajax调用后台名为checkUser的servlet判断是否存在同名用户,并返回判断的信息;当用户输入密码和确认密码时,判断密码是否和确认密码相同;若以上两个条件同时满足,注册按钮可用,否刚,注册按钮不可用。完成输入信息后,点击注册按钮进行用户注册操作,注册操作完成后,系统自动为用户完成登陆操作并返回首页。图5-1-1 注册功能活动图图5-1-2注册功能顺序图描述:编号名称类型描述1Index.jsp页面文件首页页面2ajax.jsJs文件存放所有的javascript函数3checkUserServlet检察是否存在同名用户4RegistActionAction点击注册按钮后提交到的页面5SessionSession对象当前用户的session6Dao类数据库操作类2. 登陆功能实现功能说明:用户点击完登陆链接后,在页面中显示登陆层用户输入完用户名和密码后点击登陆按钮完成登陆操作。图5-2-1登陆功能活动图图5-2-2 登陆功能顺序图编号名称类型描述1Index.jsp页面文件首页页面2ajax.jsJs文件存放所有的javascript函数3loginServlet执行登陆操作4SessionSession对象当前用户的session5Dao类数据库操作类3显示所有商品功能实现 功能说明:根据是否已经登陆判断每一项商品的购买按钮是否可用,根据用户请求的页数从数据库中查询出数据,生成数据集合,根据按钮可用信息及数据集合生成页面信息并回传显示。图5-3-1 显示所有商品活动图图5-3-2 显示所有商品顺序图描述编号名称类型描述1Index.jsp页面文件首页页面2ajax.jsJs文件存放所有的javascript函数3ShowAllCommsServlet执行显示所有商品操作4SessionSession对象当前用户的session5Dao类数据库操作类4. 显示所有查找的商品功能说明:根据是否已经登陆判断每一项商品的购买按钮是否可用,根据用户请求的页数及需要查询的商品名称从数据库中查询出数据,生成数据集合,根据按钮可用信息及数据集合生成页面信息并回传显示。图5-4-1 显示所有查找商品活动图图5-4-2 显示所有查找商品顺序图描述编号名称类型描述1Index.jsp页面文件首页页面2ajax.jsJs文件存放所有的javascript函数3ShowFindCommsServlet执行显示所有查找商品的操作4SessionSession对象当前用户的session5Dao类数据库操作类5. 购买商品功能说明:用户在购买商品时,首先输入要购买的商品数量,如果要购买的商品数量大于库存的数量则不能执行购买操作,输入正确的数量后点击购买按钮执行购买操作,将用户购买的商品信息通过ajax传给后台servlet进行操作,完成购买操作后,session中用户信息的用户帐户余额根据用户的折扣率及购买商品的金额减去相应的数值,用户购买的商品信息将存入虚拟购物车实例。最后在首页中显示。图5-5-1 购买商品时序图描述编号名称类型描述1Index.jsp页面文件首页页面2ajax.jsJs文件存放所有的javascript函数3BuyServlet执行购买商品操作4SessionSession对象当前用户的session图5-5-2 购买商品活动图6. 从购物车中删除商品功能说明:当用户想要从购物车中删除所买商品时,在首页左下方单击相应商品的”删除”链接,转向DeleteFromCart并传要删除的商品id,该Servlet负责将购物车实例从session中取出,将用户指定id的商品从购物车中删除最后,将购物车存回session并转回首页。图5-6-1 从购物车中删除商品活动图图5-6-2 从购物车中删除商品顺序图描述编号名称类型描述1Index.jsp页面文件首页页面2DeleteFromCartServlet执行删除操作的Servlet3SessionSession对象当前用户的session7.确认购买操作功能说明:当用户购买完商品后,执行购买操作,结帐当前购物车,修改当前用户余额,修改库存余额,将购买记录存进数据库中。图5-7-1 确认购买操作活动图图5-7-2 确认购买操作顺序图描述编号名称类型描述1Index.jsp页面文件首页页面2ajax.jsJs文件所有的javascript函数文件3BuyCommsServlet执行确认购买操作4SessionSession对象当前用户的session5Dao类数据库操作类附录1.AJAX分页显示原理:用户点击要显示的页数链接后,调用相应的ajax处理函数,该函数将页数作为参数传递给后台servlet进行处理,在该后台servlet中,将根据页数信息对数据进行加工,从数据库中取出对应页上应该显示的商品信息,根据页面生成规则生成html页面代码,并将这些代码回传出去,ajax的接收处理函数接收到页面代码后,调用相应标记的innerHTML方法改变显示的内容完成分页显示操作。图 附录-12虚拟购物车类代码分析Cart类:购物车类package com.mjpc.util;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import com.mjpc.data.NgwcCommodities;public class Cart private int NumOfCart; /购物车中的商品总数HashMap cart; /购物车中的商品集合,其各个项目以BeanItem类对象形式存在String cartid; /*购物车的id号,本例中并没有使用,其它应用中可用其作为商品的订单号(可通过sessionid或其它方式获取)*/public Cart() /购物车类的构造方法,初始化一个购物车NumOfCart = 0;cart = new HashMap();cartid = ;public HashMap getCart() return cart;public void setCart(HashMap cart) this.cart = cart;public String getCartid() return cartid;public void setCartid(String cartid) this.cartid = cartid;public int getNumOfCart() return NumOfCart;public void setNumOfCart(int numOfCart) NumOfCart = numOfCart;public void addItem(Integer id, NgwcCommodities comm, int num) /向购物车中添加一个商品 /如果购物车中没有当前id的商品则新添加一个商品项目,购物车商品数量加一if(!this.cart.containsKey(id) BeanItems item = new BeanItems(comm, num);this.cart.put(id, item);this.NumOfCart+;else /如果当前购物车中存在当前id的商品则在原有项目的基础上购买数量更新购物车BeanItems item = (BeanItems) cart.get(id);item.setItemNum(item.getItemNum() + num);this.cart.put(id, item);public void removeItemByNum(int id)/删除购物车中key为id的项目,购物车中商品数量减一if(this.cart.containsKey(id)this.cart.remove(id);this.NumOfCart-;public Collection getAllItems() /得到购物车中的所有商品return this.cart.values();public double getSum() /得到购物车中商品的总价格double sum = 0;Iterator it = this.cart.values().iterator();while(it.hasNext()BeanItems item = (BeanItems)it.next();sum += item.getItemPrice();return sum;BeanItems类:购物车中的商品以BeanItems对象的形式存储package com.mjpc.util;import com.mjpc.data.NgwcCommodities;public class BeanItems private int itemNum; /当前商品的购买数量private NgwcCommodities comm; /购买的具体的商品private double itemPrice; /当前商品的价格(数量 * 单价)public BeanItems() /初始化一个购物车中的商品itemNum = 0;comm = new NgwcCommodities();public NgwcCommodities getComm() return comm;public void setComm(NgwcCommodities comm) m = comm;public int getItemNum() return itemNum;public void setItemNum(int itemNum) this.itemNum = itemNum;public BeanIte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物联网技术在作物病虫害监测中的应用-洞察及研究
- 人工智能在二手车评估中的影响-洞察及研究
- 海洋酸化对海洋底栖生物的影响-洞察及研究
- 乡村旅游社区参与度提升-洞察及研究
- 数字化转型对电梯安全的影响-洞察及研究
- 母婴教育平台用户行为分析-洞察及研究
- 污水处理工程款支付担保合同书
- 个人融资担保保险合同
- 跨境电商平台运营团队利润分享与长期稳定合作合同
- 初步设计-建筑方案设计
- 室内X射线探伤机应用项目环境影响报告表
- 新闻发布知识培训课件
- GB/T 18277-2025收费公路收费制式和收费方式
- 高一语文学法指导(绝对经典)
- 医院安全生产知识培训课件
- 包装车间基础知识培训课件
- 2025年贵州建筑中级试题及答案
- 2025年全科医师转岗培训理论必刷试题库及答案
- 古代服饰复原与租赁服务创新创业项目商业计划书
- 量产产品管理办法
- 河北社区工作管理办法
评论
0/150
提交评论