精品毕业论文基于jsp的电子商务_第1页
精品毕业论文基于jsp的电子商务_第2页
精品毕业论文基于jsp的电子商务_第3页
精品毕业论文基于jsp的电子商务_第4页
精品毕业论文基于jsp的电子商务_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I 摘 要 随着网络、通信和信息技术的发展,商业空间发展到全球规模,这使得任何 一个商业组织都必须调整自己的运营模式和产业结构,以适应新的市场发展的 需要。因此,任何一个企业要在 21 世纪生存,就必须迅速地改变传统的经营观念, 跟上当今世界发展的最新潮流,加入到电子商务大潮中。 本系统采用 B/S 三层架构,主要实现前台交易系统和后台管理系统。前台交 易系统主要包括用户管理、商品展示、书城快讯、我的订单、购物车管理,后台管 理系统主要包括用户管理、订单管理、类别管理、商品管理。系统主要采用了 MVC 软件架构思想,融入了 Struts1、JSP、Ajax、JQuery 等典型 WEB 开发相关技 术,同时采用 MySql 数据库和主流服务器 Tomcat。系统的各个模块设计合理,尤 其是业务方法利用接口理念,这样让系统很灵活,具备了良好的扩展性。 经过不断的改进和调试,系统逐渐完善,最终完成了一个标准化的电子商务 交易平台。 关键词:关键词:电子商务 JSP网上购物 II Abstract With the development of network,communication and information technology today,commercial space developments to the global scale.This makes any business group have had to adjust their operation mode and industrial structure, so as to adapt to new market development needs.Therefore, in order to survive in the 21st century, any enterprise must quickly change the traditional management idea and keep up with the latest trend in the development of the world today, joining the tide of electronic commerce. The system uses B/S three layer structure and mainly realizes the front desk trading system and background management system.Front desk trading system mainly include user management, commodity exhibition, mall news,My orders and shopping cart management.Background management system mainly include user management, order management,category management,commodities management. The system mainly adopts MVC software architecture and blends in Struts1 thought, JSP, Ajax, JQuery and some other typical WEB technologies, as well as using MySql database and the mainstream server Tomcat.Each module of the system is designed reasonablely, especially business methods using interface, so let the system have good flexible expandability. After continuous improvement and debugging,the system is improved gradually and finally become a standardized electronic business transaction platform. Key words: E-commerce Java Server Pages Online shopping III 目 录 第 1 章 引言.1 1.1 课题意义.1 1.2 国内外现状.1 第 2 章 系统开发技术和运行环境配置.3 2.1 名词解释.3 2.2 STRUST1 框架技术.4 2.2.1 Struts1 的体系结构.4 2.2.2 Struts1 的处理流程.4 2.3 B/S 三层架构.6 2.4 系统环境.6 2.4.1 开发环境6 2.4.2 系统运行环境.7 2.4.3 配置环境变量.7 2.4.4 系统测试运行.9 第 3 章 需求分析与系统设计10 3.1 目标与要求10 3.2 用户特点10 3.3 系统功能结构描述11 3.4 系统流程图13 3.5 系统页面结构.13 第 4 章 数据库的设计16 4.1 MYSQL数据库的简介.16 4.2 数据库设计要点.16 4.3 系统 E-R 关系图.16 4.4 数据表结构20 IV 第 5 章 前台模块设计与实现24 5.1 用户模块24 5.1.1 用户注册.24 5.1.2 用户登录.29 5.1.3 用户个人信息中心.30 5.1.4 用户登出.33 5.2 主页模块33 5.2.1 分类浏览.33 5.2.2 商品检索.35 5.2.3 书城快讯.37 5.3 购物车模块37 5.4 我的订单42 5.4.1 订单列表生成43 5.4.2 填写收件人地址44 5.4.3 订单确认.45 第 6 章 后台模块设计与实现47 6.1.系统后台框架设计47 6.1.1 管理员的设计.47 6.1.2 系统后台主页面设计.48 6.1.3 管理员登出50 6.2 用户管理50 6.2.1 用户查询.50 6.2.2 用户搜索.51 6.3 订单管理53 6.3.1 订单查询.53 6.3.2 购物明细表53 6.3.3 单个用户订单查询.54 6.4 商品管理54 6.4.1 商品查询.55 6.4.2 修改商品分类55 V 6.4.3 添加新商品56 6.5 类别管理58 6.5.1 类别查询.59 6.5.2 类别删除.59 6.5.3 添加新类别60 第 7 章 系统测试62 7.1 单元测试62 7.1.1 注册模块测试62 7.1.2 登录模块测试62 7.1.3 购物车模块测试62 7.1.4 分类数目统计63 7.1.5 类别添加测试63 7.1.6 添加商品测试65 7.2 集成测试66 第 8 章 总结.67 参考文献.68 致 谢.69 1 第第 1 1 章章 引言引言 1.11.1 课题意义课题意义 当今的企业,如果仍然按照传统的方式来宣传自己企业的文化和形象,则显 得十分落后,很难在当今社会市场激烈的竞争中生存。因此,很多企业通过建立 自己的网站,借助于互联网快速的信息传递来加速自身的发展。一个企业的网站 的规划和建设,自然而然也就成了众多类型的网站规划和建设的典范,我们 大学也有自己专门的网站。 作为大学中的一个信息技术系的学生,做一个电子商务网站是很有必要的。 通过做一个完整的毕业设计,可以让学生得到一个很好的锻炼,可以让学生把大 学中所学的知识理论全部在这上面运用,同时结合实践,提高动手能力,为以后 走进对应的工作岗位有着非常重要的意义。 1.21.2 国内外现状国内外现状 当今世界网络、通信和信息技术的发展,Internet 在全球迅速普及,使得商业 空间发展到全球的规模,同时也使得现代商业企业需要具有不间断地供货能力、不 断增长的客户需求和不断增长的全球竞争三大特征,这使得任何一个商业组织都必 须调整自己的经营方式和产业结构,以适应新的市场发展的需要。随之出现了日益 走入我们生活的网上购物。 伴随着 Internet 的蓬勃发展,网络购物系统作为电子商务的一种形式正以其高 效,低成本的优势,逐步成为新兴的经营模式和理念,人们已经不再满足用途信息 的浏览和发布,而是渴望着能够充分享受网络所带来的更加多的便利。网络购物正 适应了当今社会快节奏的生活,使顾客足不出户便可以方便快捷轻松的选购自己喜 欢的商品。网上购物系统作为 B2B,B2C(Business to Customer) ,即(企业对消 费者) ,C2C(Customer to Customer,即消费者对消费者)电子商务的前端商务平台, 在其商务活动全过程中起着举足轻重的作用。从长远来看,企业对消费者的电子商 务将最终在电子商务领域占据重要地位。但是由于各种因素的治愈,目前以及比较 长的一段时间内,这个层次的业务还只能占比较小的比重。它是以互联网围主要服 务提供手段,实现公众消费和提供服务,并保证与其相关的付款方式的电子化,它 是随着万维网的出现而迅速发展的,可以将其看作是一种电子化的零售。 2 当今欧美等发达国家电子商务发展迅速,先进的技术服务使得他们国家的生活 水平得到了更高层次的提升。中国目前也在赶上电子商务热潮的脚步,政府也积极 提倡并且支持电子商务技术的研发,要跟上网络时代的大潮流,电子商务的发展一 定不能停滞。一个国家电子商务的发展程度可以反映出一个国家的信息技术水平和 科技水平。我国目前正处于持续发展中,相信在不久的未来可以涌现出更多像淘宝、 京东等大型交易电子商务网站。 3 第第 2 2 章章 系统开发技术和运行环境配置系统开发技术和运行环境配置 2.12.1 名词解释名词解释 HTML: Hypertext Markup Language超文本标记语言。 CSS: Cascading Style Sheets层叠样式表,是一种标记语言,它不需要编译可 以直接由浏览器执行。 JavaScript: 一种可以控制HTML元素的网络脚本语言,也是一种在浏览器端执行 的解释性编程语言,它具有灵活性好、功能强大的特点,是因特网上最流行的 脚本语言。 Ajax: 异步JavaScript及XML(Asynchronous JavaScript And XML),是一种使用 现有标准的新方法,在浏览器与Web服务器之间使用异步数据传输(HTTP请求), 实现页面局部刷新。 JSP: Java Server Page,是SUN公司开发的一种服务器端动态页面生成技术,主 要组成部分是html元素以及少量的java代码。 Servlet: SUN公司制定的一种用于扩展web服务器功能的组件规范。 Tomcat: Servlet容器,第三方开源门户Apache公司实现了Servlet容器规范,用 于执行Servlet的服务器。 MVC: 这是一种架构模型。M表示Model层,V表示View层,C表示Controller层, Model层包括实体模型和业务操作,Controller用来控制用户的所有请求和操 作,View用来显示请求的视图。 JSTL: Java Standard Taglib Library(Java标准标签库),使得视图页面简洁化, 避免Java代码和HTML元素的交错复杂。 Jquery:是一个开源的javascript框架,功能很强大,可以使编码变得更加简洁。 JSON: 是一种轻量级的数据交换语言,一般用于客户端(浏览器)与服务器端进 行数据交换(即服务器端生成符合json语法格式的字符串,发送给服务器,然 后,客户端再将该字符串转换成javascript对象) 。 JDBC: Java Database Connectivity,Java语言访问数据库的一套接口集合。 DBCP: Database Connection Pool,数据库连接池,使用第三方提供的一些规范。 B/S: 即Browser/Server(浏览器/服务器)结构,B/S最大的优点就是可以在任何地方 进行操作而不用安装专门的软件,只要有一台能上网的电脑就能使用,客户端 4 零维护。 Struts1:一种典型的MVC框架,本系统的主要灵魂。 2.22.2 Struts1Struts1 框架技术框架技术 本系统采用了 MyEelipse 自带的 Struts1 框架设计完成,Struts1 是系统的核 心控制器。Struts1 是一个标准的 MVC 框架,Struts1 中的 MVC: 模型(Model):本质上来说在 Struts 中 Model 是一个商业逻辑类,开发者实现商 业逻辑。 视图(View):View 是由与控制器 Servlet 配合工作的一整套 JSP 定制标签库构 成,利用他们可以快速建立应用系统的界面。 控制器(Controller):前端控制器是一个 Servlet,它将客户端请求转发到相应 的后端控制器 Action 类,下面对 Struts1 的结构和工作原理进行详细的描述。 .1 Struts1Struts1 的体系结构的体系结构 Invoke Dispatch Get Forward HTTP Response HTTP Request Client ActionServlet JSP Action Model 图 2.1 Struts1 体系结构 Struts1 的几个核心组件: a 、ActionServlet(核心控制器)。 b、RequestProcessor类(处理异常的核心组件)。 c、ActionForm(接收页面中传过的数据)。 d、Action(是控制器,主要是从ActionForm中接收页面传进来的数据, 然后进行逻辑处理)。 e、ActionForward(页面跳转,跳转到jsp组件)。 f、ActionMapping(配置每个Action所对应的映射关系)。 5 .2 Struts1Struts1 的处理流程的处理流程 ActionServlet Client ActionForm Action JavaBeanJSP 8.调 JavaBean 9.HTTP 响 应 Struts-config.xml 1.HTTP 请求 2.填充 FormBean 4.调用 ActionForm 5.调 JavaBean 7.转发 HTTP 请求 图 2.2 Struts1 的处理流程 处理流程详细描述: a、ActionServlet是在web.xml中配置的一个自动启动项。当web服务器启动时, 同时实例化了ActionServlet类,ActionServlet会去初始化struts- config.xml 的配信息,并将其加载到内存中,并去实例化action-bean,action-form等对 象。 b、ActionServlet接收到来自客户端的请求时,就去检索和请求相匹配的 ActionMapping实例,如果没有找到则返回 500 错误。 c、如果找到了就检查对应的ActionForm实例是否存在,如果存在,先把该实例 相 关数据reset清空一下,然后就把用户提交的表单数据填充到ActionForm 实例中; 如果不存在,就创建一个ActionForm对象,再把用户提交的表单数据填写到 ActionForm实例中。 d、接着,再根据配置,看看是否要对表单进行验证(validate),如果需要验证,则 调用ActionForm的validate()方法对表单进行验证,如果验证没通过,则返回错 误信息。如果不需要验证,或者验证但validate方法返回null或者返回一个不包 含ActionMessage的ActionErrors对象的话,表明验证成功。 e、ActionServlet根据ActionMapping实例所包含的映射信息决定将请求发送给哪个 Action,如果对应的Action实例不存在,则创建该Action的实例,然后调用Action 6.回送 ActionForward 3.转发 HTTP 请求 6 的execute()方法。 f、执行完Action实例的execute()方法后,该方法会返回一个ActionForward对象。 g、ActionServlet再把客户端发过来的请求,转发给ActionForward对象所指向的 JSP组件。 h、ActionForward所指向的JSP组件再生成动态网页,送回给客户端。 2.32.3 B/SB/S 三层架构三层架构 三层 B/S 应用模式是为了解决两层结构中存在的问题而提出的,在三层模式中, 在浏览器和服务器之间引入了应用层的概念,将应用逻辑移到应用层实现,与传统 两层 B/S 模式相比,三层有着可伸缩性好、可管理性强、安全性高、软件重用性好 以及节省开发时间等诸多优点。三层结构的应用程序把业务逻辑独立起来,组成一 层或多层,这样就形成了浏览器界面层、中间业务逻辑层和后端数据库服务器层。 图 2.3 传统的 2 层B/S结构 图 2.4 3 层 B/S 结构 2.42.4 系统环境系统环境 .1 系统开发环境系统开发环境 操作系统:Red Had Linux9 或 WINDOWS XP 发送请求 Browser Web Server(DB 数据)数据) 响应结果 7 开发工具:MyEclipse+Tomcat+MySql 相关技术:Java+Struts1+JDBC+JSP+Ajax+JQuery+JavaScript+html+css 等 开发所需 jar 包:standard.jar,smartstruts1.1.jar,mysql-connector- java-5.1.6-bin.jar, Jstl.jar,json-lib-2.2.3-jdk15.jar,ezmorph-1.0.6.jar,commons- pool.jar,commons- logging.jar,commons-lang-2.4.jar,commons- 1.8.jar,commons-dbcp1.2.2.jar, commons-collections-3.2.1.jar,commons-collections-3.1.jar,commons- beanutils- 1.8.0.Jar .2 系统运行环境系统运行环境 系统所需要的软件环境: 开发工具:MyEclipse 6.5 或更高版本 WEB 服务器:apache-tomcat-5.5.23 或者 tomcat 6.0 数据库:MySQL5.5 虚拟机(JVM):jdk-6-linux-i586 或 jdk-6-win-i586 浏览器:FireFox 或 Internet Explorer(建议用 FireFox) 第三方 JAR 文件 .3 配置环境变量配置环境变量 (1)设置系统的环境变量 在安装 JDK 后,右击我的电脑属性高级(选项卡) 环境变量,如图 2.5 所示。 8 图 2.5 系统环境变量配置界面 在下面系统环境变量中找到 classpath 变量, 如果没有的话创建一个新的 classpath 变量,设置变量值为:“;jdk 安装目录/lib/dt.jar;jdk 安装目录 /tools.jar” ,否则,在后在原先 classpath 的值的基础上加上“;jdk 安装目录 /lib/dt.jar;jdk 安装目录/tools.jar” ,设置系统的类路径,在编译运行 Java 程 序时,如果有调用到其他类的时候,在 classpath 中寻找需要的类。 设置完 classpath 之后,再找到 path 变量,如果没有的话, 则创建一个 path 变量, 设置 path 的值为“.;jdk 安装目录/bin”,否则,在 path 原先的值的基础 上加上“;jdk 安装目录/bin”设置 path 路径,是 Java 编译时需要调用的可执行程 序(如 java,javac 等)所在的地方。 (2)配置 Tomcat Tomcat 是一个免费的开源的 Servlet 容器,它是 Apache 基金会的 Jakarta 项 目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于 有 Sun 的参与和支持,最新的 Servlet 和 JSP 规范总能在 Tomcat 中得到体现。因为 Tomcat 技术先进、性能稳定,而且免费,所以深受 Java 爱好者的喜爱并得到了部 分软件开发商的认可,成为目前比较流行的 Web 应用服务器。 将 Tomcat 解压后,进入 MyEclipse6.5,点击 Windows preferences- MyEclipseEclipse Enterprise Workbench - Servers Tomcat,如图 2.6 所示。 图 2.6 Tomcat 配置界面图 然后配置对应的 Tomcat 服务器,就拿 Tomcat 5.X 来说,点击之后, 浏览到 Tomcat 5.X 的安装路径后并设置服务器的 Enable 为可用即可,如图 2.7 所示。 9 图 2.7 配置 Tomcat 路径界面 (3)项目的部署 将项目导入 MyEclipse 之后,添加相应的 jar 包和 Liberary 后,将项目部署到 WEB 服务器上,即可访问。点击工具栏的上 布署项目图标弹出部署界面如下 图所示,选择刚刚导入的项目,并点击 ADD 在弹出的界面中选择刚刚添加的 WEB 服 务器,确认后返回到部署界面 点击 OK 完成了项目的部署,如图 2.8 所示。 图 2.8 应用部署界面 .4 系统测试运行系统测试运行 启动 Tomcat 服务器后,在浏览器的地址栏输入 http:/localhost:8080/ WebApp Name/ main/main.jsp,8080 是 Tomcat 服务器的默认端口, localhost 是 本地主机名换成 也可以访问到,webAppName 是部署的应用名字(这里我 的工程名字为 dangdang),如果端口和其他服务器或软件冲突的话,会导致 Tomcat 无法启动,可以通过修改 conf/service.xml 配置文件来修改默认端口号。如果服务 器正常启动,便可访问主页。 10 第第 3 3 章章 需求分析与系统设计需求分析与系统设计 3.13.1 目标与要求目标与要求 通用电子商务平台的设计是为了让更多的企业拥有自己的网上交易活动,扩展 他们的经营模式。作为一个商业性质的电子商务平台,系统必须满足企业的业务要 求,与企业的商业活动真正接轨,形成服务一体化。系统界面设计一定要友好,操 作安全,服务方便快捷。系统总体流程必须合理规范,无逻辑错误。数据库必须设 计合理,数据的存储一定要安全化。同时,这是一个网站,必须要考虑到服务器的 承载压力和访问速度。作为一个大学生的毕业设计,它也必须符合大学生毕业设计 的规范。 3.23.2 用户特点用户特点 本系统的主要角色主要有三种:普通用户(游客),注册会员,系统管理员。不 同的角色具有不同的权限,各角色权限如下: 普通用户:主页访问、书城快讯、图书查询、分类浏览、购买商品。 注册会员:主页访问、书城快讯、图书查询、分类浏览、购买商品、购物车结 算、基本信息修改、查看订单等功能。 系统管理员:可以进行前台所有功能操作权限,同时具备后台管理权限,如用 户管理、订单管理、商品管理、类别管理。 11 图 3.1 会员和游客角色权限图 3.33.3 系统功能结构描述系统功能结构描述 本系统主要采用 B/S 三层模式,同时利用典型的 MVC 框架 Struts1 设计完成。 系统针对不同的角色,给予他们不同的操作权限,防止角色越权限进行非法的操作。 本系统主要包括前台交易系统和后台管理系统,前台功能如下: a. 用户模块,其中包括用户注册、 登录、 登出以及修改个人基本信息。 b. 主页显示模块,其中包括分类浏览、分页查看、按照书名检索以及书城快讯 功能。 c. 购物车模块,该模块实现商品的添加、数量修改,商品删除、恢复、清 空、结算。 d. 订单模块,该模块实现订单确认、订单列表、查看订单和收件人等功能。 后台功能如下: a. 用户管理,主要实现用户列表、分页显示、用户删除、修改、添加、详 细显示以及按照用户 ID 或者邮箱进行搜索单个用户功能。 b. 订单管理,主要实现订单列表、 分页显示、 修改、 删除、 结单、订 单 购物明细、单个用户订单查询功能。 c. 商品管理,主要实现商品列表、分页显示、商品详细信息、商品添加、 删除以及分类修改、商品基本信息修改。 d. 类别管理,主要实现类别添加、删除、修改、类别子类查询等功能。 e. 管理员安全退出。 系统功能结构如图 3.2 所示。 12 图 3.2 系统功能结构图 当当网电子商务平台当当网电子商务平台 订 单 列 表 查 看 订 单 订 单 确 认 分 类 浏 览 图 书 检 索 用 户 列 表 增 删 改 查 用 户 搜 索 增 删 改 查 类 别 列 表 搜 索 类 别 删 改 查 结 单 搜 索 订 单 订 单 列 表 个 人 订 单 分 页 显 示 前台交易系统后台管理系统 用 户 模 块 用 户 管 理 购 物 车 管 理 员 类 别 管 理 商 品 管 理 订 单 管 理 订 单 模 块 商 品 展 示 消 息 列 表 消 息 详 情 会 员 登 录 信 息 修 改 会 员 登 出 用 户 注 册 商 品 刷 新 增 删 改 查 商 品 列 表 商 品 搜 索 重 新 分 类 购 物 结 算 恢 复 列 表 商 品 删 除 数 量 修 改 清 空 购 物 商 城 快 讯 管 理 员 登 出 管 理 员 登 录 13 3.43.4 系统流程图系统流程图 图 3.3 系统流程图 3.53.5 系统页面结构系统页面结构 系统主要展示主页面,其它的页面都是通过 include 指令包含到主页面中,各 页面需要加载数据都是通过其在 main.jsp 中的 div 标签想服务器发送请求。通过 css/html 的 div 标签让各页面在主页面上融合显示。主页面主要包含以下页面: message.jsp(书城热讯页面),hot.jsp(图书热销页面),new.jsp(新书上架页面), recommend.jsp(编辑推荐图书页面),category.jsp(图书分类页面)。 热销图书页面 hot.jsp 是根据卖出的书的数量来进行排序的,所以每次加载主 页面它都必须向服务器发送请求获取最新数据。利用 JQuery 请求代码如下: $(function() $(“#hot“).load(“/hot.do“); ); 14 图 3.4 主页面 main.jsp 结构 图 3.5 系统主页面视图 前台交易系统视图层介绍: 用户模块:login_form.jsp(用户登录页面) register_form.jsp(用户注册页面) verify_form.jsp(邮箱验证页面) register_ok.jsp(注册成功页面) vali.jsp(验证用户是否登入页面) tologin.jsp(提示登录页面) user_index.jsp(用户信息中心页面) 15 modify_pwd.jsp(用户密码修改页面) address_query.jsp(查询收件人页面) 主页面模块:main.jsp(主页面) book_list.jsp(图书列表显示) product.jsp(图书详细页面) searchbook_list.jsp(图书搜索结果页面) message.jsp(热讯消息列表页面) 订单模块:address_form.jsp(填写收件人地址信息页面) order_info(确认订单页面) order_ok.jsp(订单生成页面) order_list.jsp(用户订单列表页面) item_list.jsp(购物明细列表) 购物车模块:cart_list.jsp(购物车详细页面) 后台管理系统视图层介绍: 管理员模块:manager_login.jsp(管理员登录页面) index.jsp(后台管理主页面) 用户管理:user_list.jsp(用户列表页面) user_add.jsp(用户添加页面) user_detail.jsp(用户详细信息页面) user_update.jsp(用户信息修改页面) 订单管理:order_list.jsp(订单列表页面) search_user_order.jsp(单个用户订单列表页面) order_detail.jsp(订单详细信息页面) order_update.jsp(订单信息修改页面) 商品管理:book_list.jsp(图书列表页面) book_add.jsp(图书添加页面) book_detail.jsp(图书详细信息页面) book_update.jsp(图书信息修改页面) book_search.jsp(图书搜索结构页面) 类别管理:category_list.jsp(类别列表页面), category_add.jsp(类别添加页面) 16 category_detail.jsp(类别详细信息页面) category_update.jsp(类别信息修改页面) 第第 4 4 章章 数据库的设计数据库的设计 4.14.1 MySqlMySql 数据库的简介数据库的简介 MySQL 是一个小型关系型数据库管理系统,也是最受欢迎的开源 SQL 数据库管 理系统,它由 MySQL AB 开发、发布和支持。 MySQL AB 是一家基于 MySQL 开发人员 的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二 代开源公司。MySQL 是 MySQL AB 的注册商标。 MySQL 是一个快速的、多线程、多用 户和健壮的 SQL 数据库服务器。从计算机可以很好的处理大量数据以来,数据库管 理系统就在计算机处理和独立应用程序或其他部分应用程序中扮演着一个重要的角 色。 4.24.2 数据库设计要点数据库设计要点 数据是一个系统中的最终操作结果,因此数据库的设计必须合理规范。数据库 的设计是系统的开发前提,一个数据库设计的是否合理,直接关联着整个系统的开 发,一旦数据库设计出现问题,那么将会导致这个系统的开发受到严重阻碍。另外, 数据操纵的安全性也要加以控制,防止数据外泄造成严重后果。 4.34.3 系统系统 E-R 关系图关系图 系统主要设计了 d_user(用户表),d_product(产品表),d_book(图书表), d_category_product(产品类别关系表),d_category(类别表),d_order(订单表), d_item(订单项表),d_receive_address(接收人信息表),d_message(商城消息表) 9 个数据表。 17 图 4.1 系统 E-R 关系图 (1)用户表主要用来保存注册用户的信息,进行登录验证、购买物品等操作。 图 4.2 用户实体及属性 (2)图书表主要用来保存某本图书的相关信息,与产品表相关联。 用户信息表 登录时间 密码 编号 登录 IP邮箱 图书表 商品原 价 商品描述 图书名称 编号 商品图片 作者 出版社 出版日期 商品热销 价 积分 验证状态 昵称 18 图 4.3 图书实体及属性图 (3)商城消息表主要用来保存一些商城的相关消息。 图 4.4 消息实体及属性图 (4)分类产品关系表主要用来表示产品和类别之间的关系,即某项产品是属于哪 一类别的。一个类别下可以包含多种产品,一项产品只能属于一个类别。 图 4.5 分类产品关系实体及属性图 (5)订单主要用来保存用户购买的物品,其中包括了收件人的备份信息。一个订 单包含许多订单项,表示该订单中的某一项物品。 图 4.6 订单实体及属性图 (6)收货人信息表主要用来保存当前用户的收货人信息,一个用户可以为多个人 商城消息表 编号 关键字 消息内容 发布时间 产品 ID 分类产品关系表 分类 ID 编号 订单金额编号 发货状态 订单表 订单日期 订单号 邮编收货地址 收货人姓名 电话号码 手机号码 19 订购物品。 图 4.7 收货人实体及属性图 (7)分类表主要用来保存类别关系,包括一个类别的父类别以及该类别的所有子类别。 图 4.8 类别实体及属性图 (8)产品表主要用来保存某项产品的相关市场信息,比如价格、是否买完等,与 图书表一对一关联。 手机号码 电话号码 编号 收货人姓 名 收货人信息 收获地址 用户 ID 邮编 分类表 类别描述 中文分类名 英文分类名 父类 ID编号 编号 产品名称 描述 上架时间 市场价 当当价 关键字 是否下架 产品表 20 图 4.9 产品实体及属性图 (9)订单项表主要用来表示某一个订单中所购买物品的详细情况,一个订单项只 对应一张订单表。 图 4.10 订单项实体及属性图 4.44.4 数据表结构数据表结构 (1)用户表 d_user,主要包含用户编号、邮箱、密码、积分、昵称、邮箱验证状 态、邮箱验证码、最后登录时间、最后登录 IP。 表4-1 用户表(d_user) 字段名称类型约束描述 idint(12)pk 用户 ID emailvarchar(50)not null 用户邮箱 passwordvarchar(50)not null 密码 nicknamevarchar(50)not null 昵称 user_integralint(12) not null,default 0 积分 is_email_verifychar(3) 邮箱验证状态 last_login_timebigintdefault null 最后登录时间 last_login_ipvarchar(15)default null 最后登录 IP email_verify_cod e varchar(50)default null 邮箱认证码 (2)图书表(d_book),主要包含图书 ID、作者、出版社、出版时间、字数、版本、 总页数、印刷时间、国家图书统一编号、作者介绍、目录预览。 订单项 编号 订单号 商品名称 当当价 商品数目 价格总计 21 表 4-2 图书表(d_book) 字段名称类型约束描述 idint(12)PK 数据库唯一标识 ID authorvarchar(200)not null 图书作者 publishingvarchar(200)not null 出版社 publish_timebigintnot null 出版日期 which_edtionvarchar(15)default null 哪个版本 word_numbervarchar(15)default null 字数 total_pagevarchar(15)default null 页数 print_timeInt(20)defaul null 印刷时间 ISBN varchar(25)default nullISBN categorytextnot null 目录预览 author_summarytextnot null 作者简介 (3)商品表(d_product),主要包含产品 ID、产品名称、描述、上架时间、市场 价、当当价、关键字、是否下架、产品图片名称。 表4-3 商品表(d_product) 字段名称类型约束描述 idint(12)pk,not null 商品编号 prduct_namevarchar(100)not null 商品名 add_timebigint(20)defaultt nul 上架时间 fixed_pricedoublenot null 市场价 has_deletedint(1)not null 是否下架 fix_price doublenot null 当当价 keywordsvarchar(200)defaultt nul 关键字 product_picvarchar(200)default nul 商品图片名称 descriptionvarchar(100)default null 描述 (4)类别表(d_category),主要包含类别 ID、中文名称、英文名称、父类 ID、 类别描述。 表4-4 类别表(d_category) 字段名称类型约束描述 idintegerPK 类别 ID en_namevarchar(200)not null 英文名字 namevarchar(200)not null 中文名字 descriptionvarchar(200)null 产品的描述 22 parent_idint(10)not null 父类 ID (5)产品与类别关系表(d_category_product),主要包含 ID,商品编号 ID,类 别编号 ID。 表4-5 分类与产品表(d_category_product) 字段名称类型约束描述 idint(12)auto_increment /PK 数据库唯一标识 ID product_idint(10)rnot null 产品 ID cat_idint(10)not null 商品分类 ID (6)订单表(d_order),主要包含订单编号、用户编号、订单状态、订单生成时 间、订单描述、订单总价、收件人姓名、收件人地址、邮政编码、手机号码、固定 电话号码。 表4-6 订单表(d_order) 字段名称类型约束描述 idint(12)PK 订单号 user_idint(10)not null 用户 ID statusint(10)not null 发货状态 order_timebigint(20)not null 下单时间 order_descvarchar(100)not null 订单描述 total_pricedoublenot null 订单总金额 receive_namevarchar(100)not null 收货人姓名 full_addressvarchar(100)not null 收货人地址 postal_codevarchar(8)not null 邮编 mobilevarchar(20)not null 收货人电话 phonevarchar(20)not null 收货人手机 (7)订单项表(d_item),主要包含订单项编号、订单编号、商品编号、商品名称、 当当价格、商品数量、总价。 表4-7 货物表(d_item) 字段名称类型约束描述 idint(12)PK 订单号 orders_idint(10) auto_increment / PK 货物 ID product_idint(10)not null 产品 ID product_namevarchar(100) not null 产品名字 dang_pricedoublenot null 热销价 product_numberint(10)not null 产品数量 amountdoublenot null 产品价格 23 (8)收件人信息表(d_receive_address),主要包含编号、用户编号、收件人姓 名、详细地址、邮政编码、手机号码、固定电话号码。 表4-8 收货地址表(d_receive_address) 字段名称类型约束描述 idint(12)PK 数据库唯一标识 user_idint(10)not null 用户 ID receive_namevarchar(100)not null 收货人姓名 full_addressvarchar(100)not null 收货人地址 postal_codevarchar(8)not null 邮编 mobilevarchar(20)not null 收货人电话 phonevarchar(20)not null 收货人手机 (9)消息表(d_message),主要包含编号、关键字、消息内容、发布时间。 表 4-9 公告表(d_message) 字段名称类型约束描述 idint(12)PK 唯一标识 keywords varchar2(20)not null 消息关键词语 contentvarchar(500)not null 消息内容 out_timebigint(20)not null 发布时间 24 第第 5 5 章章 前台模块设计前台模块设计与实现与实现 本系统主要包含前台交易系统和后台管理系统,其中前台交易系统包括用户模 块、主页模块、订单模块、购物车模块,前台功能结构如图 5.1 所示。 图 5.1 前台功能结构图 5.15.1 用户模块用户模块 用户模块主要实现了用户注册、登入/登出、修改信息、查看订单等功能,用户 模块结构功能如图 5.2 所示。 图 5.2 用户模块功能结构图 前台交易模块 用 户 管 理 商 品 展 示 购 物 车 管 理 书 城 快 讯 我 的 订 单 用户模块 用 户 注 册 用 户 登 录 用 户 登 出 用 户 信 息 修 改 25 .1 用户注册用户注册 统采用了 JQuery(jquery-1.4.min.js)进行表单数据基本验证,注册页面 register_form.jsp 表单中的数据只要有一项不符合验证规则的数据,则表单提交 按钮失效。为了保证用户注册的邮箱名在数据库中是唯一的,使用了 Ajax 技术向服 务器发送异步请求,如果数据库中已经存在,则在页面上提示用户“此邮箱已经被 占用”的错误消息,用户注册流程如图 5.3 所示。 图 5.3 注册流程图 图 5.4 邮箱惟一验证效果界面 为了防止机器人捣乱胡乱注册,系统注册采用了图片验证码认证。验证码 图片是用 Java awt 包中的 Color、Graphics、BufferedImage 等类画出来的。 26 服务器只要一生成验证码就把它保存在 session 中,用于提交表单时与用户输 入的验证码比较,如果不一致,提示用户“验证码出错” ,这时用户可以点击后 面链接获取新的验证码,重新输入。点击后面的链接实际上是向服务器的 CheckCodeAction 发送请求,重新生成验证码。但是为了让浏览器能够每次执行 这个请求,必须让请求地址产生变化,否则浏览器默认是已经请求过的地址, 不会重新请求一遍。 方法如下: onclick=“document.getElementById(imgVcode).src=/checkcode.do? +(new Date().getTime(); 图片验证码生成代码如下(CheckCodeAciton): public class CheckCodeAction extends Action public ActionForward execute( ActionMapping mapping, Ac

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论