您好,欢迎访问三七文档
WEB高级程序设计大作业报告课题名称:网上书城系统姓名:徐松学号:1205110417班级:软件工程1201院系:数学与计算机学院日期:2015.12.07任课教师:丁月华1程序的运行环境、安装步骤(1)运行环境操作系统:WindowsXP以上版本。服务器软件:Tomcat6.0以上版本。浏览器:IE、FireFox、GoogleChrome。(3)程序部署与安装步骤:1打开MyEcliipse创建Web项目,名称为goods;2复制“\itcastgoods\毕设\项目源代码”路径下的src和WebRoot目录,然后在MyEclipse中选中创建的goods项目,粘贴!3把goods项目发布到Tomcat上,并启动tomcat。4打开浏览器,访问:程序功能说明:2.1系统功能模块概述和分析《网上书城系统》模型是典型的网上购物实践中最为普遍的电子商务企业对客户(B2C)模式,主要包括会员注册、订单管理、购物车、搜索、支付等基本功能。此外,本系统也将实现在线图书销售系统的后端管理,包括图书的添加、订单的处理等功能。本系统完全基于JSP技术,在系统的设计与开发过程中严格遵守软件工程的规范,运用软件设计模式,从而减少系统模块间的偶合,力求做到系统的稳定性、可重用性和可扩充性。《网上书城系统》主要功能如下:后台(管理员管理)部分:①管理员:管理员登录;②分类管理:查看所有分类、添加1级分类、添加2级分类、修改1级分类、修改2级分类、删除1级分类、删除2级分类;③图书管理:按分类搜索图书、高级搜索图书、添加新图书、查看图书详细信息、编辑图书、删除图书;④订单管理:按状态搜索订单、查看订单详细信息、取消订单、发货;2.2系统功能模块设计根据系统功能分析,可以画出系统的功能模块图。后台管理员功能图:3程序开发平台(1)代码行数:5000+(2)开发环境:windows7、MySQL数据库、MyEclipse10、tomca7.04程序详细设计4.1数据库分析信息系统的主要任务是通过大量数据获得管理所需要的信息,这就要求系统本身能够存储和管理大量的数据,而这一功能的实现必须借助大型数据库系统。本系统的开发选择MySQL作为后台数据库开发工具。根据数据流程分析,绘制ITCAST网上书城的全局E-R模型如图所示。根据设计规划的主要实体有:用户、图书分类、图书、购物车、订单、管理员。各个实体具体的描述属性图如下(实体属性在下图中并没有全部给出,因为属性过多的原因):1.用户实体2.图书分类实体3.图书实体4.购物车实体购物车其实是购物项的集合!即多个购物项构成了购物车。5.订单实体订单其实是订单项的集合!即多个订单项构成了订单。1.数据库表设计数据库表设计主要是把概念结构设计时设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。它包括数据项、记录及记录间的联系、安全性和一致性约束等等。导出的逻辑结构是否与概念模式一致,从功能和性能上是否满足用户的要求,要进行模式评价。本系统数据库表如下:(1)t_user字段名称数据类型主键是否空说明uidchar(32)YN主键loginnamevarchar(50)NN登录名loginpassvarchar(50)NN登录密码emailvarchar(50)NN邮箱地址statusbooleanNN是否激活activationCodechar(64)NN激活码(唯一)(2)t_category字段名称数据类型主键是否空说明cidchar(32)YN主键cnamevarchar(50)NN分类名称pidchar(32)NY父分类IDdescvarchar(100)NY分类描述orderByintNY序号,用来排序(3)t_book字段名称数据类型主键是否空说明bidchar(32)YN主键bnamevarchar(200)NN书图名称authorvarchar(50)NY作者pricedecimal(8,2)NY定价currPricedecimal(8,2)NY当前价discountdecimal(3,1)NY折扣pressvarchar(100)NY出版社publishtimechar(10)NY出版时间editionintNY版次pageNumintNY页数wordNumintNY字数printtimechar(10)NY印刷时间booksizeintNY开本papervarchar(50)NY纸质cidchar(32)NY所属分类IDimage_wvarchar(100)NY大图路径image_bvarchar(100)NY小图路径orderByintNY序号,用来排序(4)t_cartitem字段名称数据类型主键是否空说明cartItemIdchar(32)YN主键quantityintYN数量bidchar(32)YN图书IDuidchar(32)YN用户IDorderyByintYN序号,用来排序(5)t_order字段名称数据类型主键是否空说明oidchar(32)YN主键ordertimechar(19)YN下单时间totaldecimal(10,2)YN合计金额statusintYN订单状态addressvarchar(1000)YN收货地址uidchar(32)YN用户ID(6)t_orderitem字段名称数据类型主键是否空说明orderItemIdchar(32)YN主键quantityintYN数量subtotaldecimal(8,2)YN小计bidchar(32)YN图书IDbnamevarchar(200)YN图书名称currPricedecimal(8,2)YN图书当前价image_bvarchar(100)YN图书小图路径oidchar(32)YN所属订单ID(7)t_admin字段名称数据类型主键是否空说明adminIdchar(32)YN主键adminnamevarchar(50)YN管理员名称adminpwdvarchar(50)YN管理员密码4.2关键代码说明:/***登录功能*@paramreq*@paramresp*@return*@throwsServletException*@throwsIOException*/publicStringlogin(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{/**1.封装表单数据到User*2.校验表单数据*3.使用service查询,得到User*4.查看用户是否存在,如果不存在:**保存错误信息:用户名或密码错误**保存用户数据:为了回显**转发到login.jsp*5.如果存在,查看状态,如果状态为false:**保存错误信息:您没有激活**保存表单数据:为了回显**转发到login.jsp*6.登录成功:**保存当前查询出的user到session中**保存当前用户的名称到cookie中,注意中文需要编码处理。*//**1.封装表单数据到user*/UserformUser=CommonUtils.toBean(req.getParameterMap(),User.class);/**2.校验*/MapString,Stringerrors=validateLogin(formUser,req.getSession());if(errors.size()0){req.setAttribute(form,formUser);req.setAttribute(errors,errors);returnf:/jsps/user/login.jsp;}/**3.调用userService#login()方法*/Useruser=userService.login(formUser);/**4.开始判断*/if(user==null){req.setAttribute(msg,用户名或密码错误!);req.setAttribute(user,formUser);returnf:/jsps/user/login.jsp;}else{if(!user.isStatus()){req.setAttribute(msg,您还没有激活!);req.setAttribute(user,formUser);returnf:/jsps/user/login.jsp;}else{//保存用户到sessionreq.getSession().setAttribute(sessionUser,user);//获取用户名保存到cookie中Stringloginname=user.getLoginname();loginname=URLEncoder.encode(loginname,utf-8);Cookiecookie=newCookie(loginname,loginname);cookie.setMaxAge(60*60*24*10);//保存10天resp.addCookie(cookie);returnr:/index.jsp;//重定向到主页}}}/***登录功能*@paramreq*@paramresp*@return*@throwsServletException*@throwsIOException*/publicStringlogin(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{/**1.封装表单数据到User*2.校验表单数据*3.使用service查询,得到User*4.查看用户是否存在,如果不存在:**保存错误信息:用户名或密码错误**保存用户数据:为了回显**转发到login.jsp*5.如果存在,查看状态,如果状态为false:**保存错误信息:您没有激活**保存表单数据:为了回显**转发到login.jsp*6.登录成功:**保存当前查询出的user到session中**保存当前用户的名称到cookie中,注意中文需要编码处理。*//**1.封装表单数据到user*/UserformUser=CommonUtils.toBean(req.getParameterMap(),User.class);/**2.校验*/MapString,Stringerrors=validateLogin(formUser,req.getSession());if(errors.size()0){req.setAttribute(form,formUser);req.setAttribute(errors,errors);returnf:/jsps/user/login.jsp;}/**3.调用userService#login()方法*/Useruser=userService.login(formUser);/**4.开始判断*/if(user==null){req.setAttribute(msg,用户名或密码错误!);req.setAttribute(user,formUser);returnf:/jsps/user/login.jsp;}else{if(!user.isStatus()){req.setAttribute(msg,您还没有激活!);req.setAttribute(user,formUser);returnf:/jsps/user/login.jsp;}else{//保存用户到sessionreq.getSession().setAttribute(sessionUser,user);//获取用户名保存到cookie中Stringloginname=user.getLoginname();loginname=URLEncoder.encode(logi
本文标题:网上书城系统
链接地址:https://www.777doc.com/doc-3377272 .html