免费预览已结束,剩余34页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JIANGXI AGRICULTURAL UNIVERSITY 本本 科科 毕毕 业业 论论 文(设文(设 计)计) 题目: 网上书店系统(电子商务交易平台) 学学 院:院: 计算机与信息工程学院计算机与信息工程学院 姓姓 名:名: 学学 号:号: 专专 业:业: 班班 级:级: 指导教师:指导教师: 王王 兴兴 宇宇 职职 称:称:副教授副教授 二 0 年月 I 摘要 随着互联网路的发展,电子商务发展越来越迅速,传统模式的经营已经 不能够满足人们的需求,网上书店慢慢进入人们的视野,该系统主要实现用 户注册、用户登录、商品展示、购物车以及生成订单五个模块; 该系统后台使用Java编写完成,其中还使用到了struts2技术、JDBC技术; 前台使用JSP技术来完成,其他还使用到了JavaScript技术及Jquery技术;数据 库采用Mysql;该系统使用了MVC设计模式,使得系统更健壮并更容易维护。 该系统克服传统图书销售中地域、广告宣传、人力资源不足等限制,能 很好地适应网上销售需求; 关键字:Java;Sturts2;Jquery;JSP;MySQL;网上书店 网上书店系统 I Abstract With the development of the Internet way, e-commerce development is increasingly rapid, the traditional mode of operation is no longer able to meet peoples needs, the online bookstore is slowly coming into view, the system user registration, user login, product display, shoppingvehicles, and generate orders for five modules; The system background using Java to their completion, which also use to the struts2 technology JDBC technology; front desk to use JSP technology to complete, others also use to the JavaScript technology and Jquery technology; database using Mysql; of the system to use the MVC design pattern, making the system morerobust and easier to maintain. The system overcomes the traditional book sales region, advertising, human resources, constraints, and well adapted to the demand for online sales; Key word: Java;Struts2;JSP;MySql;Jquery;online bookstore; 目录 1 绪论.1 1.1 研究背景.1 1.2 研究意义.1 1.3 主要技术.1 2 系统需求分析.2 2.1 功能需求.2 2.2 性能需求.2 2.3 其它需求.2 3 数据库设计及表关系.3 3.1 数据库设计.3 3.2 表间关系.6 4 系统功能模块.7 5 系统模块详细设计.8 5.1 用户登录模块.8 5.2 用户注册模块.10 5.2.1 填写基本信息.10 5.2.2 邮箱验证.15 5.2.3 注册成功.16 5.3 商品展示模块.16 5.3.1 商品分类.17 5.3.2 商品显示页面.19 5.3.3 编辑推荐.22 5.3.4 热销图书.22 5.3.5 最新上架图书.23 5.3.6 新书热卖榜.24 5.4 购物车模块.25 5.4.1 商品的添加.25 5.4.2 商品数量变更.26 5.4.3 商品的删除与恢复.26 5.5订单模块.28 5.5.1 确认订单.28 5.5.2 填写送货地址.29 5.5.3 生成订单.30 课程设计总结.33 参考文献.34 致 谢.35 0 1 绪论绪论 1.1 研究背景 随着因特网的发展,电子商务的发展也越来越迅速,使得传统的经营模 式和经营理念发生巨大的变化。电子商务创造了巨大的效益和机会,在市场 上发挥最佳的作用。电子商务的发展,不仅有力地推动 Internet 的发展,对社 会的进步和经济的变革产生深远影响,最重要的,它本身的发展和成熟为我 们提供了许许多多的机会。 1.2 研究意义 网上书店具有全面的图书查询信息功能,齐全的图书品种,方便快捷的 配送服务,低廉的销售价格,直接准确的数据积累,灵活多样的宣传营销平 台,先进的互联网技术,完善的售后服务等优势,网上书店将走出内外环境 制约的阶段,迎来快速发展的美好前景。 1.3 主要技术 CoreJava 技术为主要技术,编写 JavaBean 对象及接口的实现等操作; JDBC 技术主要实现数据库的连接以及对数据库中的数据的操作; Struts2 技术主要用来控制操作,来实现对数据的操作与实现; JSP 技术用来显示页面,将所需要的东西显示出来; JavaScript 技术,脚本语言,用来实现页面某些控件的操作; Jqurey 技术与 JavaScript 技术相结合,并通过 Ajax 来实现页面局部刷新; MySQL 数据库技术,用来存储系统所需的技术; 备注:该系统使用的是MVC模式来编写,其中Model 主要使用CoreJava 来实 现,View主要使用JSP技术来实现,Controller主要使用Struts2来实现; 网上书店系统 1 2 系统需求分析 2.1 功能需求 用户可以浏览书目信息; 用户可以通过注册成为会员; 用户可以通过注册帐号登录; 用户可以购买商品,将所需商品放入购物车; 用户可以向系统下订单 2.2 性能需求 系统可以对图书的种类进行统计; 系统界面设计友好,操作方便、灵活; 系统维护简单,具有高可靠性和冗错能力; 2.3 其它需求 对系统重要数据进行加密处理,例如:密码; 用户输入错误数据都有相应的提示信息,具有较好的容错性; 用户封闭性较好,用户基本上在提示信息下输入数据; 此系统可以运行于 windows xp,windows server 2000/2003,windows vista 操作系统;对计算机的硬件配置没有太高要求,现在的个人电脑完 全可以满足; 此系统不需要使用太多的资金,只需要有少量资金即可,时间上也不需花 费太多的时间,既省时又省力; 界面设计充分考虑浏览用户的习惯,图书信息浏览、会员注册登录、购书 等功能操作方便。而且所有网页设计清新、简洁、合理,不会让用户感到 视觉疲劳。可操作性很强; 网上书店系统 2 3 数据库设计及表关系 3.1 数据库设计 表 1 用户信息表(d_user) 编号字段名称数据结构(字段长度) 可否为空备注说明 1 2 3 4 5 6 7 8 id email nickname user_integral email_verify email_verify_code last_login_time last_login_ip int(12) varchar(50) varchar(50) int(12) char(3) varchar(50) bigint varchar(15) 否 否 否 是 是 是 是 是 主键,自加 1 用户名(邮件) 昵称 用户级别 邮箱确认 邮箱验证码 最后登录时间 最后登录 IP 表 2 产品信息表(d_product) 编号字段名称数据结构(字段长度) 可否为空备注说明 1 2 3 4 5 6 7 8 9 id product_name description add_time fixed_price dang_price keywords has_deleted product_pic int(12) varchar(50) varchar(50) bigint double double varchar(50) varchar(50) varchar(50) 否 否 否 是 否 否 是 是 是 主键,自加 1 产品名称 产品描述 添加时间 定价 优惠价 关键字 是否删除 图片 网上书店系统 3 表 3 类别信息表(d_category) 编号字段名称数据结构(字段长度) 可否为空备注说明 1 2 3 4 5 6 id turn en_name name description parent_id int(12) int(10) varchar(200) varchar(200) varchar(200) int(12) 否 否 是 是 是 是 主键,自加 1 类别 英文名称 中文名称 描述 父类 id 表 4 类别和产品关系表(d_category_product) 编号字段名称数据结构(字段长度) 可否为空备注说明 1 2 3 id product_id cat_id int(12) int(10) int(10) 否 否 否 主键,自加 1 产品 id 类别 id 表 5 产品信息表(d_product) 编号字段名称数据结构(字段长度) 可否为空备注说明 1 2 3 4 5 6 7 8 9 10 11 12 id author publishing publish_time word_number which_edtion total_page Print_time Print_number isbn author_summary catalogue int(12) varchar(200) varchar(200) bigint double double varchar(50) int(20) varchar(50) varchar(50) text text 否 否 否 否 是 是 是 是 是 是 否 否 主键,自加 1 作者 出版社 出版时间 字数 编辑 总页数 出版次数 修改次数 出版编号 作者简介 内容简介 网上书店系统 4 表 6 产品信息表(d_order) 编号字段名称数据结构(字段长度) 可否为空备注说明 1 2 3 4 5 6 7 8 9 10 11 id user_id status order_time order_desc total_price receive_name full_address postal_code mobile phone int(12) int(12) int(12) bigint(12) varchar(200) double varchar(200) varchar(200) varchar(50) varchar(50) varchar(50) 否 否 否 否 是 否 否 否 是 否 否 主键,自加 1 用户 id 订单状态 订单时间 订单描述 总价格 收件人名称 地址 邮编 电话 手机 表 7 订单明细表(d_item) 编号字段名称数据结构(字段长度) 可否为空备注说明 1 2 3 4 5 6 7 id order_id product_id product_name dang_price product_num amount int(12) int(12) int(12) varchar(100) double int(10) double 否 否 否 否 否 否 否 主键,自加 1 订单好 商品编号 商品名称 价格 数量 总价 表 8 用户收货地址(d_receive_address) 编号字段名称数据结构(字段长度) 可否为空备注说明 1 2 3 4 5 6 id user_id receive_name full_address postal_code mobile int(12) int(12) varchar(100) varchar(100) varchar(100) varchar(100) 否 否 否 否 否 否 主键,自加 1 用户 id 接受人 地址 邮编 电话 网上书店系统 5 7phonevarchar(100)否手机 3.2 表间关系 图 1 用户表与用户收货地址表间关系 图 2 产品信息表、类别信息表及类别产品关系表 图 3 图书信息表与商品信息表 网上书店系统 6 图 4 订单信息表与订单明细表 4 系统功能模块 网上书店系统 登录注册购物车订单商品展示 图 5 系统功能模块图 网上书店系统 7 5 系统模块详细设计 5.1 用户登录模块 用户登录模块主要实现用户登录及用户验证,情况如下图: 图 6 用户登录界面 网上书店系统 8 后台代码设计如下: public class LoginAction extends BaseAction private String email; private String password; public String execute() throws Exception String pwd = DegistUtil.md5(password);/密码加密 request.setCharacterEncoding(utf-8); UserDAO dao = new UserDAOImpl(); User user = dao.findByEmail(email);/判断是否验证过验证码 if(user!= null /判断 email 和密码是否正确 else if(user!= null user.setLast_login_ip(request.getRemoteAddr(); user.setLast_login_time(System.currentTimeMillis(); dao.updata(user); if(session.get(uuu)=null) return success; else session.remove(uuu); return cart; else if(.equals(email) request.setAttribute(login_err, 请输入 Email 地址); return fail; else request.setAttribute(login_err, Email 或密码错误); return fail; 网上书店系统 9 5.2 用户注册模块 用户注册模块分以下三个步骤: 5.2.1 填写基本信息 图 7 用户注册页面 这里使用了 ajax 技术来对用户填写信息的验证,如下图: 图 8 用户注册验证 网上书店系统 10 图 9 用户注册验证二 用户注册验证是通过前台 js 来直接验证,代码实现如下: var falg1= false; var falg2= false; var falg3= false; var falg4= false; var falg5= false; /更换图片 $(function() $(#ht).click(function() $(#imgVcode).attr(src,image.action?dt=+new Date().getTime(); ); ); /判断email是否正确 $(function() $(#txtEmail).blur(function() var reg=/w+(-+.w+)*w+(-.w+)*.w+(-.w+)*$/; if(!reg.test($(#txtEmail).val() $(#emailinfo).html(email不能为空 或格式不正确); falg2 = false; else 网上书店系统 11 $.post( email.action, email:$(#txtEmail).val(), function(data) /根据服务器返回结果,显示提示信息 if(data.falg) $(#emailinfo).html(); falg2 = true; else $(#emailinfo).html(email 已经被占用!); falg2 = false; ); ); ); /判断验证码是否正确 $(function() $(#txtVerifyCode).blur(function() /发送ajax请求 $.post( valid.action, code:$(#txtVerifyCode).val(), function(data) /根据服务器返回结果,显示提示信息 if(data.flag) $(#numberinfo).html(); falg1=true; else $(#numberinfo).html(验 网上书店系统 12 证码错误!); falg1=false; ); ); ); /判断密码格式是否正确 $(function() $(#txtPassword).blur(function() var reg=/0-9a-zA-Z6,20$/; if(!reg.test($(#txtPassword).val()|$(#txtPassword).val().length=0) $(#passwordinfo).html(密码只能为 字母和数字); falg3=false; else $(#passwordinfo).html(); falg3=true; ); ); /判断昵称是否正确 $(function() $(#txtNickName).blur(function() var reg=/0-9a-zA-Zu4e00-u9fa51,20$/; if(!reg.test($(#txtNickName).val()|$(#txtNickName).val().length =0) $(#name_info).html(昵称格式 不正确!); falg4=false; else $(#name_info).html(); 网上书店系统 13 falg4=true; ); ); /判断密码是否一致 $(function() $(#txtRepeatPass).blur(function() if(!($(#txtRepeatPass).val()=$(#txtPassword).val()|$(#txtRepeatPass).val().length=0) $(#password1info).html(俩次密码必须相同); falg5=false; else $(#password1info).html(); falg5=true; ); ); /判断表单是否符合提交要求 $(function() $(#btnClientRegister).click(function() $(#txtNickName).blur(); $(#txtRepeatPass).blur(); $(#txtPassword).blur(); $(#txtVerifyCode).blur(); $(#txtEmail).blur(); var flag = falg3 return flag; ); ); 网上书店系统 14 5.2.2 邮箱验证 图 10 注册邮箱验证 邮箱验证,用户登录邮箱收取验证码(该功能没有实现) ; 验证码由系统随机生成,输入验证码,点击完成,进入下一步, 用户注册后台实现代码如下: public class RegistAction extends BaseAction private User user; public String execute() throws Exception String pwd = DegistUtil.md5(user.getPassword();/调用密码加密方法 ,加密密码 user.setPassword(pwd); user.setEmail_verify(false); user.setUser_integral(100); user.setLast_login_ip(request.getRemoteAddr(); user.setLast_login_time(System.currentTimeMillis();/生成Email_verify_code方法 String Email_verify_code = VerifyCodeUtil.getVerifyCode(); user.setEmail_verify_code(Email_verify_code); UserDAO dao = new UserDAOImpl(); dao.save(user);/将生成的Email验证码,发送邮件 String emailCode = Email_verify_code +-+user.getId(); session.put(emailCode, emailCode); return save; 网上书店系统 15 5.2.3 注册成功 图 11 注册成功提示页面 注册成功,点击我的书友会跳转到登录页面进行登录;点击击浏览并选购商 品进入商品页面 5.3 商品展示模块 商品展示页面分为多个模块:商品分类、商品显示、编辑推荐、新书热卖、 热销图书、最新上架图书五个小模块,主要实现商品的展示和购买等功能; 网上书店系统 16 5.3.1 商品分类 图 12 商品分类模块 商品分类模块:通过对商品类别表的操作来显示商品类别,点击商品类别; 例如:小说,该处使用了商品统计,计算商品个数; 图 13 商品分类二 网上书店系统 17 商品分类后台实现代码如下: public class CategoryAction private List cats; public String execute() throws SQLException CategoryDAO dao = new CategoryDAOImpl(); /获得全部数据集合 Listlist = dao.faindAll(); /获得父类集合 ParentId1 cats = findByParentId(list,1); for(Category c:cats) /找到子类的集合并放到对应的父类集合中 Listcgs = findByParentId(list, c.getId(); c.setCgs(cgs); return categorys; private List findByParentId(List list, int id) Listcgs = new ArrayList(); for(Category cat:list) if(cat.getParent_id()=id) cgs.add(cat); return cgs; 网上书店系统 18 5.3.2 商品显示页面 图 14 商品显示 图 15 商品购买中。 。 。 。 图 16 商品购买成功 网上书店系统 19 商品分页显示实现代码如下: public class Book_listAction private int c1;/父类 ID private int c2; /子类 ID private int booknum; /书的总数量 private Listcats;/左侧集合 private Listbooks;/中间书的集合 private int maxPage; private int page=1; /默认从第一页显示 private int size =4; /每页显示几本书 public String execute() throws SQLException CategoryDAO dao = new CategoryDAOImpl(); cats = dao.findByparent_id(c1); /循环获得 book 的总数量 int pnum=0; for(Category cg:cats) booknum +=cg.getPnum(); /获得 pnum if(cg.getId()=c2) pnum +=cg.getPnum(); int begin = (page -1)*size; BookDAO bookdao = new BookDAOImpl(); books=bookdao.fianById(c2, begin, size); /获得最大 maxPage 数 if(pnum = 0) maxPage = 1; else if(pnum%size=0) maxPage = pnum/size; 网上书店系统 20 else maxPage = pnum/size+1; return book; 商品购买提示通过前台技术实现,代码如下: $(function() $(.buybook).click(function() var $a = $(this).next().attr(value); var $b = $(this).siblings(#cartinfo); var $c = $(this).children(); $c.attr(src,./images/buttom_goumai_click.gif); $b.html(); $b.html(正在购买.).fadeTo(slow,0.66); $.post( ./cart/buy.action, id:$a, function(data) /根据服务器返回结果,显示提示信息 if(data.flag) $b.html(购买成功!).fadeTo(slow,0.66).fadeOut(2000); $c.attr(src,./images/buttom_goumai_over.gif); else $b.html(购买失败!); ); ); ); 网上书店系统 21 5.3.3 编辑推荐 图 17 编辑推荐页面 备注:后台未实现,前台固定代码; 5.3.4 热销图书 图 18 热销图书页面 网上书店系统 22 热销图书后台代码实现如下: public class HotAction private List hots; public String execute() throws SQLException HotDAO dao = new HotDAOImpl(); hots = dao.fiadHot(); return hots; 5.3.5 最新上架图书最新上架图书 图 19 最新上架页面 最新上架图书后台代码实现如下: public class NewAction private Listnews; public String execute() throws SQLException HotDAO dao = new HotDAOImpl(); news = dao.findNew(); return news; 网上书店系统 23 5.3.6 新书热卖榜 图 20 新书热卖版 后台代码实现如下: public class NewHotAction privateListnewHotBooks; public String execute() throws SQLException HotDAO dao = new HotDAOImpl(); newHotBooks = dao.findNewHot(); return newHot; 网上书店系统 24 5.4 购物车模块 购物车模块主要实现了对商品的增、删、改、恢复等功能 图 21 购物车首页 5.4.1 商品的添加 图 22 商品添加前 图 23 商品添加后 网上书店系统 25 5.4.2 商品数量变更 图 24 数量变更前 图 25 数量变更后 5.4.3 商品的删除与恢复 图 26 商品的删除 图 27 商品的恢复 网上书店系统 26 购物车操作后台实现代码如下: public class BuyAction private int id; private boolean flag; public String execute() throws SQLException try Thread.sleep(500); catch (InterruptedException e) e.printStackTrace(); CartService cart = CartFactory.getCart(CartFactory.SESSION_TYPE); cart.buy(id); flag = true; return buys; public class DelAction private int id ; private int qty; public String execute() throws SQLException CartService cart = CartFactory.getCart(CartFactory.SESSION_TYPE); cart.delete(id); return del; public String recovery() throws SQLException CartService cart = CartFactory.getCart(CartFactory.SESSION_TYPE); cart.recovery(id); return recovery; public String update() throws SQLException/修改action 网上书店系统 27 CartService cart = CartFactory.getCart(CartFactory.SESSION_TYPE); cart.update(id, qty); return update; 5.5订单模块 订单模块主要实现生成订单以及订单信息的填写,主要分为以下三步: 5.5.1 确认订单 图 28 确认订单 订单显示实现后台代码如下: public class OrderinfoAction private Listitems3; private double sum; public String execute() throws SQLException CartService cart = CartFactory.getCart(CartFactory.SESSION_TYPE); items3 = cart.getItems(false); sum = cart.totaldang_price(); return order; 网上书店系统 28 5.5.2 填写送货地址 图 29 填写用户地址 表单验证,使用前台进行判断,代码如同注册表单验证; 地址的选择后台实现代码如下: public class SelectAction private Address select; private int id; public String execute() throws SQLException AddressDAO dao = new AddressDAOImpl(); select = dao.findById(id); return select; 网上书店系统 29 5.5.3 生成订单 图 30 订单生成成功 订单生成后台实现代码如下: public class OrderokAction private String receiveName; private String fullAddress; private String postalCode; private String phone; private String mobile; private int order_id; private int user_id; private double DangSum; public String execute() throws SQLException /在 d_order 表插入订单表,并且获得订单 id Order order = new Order(); order.setReceive_name(receiveName); order.setFull_address(fullAddress); order.setPostal_code(postalCode); order.setPhone(phone); order.setMobile(mobile); AddressDAO dao = new AddressDAOImpl(); 网上书店系统 30 order_id = dao.Insert(order); /d_item 表中插入购买物品信息 CartService cart = CartFactory.getCart(CartFactory.SESSION_TYPE); List items = cart.getItems(false); Iterator i = items.iterator(); while(i.hasNext() CartItem c = i.next(); double sum = c.getQty()*c.getProduct().getDang_price(); DangSum +=sum; Item item = new Item(); item.setProduct_id(c.getProduct().getId();/product_id item.setOrder_id(order_id); item.setProduct_name(c.getProduct
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025重庆大剧院管理有限公司招聘1人笔试考试备考题库及答案解析
- 2025贵州水投水库运营管理仁怀有限公司招聘1人笔试考试参考题库及答案解析
- 2026广西钦州市教育系统“钦聚英才”专场集中招聘急需紧缺人才和硕士研究生骨干教师172人考试笔试备考题库及答案解析
- 2025湖南人才市场有限公司公开选聘笔试考试备考试题及答案解析
- 2025福建福州市仓山区国有投资发展集团有限公司招聘笔试考试备考试题及答案解析
- 2025年河北张家口怀来技师学院公开选聘高技能人才1名笔试考试参考试题及答案解析
- 2025四川绵阳市江油星乙农业投资集团有限公司招聘26人考试笔试备考题库及答案解析
- 《JBT10399-2004 离网型风力发电机组风轮叶片》(2026年)实施指南
- 《JBT9752.1-2005 涡轮增压器第 1 部分:一般技术条件》(2026年)实施指南
- 瘿病甲状腺功能亢进症健康教育与康复指导
- 肝癌TACE术后术后深静脉血栓预防方案
- 2025广西公需科目考试题库和答案(覆盖99%考题)广西一区两地一园一通道+人工智能时代的机遇
- UL498标准中文版-2019插头插座UL标准中文版
- 橡胶的加工工艺课件
- DCC网销能力提升培训
- 神经病理性疼痛诊疗专家共识解读
- 广告制作常用材料专题培训课件
- 《我是运动小健将》课件
- 170位真实有效投资人邮箱
- 家禽屠宰建设项目可行性研究报告
- 上交所董秘考试题库及答案【全部】
评论
0/150
提交评论