郑州做网站推广地,php 网站制作的意义,seo外链代发,dedecms网站地图插件摘 要
随着计算机网络技术的飞速发展和人们生活节奏的不断加快#xff0c;电子商务技术已经逐渐融入了人们的日常生活当中#xff0c;网上商城作为电子商务最普遍的一种形式#xff0c;已被大众逐渐接受。因此开发一个网上商城系统#xff0c;适合当今形势#xff0c;更加…摘 要
随着计算机网络技术的飞速发展和人们生活节奏的不断加快电子商务技术已经逐渐融入了人们的日常生活当中网上商城作为电子商务最普遍的一种形式已被大众逐渐接受。因此开发一个网上商城系统适合当今形势更加方便人们在线购物。 本网上商城系统以MVC分层思想为原则使用SSH框架进行整合开发。页面显示使用JSP和HTML数据库使用MySQL这些技术目前相对比较成熟方便系统的维护与扩展。网上商城系统前台包括了用户注册、用户登录、商品查询、商品添加到购物车、删除商品等几大功能后台管理功能则包括商品的修改、添加、删除、用户管理和订单管理等主要功能。本系统具有操作简单、页面友善、灵活性好、运行稳定等特点。 与其他使用ASPPHP语言编写的网上商城系统相比本系统使用的JSP语言更加方便快捷开发更加效率。使用SSH框架和JSP相结合的方式大大降低了系统的耦合度增强了系统的可维护性、可移植性。本系统使用了数据库连接池技术有效的防止了因连接数过大而引起系统崩溃局面的发生并且使用了基于Annotation注解的方式进行开发使网上商城系统的数据访问更加的快捷。
关键词网上购物MVCSSHMySQL
一、绪论
1.1 系统开发背景
随着网络对人们生活和工作的影响日益增加人们对网络的依赖是越来越强烈不论是个人还是企业都可以通过网络渠道来进行商品信息交流和买卖流通。网上商城由此产生慢慢进入了人们的视线当中越来越多的商家在网上建起在线商城向消费者提供一种新型的购物方式。网上商城的出现使消费者网上购物的过程变得简单、方便、快捷。网上商城是一种具有交互功能的商业信息系统它在网络上建立一个虚拟的购物商城使购物变得快捷又轻松因此网上商城近年来发展的异常迅速网上商城对人们生活的影响也会越来越大。 不可否认网上商城将是企业发展和个人生活所不可缺少的重要组成部分而且在网上商城购物会成为广大群众所能接受的最主要消费方式。
1.2 开发意义
从系统的开发背景来看开发一个网上商城系统会有以下几项优势 (1) 投资少回收快。一项针对中国中小企业的情况调查显示个人在网下启动销售公司需要大量的资金而网上商城的成本非常小。在网上筹办一家商店投资费用很小不用去租店面不用囤积货品所需资金不会很多。网上商城比同等规模的门面商铺“租金”要低得多同时租金不会因为营业面积的增加而增加商家也不用为延长营业时间而增付额外的费用。 (2) 基本不需要占压资金。传统商店的进货资金少则几千元多则数万元而网上商城则不需要积压太多的资金。 (3) 24小时营业。网上商城延长了传统商店的营业时间一天24小时、一年365天不停业经营而且不需要很多专门人员值班。 (4) 不受店面空间的限制。哪怕只是街边小店在网上却可以拥有百货大楼那么大的店面只要投资者愿意可以摆上成千上万种商品。 (5) 不受地理位置影响。不管客户距离网上商城有多远也不管顾客是国内还是国外只要客户可以上网在网上商城就可以很方便地找到并购买商品。
1.3 国内外现状
在美国、欧洲等信息化程度较高的国家网上商城发展迅速世界一流零售商如沃尔玛、梅西百货、家得宝和萨克斯等纷纷跻身于网络销售行列。而在美国的家庭中人们已经越来越习惯网上购物。网上购物已经成为美国、英国、日本等发达国家的一种消费习惯。 在我国网上购物从无到有也不过十几年时间。而在最近几年时间网上购物变得火热起来网上购物迅速成为一种购物时尚。目前国内比较大型的网上购物商城如淘宝、京东、唯品会等发展都是非常迅速而随着国内计算机信息技术发展网上购物会更加快速的发展起来为消费者和商家都提供更加广阔的销售平台。因此开发一个网上商城系统非常符合当今社会的发展趋势。
1.4 本系统设计的内容
本设计主要通过对现在网上商城发展形势进行分析对开发工具进行简介对系统的可行性进行分析、系统需求分析然后进行系统的总体设计设计数据库中表的关系和表结构最后完成系统的总体实现并对系统进行测试从而完成整个系统。
1.5 设计的步骤
第一章绪论主要介绍系统的开发背景、研究意义、国内外现状及设计的内容。 第二章开发技术主要介绍了开发系统使用的技术及使用的工具。 第三章系统分析主要包括系统的可行性分析系统的需求分析。 第四章系统设计主要对系统功能模块、工作流程和各模块设计进行介绍。 第五章数据库设计主要介绍系统所需的数据表信息及表之间联系。 第六章系统实现主要介绍了各个模块的实现及关键代码。 第七章系统测试对系统进行压力测试获得测试结果。
二、系统开发技术
2.1 动态网页技术JSP
JSPJava Server Pages是由Sun Microsystems公司已经被Oracle收购倡导、许多公司参与建立的一种动态网页技术标准。它在传统的网页HTML文件中插入Java程序段和JSP标记从而形成JSP文件。JSP技术相比其他技术有以下优势 (1) 仅编写一次就可以在其他任何环境中运行。除了系统之外代码不需要做任何更改。 (2) 系统具有多平台支持。JSP技术可以在众多平台上的环境中开发在任意的环境中进行系统部署和扩展。 (3) 功能强大的开发工具支持。已经具有很多优秀的开发工具支持的JSP其中许多都可以免费得到并且许多工具可以顺利运行于多种平台下。
2.2 框架SSH
SSH是StrutsHibernateSpring的集成框架SSH框架的特点有以下几点 (1) Struts降低了系统的耦合度使系统的逻辑结构更加清晰。 (2) Hibernate是一种开源的对象关系映射框架它对JDBC进行了轻量级的对象封装使系统操纵数据库更加的方便。 (3) Spring框架中的IOC和AOP对系统进行最大程度解耦合使系统的各层之间的耦合度减小极大地提高了系统开发效率。 系统是集成SSH框架的它的层次分别为表示层、业务逻辑层和数据持久层。表示层采用JSPStruts作为系统的整体基础架构SSH框架各层次关系如图2-1所示。
图2-1 SSH框架层次图
2.3 系统开发工具
系统主要开发工具如下 (1) MyEclipse它是一个十分优秀的用于开发Java的Eclipse插件集合它的功能丰富并且完全支持JSP、HTML、Struts、Spring、CSS、JS、SQL 、Hibernate它的9.0版本已经支持了JavaEE6因此选用MyEclipse9.0进行开发非常的合适。 (2) Tomcat它是一种具有运行时占用系统资源小扩展性好支持负载平衡等功能优点的轻量级应用服务器。它的7.0版本实现了对JSP2.2的支持而且增加了Web应用内存溢出侦测和预防功能因此选用Tomcat7.0作为系统服务器。 (3) MySQL它是一个关系型数据库管理系统将数据保存到不同的表中提高了访问速度并提高了灵活性。MySQL数据库速度快、体积小、移植性能好而且它是开源的选用MySQL数据库对系统的各方面都有很大好处。MySQL5.7版本提高了MySQL的性能、可用性、可扩展性因此选用MySQL5.7进行系统的数据库管理。
2.4 系统配置过程
系统配置详细过程 (1) 在MyEclipse中配置安装好的的Java开发包和Tomcat服务器 (2) 安装MySQL5.7设置账号密码用于数据库连接然后安装Navicat for MySQL使得数据库可以在图形页面下进行操作 (3) 在MyEclipse中新建Web Project项目项目名为webShopping (4) 导入Struts2包Spring包Hibernate包其中Struts2的配置文件为Struts.xmlSpring的配置文件为bean.xml使用bean.xml文件进行数据库连接池的配置 (5) 导入外部的MySQL驱动包用于数据库连接。 2.5 配置关键性问题的解决 上述配置正确后仅仅可以成功连接所以还需要解决一些关键问题才能更好的运行程序。
2.5.1 系统性能调整
在对系统性能进行调整后才能更加快速稳定运行系统。主要内容如下 (1) 禁止Tomcat的自动重载 为了节约开发时间在开发阶段Tomcat容器提供自动重载功能方便在修改Java代码后不需要重新启动服务。但是在生产环境下面却占用了大量开销因为进行了完全没有必要的重新载入操作所以带来了很不好的性能影响。同时在部分类载入部分类载入的时候也可能带来各种难以处理的冲突。因此在J2EE的生产环境下关闭自动载入功能可以得到更好的性能。 (2) 控制HttpSession 在默认情况下不要在JSP页面中创建HttpSessions对象JSP页面默认会自动创建HttpSessions如果JSP页面中不需要HttpSessions为了节省一些性能使用下面的页面指令避免自动创建HttpSessions对象 % page session“false”%。
2.5.2 数据库编码
为了处理乱码数据库应和页面统一使用UTF-8编码处理。在使用Navicat新建数据库时使用的字符集一项选择utf8 – UTF-8 Unicode。 在进行数据库连接时需要使用参数characterEncoding参数值为UTF-8例如连接的数据库为WebShopping那么在配置数据库连接时使用的URL应该为 jdbc:mysql://localhost:3306/webShopping?useUnicodetruecharacterEncodingUTF-8。
2.5.3 页面字符集
在每个JSP页面中都要声明使用UTF-8这一字符集在每个JSP页面的最上都要加上这一句% page language“java” contentType“text/html;charsetUTF-8”%这样才能够保证每个JSP页面中的中文显示正常不出现乱码。
三、系统分析
3.1 可行性分析
开发任何一个基于计算机的系统都会受到时间和资源上的限制。因此在接受项目之前必须根据客户可能提供的时间和资源条件进行可行性研究。这样就可以避免人力、物力、财力上的浪费。项目风险越大开发高质量软件的可行性就越小。
3.1.1 技术可行性
硬件、软件要求不高目前市场上的一般计算机软硬件都能满足系统开发要求。运用的编程软件主要有MyEclipse9.0使用JSP和SSH框架技术数据库采用MySQL。 (1) 当前JSP是一种应用广泛的技术实现了Html和Java的集成SSH框架是Struts Hibernate Spring的集成框架是目前流行的一种Web应用程序开源框架。 (2) 用JSP开发的Web应用是跨平台的既可以在Linux下运行也可以在其他操作系统上运行。 (3) 维护工作方便一般具有一定软件开发经验的人员都可以在短时间内掌握维护工作。
3.1.2 经济可行性
网上商城系统的维护由程序人员即可完成商家来进行对网上商城的订单、用户的信息来管理不必使用大量的销售人员与客户面对面的交流节约了人员工资开支的成本。而在销售业绩上网上商城并不比实体商店的销售业绩差因此在经济上是可行的。
3.1.3 可行性分析结论
经过以上对该项目进行各方面问题的分析开发人员认为此项目的实现可以满足用户对商品的需要方便用户与商家的交流减少商家实体店面的开支减少实体店铺对土地的浪费等并且在技术和经济等方面均可行确定本系统可以立项开发。
3.2 需求分析
需求分析指在建立一个新的系统时确定系统的目的、范围、定义和功能时所要做的所用工作需求分析是软件工程中的一个关键过程。需求分析阶段的任务是确定系统的功能。
3.2.1 开发意图
本系统适用于商家在网上进行商品销售实现了商家的上架下架物品修改商品信息添加删除商品用户管理功能等。极大地节省了商家对实体店铺的管理物品的展示使用图片、视频信息便可。对客户而言可以实现对商品的浏览商品价格的了解、下单、购买等功能方便了商家与客户之间的交流。
3.2.2 功能需求
在需求调查的基础上结合网上商城系统的总体目标对用户提出的需求从信息系统目标、业务功能、技术性能等方面分析最终确定可行的、合理的系统功能需求。 根据以上分析确定系统主要功能需求 (1) 登录功能用户输入用户名和密码进行登录验证。 (2) 注册功能可以查询用户名是否已经存在对注册信息进行验证。 (3) 商品浏览可以查询商品显示商品详情提供购买链接。 (4) 购物车管理欲购买商品可以增添到购物车也可以从购物车删除商品。 (5) 订单查询用户登录后可以下订单用户登录后也可以查看自己的订单。 (6) 商品种类管理管理员可以对商品种类进行添加、删除操作。 (7) 商品管理管理员可以添加商品、删除商品查看所有商品。 (8) 订单管理管理员登录后可以对订单进行管理。 (9) 用户管理管理员可以管理注册用户信息。
3.2.3 数据流图
数据流图是描述系统中数据流程的图形工具。在本系统中没有登录的用户提交注册信息、提交登录信息登录后可以购买商品、提交订单、修改个人信息。管理员可以对商品信息、订单信息、用户信息进行管理。这其中涉及到了对各个数据库的信息处理。对本系统进行分析可以得到以下几个数据流图 (1) 网上商城系统顶层数据流图如图3-3所示。
图3-3 网上商城系统顶层数据流图
(2) 网上商城系统第一层数据流图如图3-4所示。
图3-4 网上商城系统第一层数据流图
(3) 用户信息管理数据流图如图3-5所示。
图3-5 用户管理数据流图
(4) 商品管理数据流图如图3-6所示。
图3-6 商品管理数据流图
3.2.4 数据字典
数据字典是关于数据的信息的集合也就是对数据流图中包含的所有元素的定义的集合。数据字典是数据流图上所有的成分的定义和解释的文字的集合它最重要的用途是供人查询对不了解的条目的解释。 数据字典主要的组成有数据项、数据流、数据结构、数据存储、处理过程。根据对本系统的数据流图的分析本系统的数据字典的主要内容如下 (1) 关键部分数据项仅对关键数据项进行描述。关键部分数据项如表3-1所示。 数据项名 数据项描述 用户ID 用户的编号 用户名 用户登录账号 用户密码 用户登录密码 用户姓名 用户的姓名 邮寄地址 用户接收商品的地址 商品名称 商品的名称 商品种类 商品的种类 商城价格 商品在商城的售价 剩余数量 商品的剩余数量 商品图片 商品的图片地址 订单编号 订单的编号 是否付款 用户是否已经付款 是否发货 商城是否已经发货 表3-1 关键部分数据项
(2) 数据结构反映了数据之间的组合关系。本系统的主要数据结构如下所示 ① 用户信息的数据结构如下 数据结构用户 数据项说明用户的各项信息 数据项组成用户ID用户名用户姓名用户密码用户性别用户电话邮编邮寄地址电子邮件 ② 商品信息的数据结构如下 数据结构商品 数据项说明商品的各项信息 数据项组成 商品编号商品名称商品图片商品种类商品描述商品厂商商品原价商城价格商品总量剩余数量 ③ 订单信息的数据结构如下 数据结构订单 数据项说明订单的信息 数据项组成订单编号商品信息用户名用户备注提交时间总金额是否付款是否发货发货时间订单流水号 ⑤ 管理员的数据结构如下 数据结构管理员 数据项说明管理员的信息 数据项组成管理员编号管理员用户名管理员密码 ⑥ 商品种类的数据结构如下 数据结构商品种类 数据项说明商品种类的信息 数据项组成商品种类名称商品种类编号 (3) 数据流是数据结构在系统内的传输路径。本系统的数据流主要有 ① 用户登录数据流如下 数据流名称用户登录 说明用户登录输入的账号和密码 数据流来源用户信息表 数据流去向用户信息表 组成用户 平均数据量100次/每小时 高峰期流量400次/每小时商品优惠活动期间 ② 用户注册数据流如下 数据流名称用户注册 说明用户注册信息 数据流来源用户信息表 数据流去向用户信息表 组成用户 平均数据量20次/每小时 高峰期流量50次/每小时 ③ 用户信息更新数据流如下 数据流名称用户信息更新 说明用户更新个人信息 数据流来源用户信息表 数据流去向用户信息表 组成用户 平均数据量10次/每小时 高峰期流量20次/每小时商品优惠活动期间 ④ 订单提交数据流如下 数据流名称提交订单 说明用户提交订单信息 数据流来源用户信息表 数据流去向订单信息表 组成订单 平均数据量30次/每小时 高峰期流量50次/每小时商品优惠活动期间 ⑤ 添加商品数据流如下 数据流名称添加商品 说明管理员添加商品信息 数据流来源管理员信息表 数据流去向商品信息表 组成商品 平均数据量20次/每天 高峰期流量50次/每天进货种类较多时
四、系统设计
4.1 系统的功能模块设计
网上商城系统由前台管理、后台管理两部分组成。 前台管理该部分主要是用户对商品的查询等功能用户没有注册可以实现商品的查询和商品信息的查看用户注册后就可以进行添加商品到购物车、从购物车删除商品、订单提交、个人信息更新等操作。 后台管理该部分主要对商城内的一些基础数据进行有效管理包括商品管理、会员管理、订单管理等。 (1) 网上商城系统的前台系统框架图如图4-1所示。
图4-1 前台系统框架图 前台主要功能介绍 ① 搜索商品用户不用登录可以输入商品的名称来查看需要查询的商品而且可以查看商品的详细信息如生产厂商、剩余数量、介绍等。 ② 分类查询用户可以按分类来查看该分类的商品。 ③ 用户注册用户可以输入注册信息来注册用户可以检查用户名是否存在用户注册信息没有错误则可正确注册不要使用中文名称来注册。 ④ 用户登录用户输入登录名和密码进行登录如果用户名和密码错误则无法登录。 ⑤ 更新信息用户登录后可以查看个人信息并更新个人信息还可以修改密码。 ⑧ 购物车用户登录后就可以购物可以把商品加入到购物车或者把商品从购物车删除如果商品数量为0则无法加入到购物车。 ⑨ 提交订单用户把商品添加到购物车后即可提交订单订单提交后用户可以进行付款本系统为用户模拟了一个账户用于用户购物用户账户余额不足则无法付款。 ⑩ 查看订单用户可以查看自己的订单。 (2) 网上商城系统的后台系统框架图如图4-2所示。
图4-2 后台系统框架图 后台主要功能介绍 ① 商品种类管理管理登录后台后可以对商品种类进行添加、删除。添加时如果商品种类已经存在会提示添加错误。 ② 商品管理管理员对商品进行添加、删除操作如果商品已经存在添加时会提示商品已经存在。 ③ 订单管理管理员可以查询订单查看所有订单信息。 ④ 用户管理管理员可以查询用户信息管理用户信息。 ⑥ 系统管理管理员可以修改登录密码安全退出。 4.2 系统的工作流程 (1) 网上商城系统前台的工作流程如图4-3所示。
图4-3 前台工作流程图
(2) 网上商城系统后台的工作流程如图4-4所示。
图4-4 后台工作流程图 4.3 系统模块详细设计 (1) 用户注册 用户注册是用户想要购买商品所必须进行的用户注册需要填写正确的信息用户账户一旦注册就不能修改用户的其他信息可以修改。用户填写信息需要正确填写各项信息如收货地址用户下订单后用户的收货地址如果是错误的则无法正确发货的。用户注册后使用用户名和密码登录系统可以进行购物、下订单、提交留言操作。用户注册的流程图如图4-5所示。
图4-5 用户注册流程图 (2) 用户登录 用户登录时需要输入用户名和密码系统对用户输入信息进行验证如果用户输入信息错误则需要重新输入用户输入正确则可以成功登录跳转到首页显示用户常用操作例如修改密码修改信息退出等。用户如果忘记密码可以通过查找密码来重新设置密码。用户登录流程图如图4-6所示。
图4-6 用户登录流程图 (3) 用户信息修改 用户登录后可以修改个人信息修改个人信息后需要重新登录才能查看到更新之后的信息。用户登录后可以修改密码重新登录需要使用修改后的密码才能登录。用户信息修改流程图如图4-7所示。
图4-7 用户信息修改流程图 图4-8 用户修改密码流程图 (4) 用户找回密码 用户如果忘记密码可以通过输入注册时的信息来重设密码。如果输入的注册信息错误则无法重设密码只有输入正确的注册信息才能进行密码重设。用户找回密码的流程图如图4-9所示。
图4-9 用户找回密码流程图
(5) 用户查看商品 用户不需要登录就可以搜索商品查看商品详细信息。用户可以通过搜索商品名称来搜索商品或者商品分类来查看该种类的商品。用户查看商品流程图如图4-10所示。
图4-10 用户查看商品流程图
(6) 添加到购物车用户登录后可以把商品添加到购物车也可以对购物车商品进行删除。如果商品的剩余数量为0则无法把商品添加到购物车。添加到购物车流程如图4-11所示。
图4-11 添加到购物车流程图 (8) 管理商品 管理员登录后台后可以对商品进行管理添加、删除商品。添加时如果商品已经存在则无法添加。管理商品流程图如图4-13所示。
图4-13 管理商品流程图
(9) 管理商品种类 管理员登录后台后可以对商品种类进行管理添加和删除商品种类。如果添加时商品种类已经存在则无法添加。管理商品种类流程图如图4-14所示。
图4-14 管理商品种类流程图 (10) 系统管理 管理员登录后可以修改登录密码、退出系统。系统管理流程图如图4-15所示。
图4-15 系统管理流程图
五、数据库设计
5.1 数据库概念设计
数据库概念设计是根据对系统的分析、系统设计规划出系统中使用的数据库实体。描述概念模型的工具主要是E-R图。根据对本系统的分析规划出本系统所需要的实体具体有用户、商品、商品种类、管理员、订单。
5.1.1 实体属性的定义
(1) 用户实体拥有的属性有用户ID、用户名、用户密码、性别、姓名、电话、邮寄地址和电子邮箱这八个属性。用户实体属性如图5-1所示。
图5-1 用户实体属性图 (2) 商品实体拥有的属性有商品ID、商品名称、商品种类、商品图片、商品描述、商品厂商、商城价格、商品原价、总数量和剩余数量这十个属性。商品实体属性如图5-2所示。
图5-2 商品实体属性图 (3) 商品种类实体拥有的属性有商品种类和商品种类名称这两个属性。商品种类实体属性如图5-3所示。
图5-3 商品种类实体属性图 (4) 订单实体拥有的属性有订单ID、订单用户名、商品、提交时间、发货时间、总金额、是否发货和是否付款这个八个属性。订单实体属性如图5-4所示。
图5-4 订单实体属性图 (5) 管理员实体拥有的属性有管理员ID、管理员用户名和管理员密码这三个属性。管理员实体属性如图5-5所示。
图5-5 管理员实体属性图 5.2 数据库逻辑设计 (1) 用户信息表(users) 用户信息表用于记录用户ID、用户名、用户姓名、用户密码、用户性别、用户电话、商品邮寄地址和用户电子邮件等信息。用户信息表的内容如表6-1所示。 字段名 数据类型 约束条件 是否可空 默认值 注释 userId int(20) 主键 否 1 用户ID自增 username varchar(50) 否 无 用户名 password varchar(50) 否 无 用户密码 name varchar(50) 否 无 用户姓名 sex varchar(50) 否 无 用户性别 表6-1 用户信息表
(2) 商品信息表(commoditys) 商品信息表用于记录商品编号、商品种类、商品名称、图片商品描述、商品厂商商品原价格商城出售价格商品总数量和商品剩余数量等信息。商品信息表的内容如表6-2所示。 字段名 数据类型 约束条件 是否可空 默认值 注释 commodityId int(20) 主键 否 1 商品编号自增 commodityClass varchar(50) 外键 否 无 商品种类 commodityName varchar(50) 否 无 商品名称 manufacturer varchar(50) 否 无 商品厂商 commodityDepict varchar(255) 否 无 商品描述 commodityPrice double(20) 否 无 商品原价 webShopPrice double(20) 否 无 商城价格 commodityAmount int(50) 否 无 商品总量 commodityLeaveNum int(50) 否 无 剩余数量 image varchar(255) 否 无 商品图片 表6-2商品信息表
(3) 商品种类信息表(commodityclasses) 商品种类信息表用于记录商品种类的编号商品种类名称等信息。商品种类信息表的内容如表6-3所示。 表6-3商品种类信息表 字段名 数据类型 约束条件 是否可空 默认值 注释 commodityId int(20) 主键 否 1 商品种类编号自增 commodityClass varchar(50) 否 无 商品种类名称 (4) 订单信息表(orderform) 订单信息表用于记录订单的编号用户信息订单提交时间发货时间总金额买家备注买家是否付款是否发货等信息。订单信息表的内容如表6-4所示。 表6-4 订单信息表 字段名 数据类型 约束条件 是否可空 默认值 注释 orderFormId int(20) 主键 否 1 订单编号自增 username varchar(20) 外键 否 无 用户名 commodity varchar(50) 外键 否 无 商品信息 submitTime varchar(50) 否 无 提交时间 consignmentTime varchar(50) 是 无 发货时间 totalPrice varchar(50) 否 无 总金额 remark varchar(50) 是 无 用户备注 isPayoff varchar(10) 否 无 是否付款 isConsignment varchar(10) 是 无 是否发货 orderFormNum bigint(20) 否 无 订单流水号 (5) 管理员信息表(admins) 管理员信息表用于记录管理员编号管理员用户名管理员密码等信息。管理员信息表内容如表6-5所示。
字段名 数据类型 约束条件 是否可空 默认值 注释 adminId int(20) 主键 否 1 管理员编号自增 adminName varchar(255) 否 无 管理员用户名 adminPassword varchar(255) 否 无 管理员密码 表6-5管理员信息表
六、系统实现
6.1 系统主页面
系统主要使用淡色调颜色不会很刺眼不会使客户感到反感。系统页面简洁上方的导航则包括用户登录、用户注册、留言板等信息下方显示商品种类列表、上架商品、商城公告、用户登录框等信息用户可以通过左侧导航栏查询每个种类的商品也可以通过搜索来查找商品。系统主页面如图6-1所示。
图6-1 系统主页面 系统主页的商品分类需要通过请求来获取商品种类列表。 获取商品种类列表的关键代码如下
public String execute() throws Exception {Map request (Map) ActionContext.getContext().get(request);commodityClasses commodityClassService.findAllCommodityClasses();request.put(listCommodityClasses, commodityClasses); //列表信息保存到listCommodityClasses中return success; }6.2 非登录用户操作
6.2.1 用户注册
用户可通过注册成为商城会员点击用户注册打开用户注册页面用户注册包括用户名、密码、用户姓名、性别、电话、收货地址、电子邮箱等信息用户点击每个输入框时后方会提示需填入的内容或注意事项。用户注册页面如图6-2所示。
图6-2 用户注册页面 用户提交注册信息后若没有错误的信息则会提示注册成功跳转到登录页面。若用户注册信息有错误则会提示注册失败返回到注册页面用户应重新注册。 用户注册关键代码如下
public String execute() throws Exception {String username user.getUsername();User user service.findUserByName(username); //查询该用户名是否存在if(usernull){this.service.save(this.user);return success; }else{return error; }}6.2.2 用户登录
用户可以通过右侧的登录框登录也可通过上方的导航栏打开用户登录页面进行登录。用户登录页面如图6-3所示。
图6-3 用户登录页面 如果用户名和密码正确则会提示登录成功跳转到主页。如果用户名和密码不正确则会提示登录失败返回到登录页面用户需要再次登录。用户登录后可以查看购物车中商品、提交留言、查看自己的订单等。用户可以点击退出按钮退出系统。用户登录成功后页面如图6-4所示。
图6-4 用户登录成功后页面 用户登录关键代码如下
public String login(){String username user.getUsername();String passworduser.getPassword();User user service.getUserByLoginNameAndPassword(username,password);
//搜索是否存在该用户if(user null){ActionContext.getContext().put(message, 用户名或密码错误); return login;}else{ActionContext.getContext().getSession().put(user, user);return index;}}6.2.3 找回密码
如果用户已经注册过但是密码输入不正确或者忘记密码可以通过输入正确的注册信息来重新设置密码。输入找回密码信息页面如图6-5所示。
图6-5 输入找回密码信息页面 用户输入正确的信息后即可进入重新设置密码页面进行秘密的重置。 找回密码关键代码如下
public String findUser(){ String username user.getUsername();String name user.getName();String sex user.getSex();String post user.getPost();String address user.getAddress();String phone user.getPhone();String email user.getEmail();User userthis.service.findUserByinfo(username, name,sex,phone, post, address, email); //查询是否有该用户信息if(usernull){ActionContext.getContext().put(findUsernull, 没有该用户信息);return findUsernull;}else{ActionContext.getContext().getSession().put(findUser, user);return findUser;}6.2.4 查看商品信息
点击商品下的详细按钮可以查看商品的详细信息在商品的详细信息中可以看到商品的名称、商品编号、商品生产厂商、价格、数量、上架时间和商品的描述这项操作用户没有登录也可以进行。商品信息页面如图6-6所示。
图6-6 商品详细信息页面 商品详细信息关键代码如下
public String findCommodityById(){int commId commodity.getCommodityId();Commodity commodity this.service.findCommodityById(commId);ActionContext.getContext().getSession().put(commodityById, commodity);return findCommodityById;}6.2.5 搜索商品
用户可以通过输入商品的部分关键字进行商品搜索搜索商品后会显示搜索到的信息如果没有相关信息会输出没有改商品信息。搜索商品信息结果页面如图6-7所示。
图6-7 搜索商品结果页面 搜索商品关键代码如下
public String findCommodityByName(){String commodityName commodity.getCommodityName();Map request (Map) ActionContext.getContext().get(request);request.put(commoditybyName,this.service.findCommodityByName(
commodityName)); //保存搜索的信息ActionContext.getContext().getSession().put(searchnameMessage,
commodityName); return findCommodityByName;}6.3 登录用户操作
6.3.1 购物车
用户只有登录后才能把商品添加到购物车。在每件商品的下方都有添加到购物车按钮点击添加就可以添加到购物车添加一次商品商品剩余数量就减少1如果商品剩余数量为0则无法添加到购物车提示商品无供货。在购物车中可以查看购物车中的物品商品的简单信息。在购物车中可以移除商品移除商品时商品剩余数量会增加1。用户可以在买家备注里输入备注信息然后点击提交订单进行订单的提交也可以点击继续购物继续浏览商品。购物车页面如图6-9所示。
图6-9 购物车页面 商品添加到购物车关键代码如下
public String execute() throws Exception {int commodityId commodity.getCommodityId();Map session (Map) ActionContext.getContext().getSession(); Commodity commoditys commodityService.findCommodityById (commodityId); //获得商品信息if(commoditys.getCommodityLeaveNum()0){ActionContext.getContext().getSession().put(comnull,商品已无货);return error;}else{ListCommodity car null; //声明一个购物车if(session.get(car) null) { //如果session中不存在购物车car new ArrayListCommodity(); //新建一个ArrayList实例
}else {car (ListCommodity)session.get(car); //取得购物车 }}commoditys.setCommodityLeaveNum(commoditys.getCommodityLeaveNum()-1);commodityService.update(commoditys);session.put(car, car);//将购物车保存在session中return success; }6.3.2 付款
用户点击提交订单按钮后用户的订单就提交到了数据库然后可以进行付款操作。用户付款时会检查用户金额如果用户金额不足会提示余额不足无法付款用户余额足够才能付款成功。如果用户没有对订单进行付款商家则不会发货。用户付款页面如图6-10所示。
图6-10 用户付款页面
6.3.3 更新个人信息
用户登录以后可以修改个人信息修改个人信息时需要输入正确的信息点击更新个人信息后即可更新个人信息但是需要用户重新登录之后才会显示更新后的信息。用户也可以修改登录密码。用户更新个人信息页面如图6-12所示。
图6-12 更新个人信息页面
修改个人信息关键代码如下
public String updateUser(){this.service.update(user); //更新用户的信息ActionContext.getContext().put(updatemessage, 您的信息已经更新);return updateUser; }6.4 后台管理
6.4.1 后台登录
可以通过主页面下方的链接打开后台管理的登录页面后台登录页面需要输入管理员账号和密码如果用户名和密码错误则不能登录只有输入正确的管理员账号和密码才能登录到后台主页面。后台登录页面如图6-13所示。
图6-13 后台登录页面
6.4.2 后台主页面
输入正确的管理员账号和密码后打开后台关键的主页面主页上主要显示此网上商城开发工具的介绍左侧有快捷功能上方有列表用于选择各个操作。点击退出即可退出后台管理页面返回登录页面。后台主页面如图6-14所示。
图6-14 后台管理主页面
6.4.3 新增商品种类
新增商品种类填写商品种类名称提交便可增加一种新的商品种类。新增商品种类页面如图6-15所示。
图6-15 新增商品种类页面
6.4.4 商品种类列表
管理员可以查看商品种类的列表。商品种类列表页面如图6-16所示。
图6-16 商品种类列表页面
6.4.5 新增商品
新增商品可以填写商品的名称、商品编号、选择商品种类、填写生产厂家、上传图片、添加商品描述、商品原价格、商城销售价格、商品总数量。新增商品页面如图6-17所示。
图6-17 新增商品页面 新增商品主要代码如下
public String addCommodity(){CommodityClass com commodityClassService.findCommodityClassByName (commodity.getCommodityClass().getCommodityClassName()); //获得商品种类信息commodity.setCommodityClass(com); //设置商品种类ListCommodity comFindname this.service.findCommodityByName (commodity.getCommodityName()); //查询该商品是否存在if(comFindname.size()0){this.service.save(this.commodity); //保存商品信息ActionContext.getContext().put(addComessage, commodity.getCommodityName() 添加成功); }else {ActionContext.getContext().put(addComessage, commodity.getCommodity Name() 已经存在请重新填写商品信息);return addCommodity;} }6.4.6 商品列表
管理员可以查看商品的列表。商品列表页面如图6-18所示。
图6-18 商品列表页面
6.4.7 订单列表
管理员可以查看订单列表显示的内容包括订单编号、用户是否已经付款、是否已经发货、总金额、可以进行订单发货操作等。订单列表页面如图6-19所示.
图6-19 订单列表页面
6.4.8 订单条件查询
输入订单的条件可以查询订单用于管理员来查询符合条件的订单信息。订单条件查询页面如图6-20所示。
图6-20 订单条件查询页面
6.4.9 用户列表
用户列表包括所有用户的信息显示的内容有用户的姓名、联系电话、住址、邮寄地址、删除用户等。用户列表页面如图6-21所示。
图6-21 用户列表页面
七、交流与联系
q:969060742 完整文档、sql、代码、程序资源