web java 开发网站毕业设计

毕业设计说明书

学生姓名: 学 号:

学 院:

专业年级: 09级信息与计算科学

题 目: 电子商务食品商城系统的设计与开发

指导教师: 孙玉荣 副教授

评阅教师: 李湘华 讲师 叶 萍 讲师

陈红斌 讲师 龚志伟 讲师

2013 年 5 月

摘 要

当下电子商务成为人们生活、工作的重要组成部分。购物不再是单一的现实

实体形式。B2C(企业对个人) 电子商务网上购物日渐成为购买商品的主要形式。本文阐述了电子商务的背景和发展前景,探讨了一个具体的电子商务网站—食品网上商城的实现过程。网站基于MYECLIPSE 平台和以JAVA 为核心语言的JSP 开发工具,实现了电子购物网站。前台包括商品浏览模块、用户登录注册模块、购物车模块,其中购物车模块是电子商城前台设计的关键,并且用户注册模块用到了AJAX 对邮箱的验证;后台包括订单、商品等管理模块,通过后台的管理将商品展示到前台,供会员浏览、购买。使人们就可以足不出户购买到所需商品,方便、省时,而企业也减少了成本。

关键词 商城;AJAX;B2C; 模块

Title Design and Implementation of Food Web

Abstract:

At present, electronic commerce has become an important part of the work and life.Shopping is no longer a single reality, entity, B2C ( business to consumer ) e-commerce online shopping is becoming the main form of daily purchase goods.This paper expounds the background of the electronic commerce and the prospects for development, introduces a realization process of specific electronic commerce Food shopping online.Food Web by using MYECLIPSE platform and JSP development tools (java), Realize the onstage and the backstage functions the electronic shopping website. The front includes the commodity browsing module, the user login.and register module and shopping cart module,where shopping cart module is the key, And the user registration module uses AJAX validation on the mailbox.Through the backstage management the goods display foreground,for members to browse and purchase. So that the people could buy what he want remain within doors .it is convenience, time saving and businesses can reduce cost.

Keywords: Food Web; AJAX ; B2C; Module

目 录

1 绪论 . ............................................................ 1

1.1 网站开发背景 . .................................................. 1

1.2 网站开发的意义和目的 . .......................................... 1

2 软件开发工具与技术简介 . .......................................... 2

2.1 开发技术 简介 . .................................................. 2

2.2 开发环境 . ....................................................... 5

3 需求分析 . ........................................................ 7

3.1 调查分析 . ...................................................... 7

3.2 功能需求 . ...................................................... 7

3.3 技术需求 . ...................................................... 7

3.4 代码设计原则 . .................................................. 8

4 数据库分析与设计 . ................................................ 9

4.1 逻辑结构设计 . .................................................. 9

4.2 表结构分析 . ................................................... 10

4.3 表结构信息 . ................................................... 12

5 功能设计 . ....................................................... 16

5.1 购物流程 . ..................................................... 16

5.2 系统能结构图 . ................................................. 17

5.3 接口设计 . ..................................................... 17

6 网站实现 . ....................................................... 19

6.1 页面设计 . ..................................................... 19

6.2 网站相关核心类和代码 . ......................................... 26

7 网站测试和部署 . ................................................. 36

7.1 网站测试 . ..................................................... 36

7.2 网站部署 . ..................................................... 36

结 论 . ............................................................. 38

致 谢 . ............................................................. 39

参 考 文 献 . ....................................................... 40

1 绪论

1.1 网站开发背景

随着网络、通信和信息技术的突破性进展Internet 在全球爆炸性增长并迅速普及。在这一前提下电子商务应运而生了。电子商务是基于互联网、以交易双方为主体、以银行电子支付和结算为手段、以客户数据为依托的全新的商务模式它可以使商家与供应商更紧密地联系起来更快地满足客户需求也可以让商家在全球范围内选择最佳供应商在全球市场上销售产品。 网络的诞生和发展颠覆了传统的信息传播方式冲破了存在于传统交流方式中时间和空间的种种壁垒极大地改变了人类从物质到精神、从形式到内容、从生产到生活的各种活动并且给人类带来了新的机遇和挑战。

基于B/S模式的网络销售网站克服了传统销售方式时所带来的人力、物力以及时间上的浪费,同时也保证了销售过程的科学化、高效化,使销售过程方便、准确、快捷。本毕业设计(网上食品店)利用JSP 和Oracle 技术实现。为广大用户提供了一种高质量,更快捷,更方便购物体验。

1.2 网站开发的意义和目的

1、选题的目的

搭建自己的商务网站,首先根据自己在大学期间所学的知识做一个实际运用的成果出来。其次,根据当前和未来社会发展的趋势和潮流,推出了自己的食品的网站 。都知道今年火热的词“终端”很多网络企业都在做自己的手机尽量把自己的业务 也放到手机里面。我之所以说到手机终端是因为他颠覆了平台 让电子商务的发展更有机会取代传统行业,现在很多的用户都热衷于网购,足不出户就可以解决自己的需求 因此一个B2C 购物网站是有市场的,

2、选题的意义

提供一个好的购物平台,这样既丰富了网民购物的渠道 同时也是对自己所学知识的运用。

2 软件开发工具与技术简介

2.1 开发技术 简介

2.1.1 Dreamweaver的简介

Macromedia Dreamweaver 是一种专业的HTML 编辑器,用于对Web 站点、Web 页和Web 应用程序进行设计、编码和开发。无论您喜欢直接编写HTML(Hypertext Markup Language, 超文本链接标示语言) 代码还是偏爱在可视化编辑坏境下工作,Dreamweaver 都会为你提供更便捷的工作坏境,丰富您的Web 创作体验。Dreamweaver 的早期版本就已经提供了许多令人惊讶的功能:实现对代码和设计的全面控制;利用新的与Macromedia Flash 和Fireworks 共享的集成工作区,增强工作效率;利用专业级的预置布局和代码,包括站点结构、表单、辅助模板、和提供客户机方交互的JavaScript 功能,快速进行设计和生产;利用强大的编码功能,加快代码编写速度;为最新的服务器设计快速开发Internet 应用程序;利用集成的开发坏境来开发HTML 、XHTML 、XML 、ASP 、ASP.NET 、JSP 、PHP 和Dreamweaver ColdFusion 网站;通过利用代码库创建数据库插入和更新表单、记录集导航页和用户认证页,快速开发公用Internet 应用程序;利用ColdFusion MX 快速开发Internet 应用程序;发挥新兴标准和Web 新技术的优势,包括XML 、Web 服务、XHTML 和辅助功能兼容性,改进现有的站点或构建下一代应用程序;运用XML 支持,加快下一代开发,轻松地进行XML Web服务;利用页和站点的兼容性检查功能、产品内含的参考内容以及辅助功能的有源创作模式,创建符合国际标准的辅助网站。主要新增功能有:“缩放”工具和辅助线;可视化XML 数据绑定;新的“CSS 样式”面板;CSS 布局的可视化;代码折叠;“编码”工具栏;后台文件传输;“插入Flash 视频”命令。

2.1.2 开发技术 Tomcat

Tomcat 服务器是一个免费的开发的源代码的Web 应用服务器,它是Apache 基金会的Jakarta 项目中的一个核心项目,由Apache 、Sun 和其它一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和Jsp 规范总能在Tomcat 中得到体现。Tomcat6支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在

不断的而且它还在不断的在改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行。

2.1.3 开发技术 JSP

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似ASP 技术,它是在传统的网页HTML 文件(*.htm,*.html)中插入Java 程序段(Scriptlet)和JSP 标记(tag),从而形成JSP 文件(*.jsp)。 用JSP 开发的Web 应用是跨平台的,既能在Linux 下运行,也能在其他操作系统上运行。

JSP 技术使用Java 编程语言编写类XML 的tags 和scriptlets ,来封装产生动态网页的处理逻辑。网页还能通过tags 和scriptlets 访问存在于服务端的资源的应用逻辑。JSP 将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web 的应用程序的开发变得迅速和容易。

Web 服务器在遇到访问JSP 网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP 文件中的HTML 代码一起返回给客户。插入的Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能[10]。

选用JSP 技术编写此系统是鉴于JSP 有以下几点强势:

(1)一次编写,到处运行。在这一点上Java 比PHP 更出色,除了系统之外,代码不用做任何更改。

(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。

(3)强大的可伸缩性。从只有一个小的Jar 文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application 进行事务处理,消息处理,一台服务器到无数台服务器,Java 显示了一个巨大的生命力。

(4)多样化和功能强大的开发工具支持。这一点与ASP 很像,Java 已经有了许

多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

2.1.4 开发技术 Sturts

Struts是采用Java Servlet/JavaServer Pages技术,开发Web 应用程序的开放源码的framework 。发表于2000年5月。采用Struts 能开发出基于MVC(Model-View-Controller)设计模式的应用构架。目前为止,有Structs1和Structs2,该网站采用的Structs1。

主要包含以下功能:

1. 包含一个controller servlet ,能将用户的请求发送到相应的Action 对象。

2. JSP 自由tag 库,并且在controller servlet 中提供关联支持,帮助开发员创建交互式表单应用。

3. 提供了一系列实用对象:XML 处理、通过Java reflection APIs自动处理JavaBeans 属性、国际化的提示和消息。

2.1.5 开发技术 javascript

JavaScript 是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web 开发的脚本语言,常用来给HTML 网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape )的Brendan Eich 设计,是一种动态、弱类型、基于原型的语言,内置支持类。JavaScript 是Sun 公司的注册商标。Ecma 国际以JavaScript 为基础制定了ECMAScript 标准。JavaScript 也可以用于其他场合,如服务器端编程。完整的JavaScript 实现包含三个部分:ECMAScript ,文档对象模型,字节顺序记号。

Netscape 公司在最初将其脚本语言命名为LiveScript 。在Netscape 在与Sun 合作之后将其改名为JavaScript 。JavaScript 最初受Java 启发而开始设计的,目的之一就是“看上去像Java ”,因此语法上有类似之处,一些名称和命名规范也借自Java 。但JavaScript 的主要设计原则源自Self 和Scheme[3]。JavaScript 与Java 名称上的近似,是当时网景为了营销[1]考虑与Sun 公司达成协议的结果。为了取得技术优势,微软推出了JScript 脚本语言。Ecma 国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript )。现在两者都属于ECMAScript 的实现。尽管JavaScript 作为给非程序人员的脚本语言,而非是作为给程序人员的编程语言来推广和宣传,但是JavaScript 具有非常丰富的特性。

2.2 开发环境

开发环境是指网站所采用的开发工具或者使用的环境,下面介绍食品网站的开发环境及数据库支持。

2.2.1 平台的搭建

在确定技术之后要作的就是搭建平台了,由于我们选用了JSP 技术,所以我们需要安装java 开发工具集(JDK )和Tomcat (网站服务器)。它们之间的关系见图

2.1

图2.1 JSP相关环境架构图

JDK ,Tomcat 均可从网上免费下载,具体安装不在冗述,强调两点:

(1)CLASSPATH的配置:

安装完JDK 和Tomcat 后需要在CLASSPATH 内配置如下内容:

CLASSPATH=安装目录\jdk 1.6.3\lib\tools.jar

CLASSPATH=安装目录\tomcat\lib

CLASSPATH=安装目录\tomcat\webapps

(2)在Tomcat context.xml文件内添加以下内容

password="zcc"driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@localhost:1521:zhang"/>

这样就可以连接数据库了。

2.2.2 数据库支持

本网站后台采用oracle 数据库,具有以下优点:

1. 使用C 和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性 。

2. 支持AIX 、FreeBSD 、HP-UX 、Linux 、Mac OS 、Novell Netware 、OpenBSD 、OS/2 Wrap 、Solaris 、Windows 等多种操作网站 。

3. 为多种编程语言提供了API 。这些编程语言包括C 、C++、Python 、Java 、Perl 、PHP 、Eiffel 、Ruby 和Tcl 等。

4. 支持多线程,充分利用CPU 资源 。

5. 优化的SQL 查询算法,有效地提高查询速度 。

6. 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

7. 提供TCP/IP、ODBC 和JDBC 等多种数据库连接途径 。

8. 提供用于管理、检查、优化数据库操作的管理工具 。

9. 可以处理拥有上千万条记录的大型数据库。

3 需求分析

需求分析的结果是否准确地反映了客户的实际需求,将直接影响到后面各个阶段

的设计,并影响到设计的网站模型是否合理和实用。 3.1 调查分析

随着网络时代的来临,越来越多的食品企业建立了自己的网站,目的不外乎通过网站起到对外宣传的作用,使更多的人了解自己公司的产品与及公司最新的动态。在调查中发现,目前有很多的各种各样的食品网站,也有很多的相关的门户网站,而食品公司自己专门的网站的建设水平却是参差不齐。多数食品企业的网站无法实现基本的动态功能,仍然只停留于简单的文字介绍和图片欣赏的静态界面上,这使得在企业与企业之间无法通过网络这个巨大的资源平台进行交流与沟通,很大程度上阻碍了食品企业向信息化建设迈进的步伐。

3.2 功能需求

就食品网站的管理运营方式来分,将本网站分为了前台和后台两个模块,下面简单介绍前台模块的功能:

(1)注册/登陆网站:用户注册:用户用自己的邮箱注册,输入用户名和密码,每个邮箱只能注册一个用户。

登陆:用户用自己的用户名和密码就可登陆。

(2)购物车:用户登陆后就能进入购物车查看到自己所选择的食品、价格、节省钱数、食品数量等信息,还有选择食品的增删和结算付账功能。

3.3 技术需求

从技术上说,采用基于B/S模式,其具体优势可从以下方面论述:

随着Internet/Intranet技术的不断发展,尤其是基于Web 页的信息发布和检索技术,将企业信息网站综合了C/S体系结构和WEB 信息发布与检索技术,形成了B/S结构。该结构大大简化了客户端。同时当企业对网络应用进行升级时, 只需更新服务器端的软件,而不必更新客户端软件,减轻了网站维护与升级的成本与工作,使用户的总体成本降低。B/S结构主要包括三层:表示层、业务逻辑层和数据层。 B/S结构的信息网站,面向用户就是一个交互式动态网站,用户通过这个网站与服务器进行交互。交互式动态网站有静态网站和服务器程序组成,用户利用动态网

站提供的交互式表单来填写信息后提交给服务器程序处理以达到交互操作目的。

图3.1交互式网站工作流程图

3.4 代码设计原则

1、唯一性:在本网站中,每一个代码都标识了网站中的每一个实体,而每一个实体也只能由一个代码来唯一确定; 2、标准性:主要体现在对程序文件名命名和对数据文件命名的目了然,无重复现象。为了网站维护人员便于进行网站维护,使用了统一的标准; 3、合理性:网站中代码设计与编码对象的分类相适应,以使代码对编码对象的分类据有标志作用; 4、简单性:在设计过程中采用汉字的汉语拼音的声母来表示汉字; 5、适应性:在代码设计过程中,代码反映了编码对象的特点,便于识别和记忆,使网站维护人员容易了解和掌握,便于进行维护工作; 6、规范性:代码的结构,类型,格式统一,便于记忆和计算机进行处理; 7、可扩充性:考虑到今后程序扩充测需要,在编制代码时,留有足够的备用代码。

4 数据库分析与设计

4.1 逻辑结构设计

数据库逻辑机构的设计主要是E-R 图与关系模型的转换。以下是数据库概念结构设计部分。

① 用户(ffn_User)表:用户名,密码,邮箱,真实姓名,详细住址,电话号码,QQ

② 用户状态(ffn_UserState)表:用户状态

③ 食品(ffn_Food)表:食品编号,食品名,净含量,价格,图片 ④ 食品数量(FoodQuantity )表:数量

⑤ 食品分类表(ffn_FoodClassfify):食品分类名. ⑥ 食品口味表(ffn_FoodTaste):食品口味名. ⑦ 食品工序表((ffn_FoodProcess):食品工序名.

⑧ 食品特别分类表(ffn_foodSpecialClass):食品特别分类名.

⑨ 收货人信息(ffn_Consignee)表:收货人姓名,收货住址,联系方式,邮编.

⑩ 订单(ffn_Odering)表:订单编号,订货人信息(订货人姓名,电话),收货人信息(收货人姓名,电话,地址,邮编),送货方式,付款方式,包装方式.

11 购物车表(ffn_Shoppingcart): 12 订单跟踪表(ffn_Orderingdetail): 13 评论表(ffn_Comment):

14 食品和订单关系表(订单详细(ffn_Oderingdetail)表) : 15 食品销售数量表(ffn_FoodSaleCount): 上面所列表为该网站所用基本表 。

4.2 表结构分析 4.2.1实体关系图的确立

在设计本系统中,后台数据库的设计是首先考虑的一个重要的问题,确立了对象模型才能够进行高效率的数据查询。E-R 模型的组成元素有:实体、属性、联系。E-R 模型用E-R 图来表示。实体是系统中的事物;属性是对实体特征的描述。系统E-R 图如下:

图 4.1用户E-R 图

图4.2食品的E-R 图

图4.3用户和订单E-R 图

图4.4用户和订单E-R 图

4.3 表结构信息

表4.4 食品分类表(ffn_FoodClassfify)

表4.5 食品口味表(ffn_FoodTaste)

表4.6 食品工序表(ffn_FoodProcess)

表4.8 收货信息表(ffn_Consignee)

表4.9 订单表(ffm_Odering)

表4.10 购物车表(ffn_Shoppingcart)

表4.13 评论表(ffn_Comment)

表4.14 食品销售数量表(ffn_FoodSaleCount)

表4.15 公司介绍表(company )

表4.16 公司动态表(company_sate)

5 功能设计

5.1 购物流程

图5.1 购物流程图

5.2 系统能结构图

图5.2 系统结构图

5.3 接口设计

1. User 接口

public interface UserDbDao { }

2. 购物车接口

public interface ShoppingCartDbDao {

public

List

getOrderingList(ShoppingCart

public List getUserList(User user); public User getUserById(User user); public int addUser(User user); public int delUser(User user); public t moddifyUser(User user);

shoppingCart);

public ShoppingCart getShoppingCart(ShoppingCart shoppingCart);

}

public int addShoppingCart(ShoppingCart shoppingCart); public int delShoppingCart(ShoppingCart shoppingCart); public int moddifyShoppingCart(ShoppingCart shoppingCart);

3. 购物车二级接口

public interface ShoppingCartDetailDbDao {

public

List

getShoppingCartDetailList(ShoppingCartDetail shopDetail);

public

ShoppingCartDetail

getShoppingCartDetailById(ShoppingCartDetail shopDetail);

public int addShoppingCartDetail(ShoppingCartDetail shopDetail); public int delShoppingCartDetail(ShoppingCartDetail shopDetail); public

int

moddifyShoppingCartDetail(ShoppingCartDetail

shopDetail);

}

6 网站实现

6.1 页面设计

1. 网站首页

图6.1 主界面页面

2. 注册界面

图6.2注册界面

3. 登陆界面

图6.3 登录页面

4. 单类别食品显示页面

图6.4 单类别食品显示页面

5. 购物车页面

图6.5 购物车页面

6. 收货人信息页面

图6.6收获人信息页面

7. 送货方式页面

图6.7 送货方式页面

8. 付款方式页面

图6.8付款方式页面

9. 留言页面

图6.9留言页面

10. 订单提交页面

图6.10订单页面

11. 订单提交页面

图6.11订单页面

12. 后台登陆页面

图6.12后台登陆页面

13. 后台首页

图6.13后台登陆页面

14. 增加食品

图6.14后台登陆页面

15. 查找食品

图6.15查找食品

6.2 网站相关核心类和代码

1、网站采用自定义MVC 框架,下面是工程的包架构:

图6.16工程包图

2、数据库连接核心代码:

public static synchronized Connection getConn(){

Connection conn = null; Context ic; try { ic = new InitialContext(); DataSource source = (DataSource)

ic.lookup("java:comp/env/jdbc/food");

} conn = source.getConnection(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { } return conn; System.out.println("连接成功!");

3、购物车核心代码

/*

* Generated by MyEclipse Struts

* Template path: templates/java/JavaClass.vtl

*/

package com.cn.action;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Set;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.actions.DispatchAction;

import com.cn.bean.Food;

import com.cn.bean.ShoppingCart;

import com.cn.bean.ShoppingCartDetail;

import com.cn.bean.User;

import com.cn.biz.FoodBiz;

import com.cn.biz.ShoppingCartBiz;

import com.cn.biz.ShoppingCartDetailBiz;

import com.cn.bizImpl.FoodBizImp;

import com.cn.bizImpl.ShoppingCartBizImp;

import com.cn.bizImpl.ShoppingCartDetailBizImp;

public class CartAction extends DispatchAction {

private int temp;; // 用来存储 是不是购买的同一个食品的id; private int utemp; private int temp1; private int temp2; private int userid; private int temp3; public int getTemp3() { } public void setTemp3(int temp3) { } public int getUserid() { } public void setUserid(int userid) { } private ShoppingCart scdCart = null;

return temp3; this.temp3 = temp3; return userid; this.userid = userid;

} public void setScdCart(ShoppingCart scdCart) { } public int getTemp() { } public int getUtemp() { } public void setUtemp(int utemp) { } public int getTemp1() { } public void setTemp1(int temp1) { } public int getTemp2() { } public void setTemp2(int temp2) { } public void setTemp(int temp) { }

return scdCart; this.scdCart = scdCart; return temp; return utemp; this.utemp = utemp; return temp1; this.temp1 = temp1; return temp2; this.temp2 = temp2; this.temp = temp;

HttpServletRequest request, HttpServletResponse response) { int fid = Integer.parseInt(request.getParameter("fid")); HashMap cart = (HashMap) request

.getSession().getAttribute("cart"); User user = (User) request.getSession().getAttribute("user"); List list = null; Food food = new Food(); food.setFood_id(fid); FoodBiz foodBiz = new FoodBizImp(); food = foodBiz.getFood(food);

if (user != null) {

temp1 = 0; // 用户登陆了 } else { temp2 = 0;// 用户退出 之后 scdCart=null; }

if (user!=null && userid!=user.getUser_id()) {

1);

}else{ ShoppingCartDetail sDetail = new ShoppingCartDetail(); sDetail.setC_number(1);

} temp2=0; // 当前一个用户退出之后 后面后面用户重新赋值; if (temp1 != 0 ) { // 如果是购买的同一种商品 if (fid == temp) { if (cart.size()!=0) { cart.get(fid).setC_number(cart.get(fid).getC_number() +

1);

} // 重复一次吧 神的代码.......................... cart.put(fid, sDetail); temp = food.getFood_id(); // 重新赋值 // 不封装方法了 应该把后面的一起放前面定义 冗余代码 } else { } ShoppingCartDetail sDetail = new ShoppingCartDetail(); sDetail.setC_number(1); sDetail.setFood(food); // 重复一次吧 神的代码.......................... cart.put(fid, sDetail); temp = food.getFood_id(); // 重新赋值 }// end if if (temp2 !=0 && cart!=null) { // 如果是购买的同一商品 if (fid == utemp) { cart.get(fid).setC_number(cart.get(fid).getC_number() + ShoppingCartDetail shoppingCartDetail = new

ShoppingCartDetail();

shoppingCartDetail.setFood(food); ShoppingCartDetailBiz sBiz = new

ShoppingCartDetailBizImp();

shoppingCartDetail=

sBiz.getShoppingCartDetail(shoppingCartDetail);//得到二级表的id

//再根据二级表修改 shoppingCartDetail.setC_number(cart.get(fid).getC_number());

} else { ShoppingCartDetail sDetail = new ShoppingCartDetail(); sDetail.setC_number(1); sDetail.setFood(food); ShoppingCartDetail shoppingCartDetail = new

ShoppingCartDetail();

if (user == null && cart == null) { // 没用用户登录 第一次登录 并 } } shoppingCartDetail.setC_number(sDetail.getC_number()); shoppingCartDetail.setFood(food); scdCart= new ShoppingCart(); scdCart.setUser(user); ShoppingCartBiz sBiz=new ShoppingCartBizImp(); scdCart=sBiz.getShoppingCart(scdCart); shoppingCartDetail.setShoppingcart(scdCart); new ShoppingCartDetailBizImp() .addShoppingCartDetail(shoppingCartDetail); cart.put(fid, sDetail); utemp = food.getFood_id(); // 重新赋值 且页面购物车也没有

// 创建一个页面购物车 cart = new HashMap(); // 赋给为空的购物车 // 购物车有了 放东西 ShoppingCartDetail sDetail = new ShoppingCartDetail(); sDetail.setC_number(1); sDetail.setFood(food);

temp = food.getFood_id(); temp1 = food.getFood_id(); }// end if // 还是没有用户的情况 有了购物车 // 用户登录了 创建一个页面购物车 if (user != null && cart == null) { cart = new HashMap(); // 还要判断数据库是否有数据 ShoppingCart shoppingCart = new ShoppingCart(); shoppingCart.setUser(user); ShoppingCartBiz shoppingCartBiz = new ShoppingCartBizImp(); shoppingCart =

shoppingCartBiz.getShoppingCart(shoppingCart);

if (shoppingCart != null) {// 如果不为空 说明有数据 // 然后从购物车详情里面取到数据 ShoppingCartDetail sCartDetail = new

ShoppingCartDetail();

sCartDetail.setShoppingcart(shoppingCart); ShoppingCartDetailBiz sDetailBiz = new

ShoppingCartDetailBizImp();

list = new ArrayList(); list = sDetailBiz.getAll(sCartDetail); if (list.size()!=0) { for (ShoppingCartDetail shoppingCartDetail : list) {// 加载到页面购物车

cart.put(shoppingCartDetail.getFood().getFood_id(), }

} shoppingCartDetail);

if (list != null ) { // 还要判断 数据库的 购物车的商品是不是和页面购物的同一个

量即可

// 同时更新数据库的信息 ShoppingCartDetailBiz sbiz = new // 遍历cart Set set = cart.keySet(); Object[] arr = set.toArray(); for (int i = 0; i

ShoppingCartDetailBizImp();

} // 不为同一个 或者是 数据库没有信息 // 为用户分配一个 数据库一级购物车信息 if (scdCart==null) { ShoppingCartDetail sDetail = new } scdCart= s.getShoppingcart(); temp3=1; } sbiz.update(s);

ShoppingCartDetail();

sDetail.setC_number(1); sDetail.setFood(food); scdCart = new ShoppingCart(); scdCart.setUser(user);

ShoppingCartBiz shoppingCartBiz2 = new

ShoppingCartBizImp();

shoppingCartBiz2.addShoppingCart(scdCart); // 然后向二级购物车插入信息 scdCart =

shoppingCartBiz2.getShoppingCart(scdCart);

sDetail.setShoppingcart(scdCart); new

ShoppingCartDetailBizImp().addShoppingCartDetail(sDetail);// 放入数据库

} } cart.put(fid, sDetail); } utemp = fid; // end if temp2 = temp2 + 1; }// end if // 用户有了购物车 request.getSession().setAttribute("cart", cart); if (user!=null) { } return mapping.findForward("shopping_cart"); userid=user.getUser_id(); temp3=0; scdCart=null;

7 网站测试和部署

7.1 网站测试

7.1.1 测试方法

网站测试方法主要选择黑盒测试,先输入数据后查看结果,如发现异常则定位错误所在,然后再通过白盒测试,按步骤检查程序的运行结果。

7.1.2 测试数据选择

1.错误数据

(1) 不符合规范的数据,如负数等。

(2) 不按格式输入的数据,如日期等。

7.1.3 测试结果及解决方案

经测试,网站运行状况良好,能够发现一般错误,但是有部分隐藏得较深的错误仍被忽略或发生较严重的错误。

解决方法:

1. 加强网站测试,以便发现错误。

2. 加强对用户输入数据合法性的检测,在客户端脚本和服务器端Action 中添加数据合法性的检测程序,保证程序使用的数据正确。

3. 加强存储过程的错误侦测能力。

7.2 网站部署

7.2.1 网站运行环境

1.客户程序硬件要求:

具有 Pentium III 处理器且满足以下要求的计算机:

最低 256 MB 内存

最小 10 GB 硬盘

数据库服务器硬件需求:

具有 Pentium III 处理器且满足以下要求的计算机:

最低 256MB 内存

最小 20 GB 硬盘

2.支持软件

客户程序软件:

Windows 98/NT /2000或更高版本

IE 6.0或者更高的版本

网络支持

MyEclipse 6.5

Oracle

Tomcat5.0

7.2.2 网站部署

1. 安装jdk1.6.3

2. 安装MyEclipse

3. 安装Tomcat 6.0

4. 安装Oracle

5. 配置环境变量

变量JAVA_HOME 值:JDK 安装目录

变量CLASSPATH 值:

变量PATH 值:JDK 安装目录/bin

在MyEclipse 下配置Tomcat ,并在Server 目录下启动Tomcat ,运行程序

6. 打开Internet Explorer,地址栏输入 http://localhost:8092/foodProject/

便可进入网站登陆界面,使用正确的用户名和密码便可登录操作。

结 论

经过概要需求分析,对网站功能进行了详细、全面构思,基本实现了本网站的要求,大体的功能都已完成实现,基本达到预期效果,但是仍然存在一些缺陷与问题,有待进一步的进行修改,进而完善本网站的功能体现。

虽然已经尽力做了网站的美化,但是在美观方面还需要提升,以便给客户留下舒适感,从而会增加客户的回头率。如主页的美观、登录界面、用户注册、物品搜索等,很多页面都需要界面美化加工。

本网站在一些功能模块的设计思想上也很有提升的空间,一些功能模块可以使用更好的方法来实现的更加完美,增加一个后台管理订单模块 ,可以完善网站功能。而在主页上也有很大提升的空间,可以增添更多的功能,在商品的展示最新商品上架,还可以添加最新商品框架,有利用户的购买最新商品。再如可以添加一个论坛模块,此模块可以实现用户之间对商品或本网站的讨论跟交流,便于站长吸收意见,更好的完善网站,提供更优质的服务。

本网站有待进一步的完善。由于时间跟设计思想的限制,本网站存在着一些缺陷,如美工方面的实现、功能模块的多元化等。在以后的工作学习中有待进一步的修改完善,以确保本网站实施的安全适用,为客户带来更多的便利和更优质的服务。

致 谢

本科时光匆匆而过,随着毕业设计的完成和论文的落笔,我的大学生活也即将画上一个句号,开始另一段新的生活。作为毕业前最后的一项重要项目—毕业设计在历时近3个月的时间后终于将其做完,在设计过程中遇到了很多困难,都在同学和指导老师的帮助下得以解决。 由此要感谢指导老师孙玉荣老师对我论文和设计的悉心指导,感谢他在百忙之中抽取时间对我指导。感谢教过我的大学老师,是你们传授我丰富的知识,为我以后工作生活打下基础。 感谢我的同学和朋友,我们在互帮互助下克服了很多困难,一起进步,一起成长,同时也更加认识到团体协作的重要性。 感谢家人在我成长过程中给予我的关心、鼓励和支持。

参 考 文 献

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

[14]

[15]

[16] 刘鲁, 罗掌华. 我国电子商务推荐策略的比较分析[J].网站工程理论与实践, 2004,8(24):96-101. 邵兵家, 吴俊. 电子商务发展与中介效率的博弈论分析[J].重庆大学学报:社会科学版,2002,1(3):20-90,. 曹广鑫 编著.JSP 数据库项目开发宝典[M].北京:电子工业出版社,2006. 刘继山. 商务网站页面设计技术[M].大连:东北财经大学出版社,2006. 王剑, 邓武. 基于Web 服务面向服务的动态电子商务应用框架研究[J].科学技术与工程,2008,2(3):65-90. 周旌恒.JSP 应用开发详解(第三版)[M].北京:电子工业出版社,2004. 黄浩文.JSP 核心技术和电子商务应用实例[M].北京:清华大学出版社,2000. 肖刚.Java Web服务器应用程序设计[M].北京:电子工业出版社,2002. 鲍格斯坦(Bergsten ,H. ),JSP 设计(第三版)[M].北京:中国电力出版社,2004. 高海茹.MySQL 网络数据库技术精粹[M].北京:机械工业出版社,2002. 胡崧编著. 网站建设实例大制作[M].北京:中国青年出版社,2007. 孙良军编著.Dreamweaver 完美网页设计[M].北京:中国青年出版社,2006. 谭清平. 实战Dreamweaver8网页设计教程[M].北京:机械工业出版社,2001 孙鑫.Java Web开发详解[M].北京:电子工业出版社,2008. 毕建信. 基于MVC 设计模式的Web 应用研究与实现[D].武汉理工大学,2006. 石军. 面向安全Web 服务的电子商务订单网站的设计与实现[D].苏州大

学,2005.

[17] Juan Lipson Vuong.A semantics-based routing scheme for grid resource

discovery[M].E-Science: First International Conference on E-Science and GridComputing,2005:58-70,90.

[18] atts D J.Small Worlds. The dynamics of networks between order and

randomness[P].America: 56A2579BB6,l999-05-13.

[19] 吴以欣, 陈小宁.JavaScript 脚本程序设计[M].北京:人民邮电出版社,2005 .

[20] Juan Lipson Vuong.A semantics-based routing scheme for grid resource

discovery[M].E-Science: First International Conference on E-Science and GridComputing,2005.

毕业设计说明书

学生姓名: 学 号:

学 院:

专业年级: 09级信息与计算科学

题 目: 电子商务食品商城系统的设计与开发

指导教师: 孙玉荣 副教授

评阅教师: 李湘华 讲师 叶 萍 讲师

陈红斌 讲师 龚志伟 讲师

2013 年 5 月

摘 要

当下电子商务成为人们生活、工作的重要组成部分。购物不再是单一的现实

实体形式。B2C(企业对个人) 电子商务网上购物日渐成为购买商品的主要形式。本文阐述了电子商务的背景和发展前景,探讨了一个具体的电子商务网站—食品网上商城的实现过程。网站基于MYECLIPSE 平台和以JAVA 为核心语言的JSP 开发工具,实现了电子购物网站。前台包括商品浏览模块、用户登录注册模块、购物车模块,其中购物车模块是电子商城前台设计的关键,并且用户注册模块用到了AJAX 对邮箱的验证;后台包括订单、商品等管理模块,通过后台的管理将商品展示到前台,供会员浏览、购买。使人们就可以足不出户购买到所需商品,方便、省时,而企业也减少了成本。

关键词 商城;AJAX;B2C; 模块

Title Design and Implementation of Food Web

Abstract:

At present, electronic commerce has become an important part of the work and life.Shopping is no longer a single reality, entity, B2C ( business to consumer ) e-commerce online shopping is becoming the main form of daily purchase goods.This paper expounds the background of the electronic commerce and the prospects for development, introduces a realization process of specific electronic commerce Food shopping online.Food Web by using MYECLIPSE platform and JSP development tools (java), Realize the onstage and the backstage functions the electronic shopping website. The front includes the commodity browsing module, the user login.and register module and shopping cart module,where shopping cart module is the key, And the user registration module uses AJAX validation on the mailbox.Through the backstage management the goods display foreground,for members to browse and purchase. So that the people could buy what he want remain within doors .it is convenience, time saving and businesses can reduce cost.

Keywords: Food Web; AJAX ; B2C; Module

目 录

1 绪论 . ............................................................ 1

1.1 网站开发背景 . .................................................. 1

1.2 网站开发的意义和目的 . .......................................... 1

2 软件开发工具与技术简介 . .......................................... 2

2.1 开发技术 简介 . .................................................. 2

2.2 开发环境 . ....................................................... 5

3 需求分析 . ........................................................ 7

3.1 调查分析 . ...................................................... 7

3.2 功能需求 . ...................................................... 7

3.3 技术需求 . ...................................................... 7

3.4 代码设计原则 . .................................................. 8

4 数据库分析与设计 . ................................................ 9

4.1 逻辑结构设计 . .................................................. 9

4.2 表结构分析 . ................................................... 10

4.3 表结构信息 . ................................................... 12

5 功能设计 . ....................................................... 16

5.1 购物流程 . ..................................................... 16

5.2 系统能结构图 . ................................................. 17

5.3 接口设计 . ..................................................... 17

6 网站实现 . ....................................................... 19

6.1 页面设计 . ..................................................... 19

6.2 网站相关核心类和代码 . ......................................... 26

7 网站测试和部署 . ................................................. 36

7.1 网站测试 . ..................................................... 36

7.2 网站部署 . ..................................................... 36

结 论 . ............................................................. 38

致 谢 . ............................................................. 39

参 考 文 献 . ....................................................... 40

1 绪论

1.1 网站开发背景

随着网络、通信和信息技术的突破性进展Internet 在全球爆炸性增长并迅速普及。在这一前提下电子商务应运而生了。电子商务是基于互联网、以交易双方为主体、以银行电子支付和结算为手段、以客户数据为依托的全新的商务模式它可以使商家与供应商更紧密地联系起来更快地满足客户需求也可以让商家在全球范围内选择最佳供应商在全球市场上销售产品。 网络的诞生和发展颠覆了传统的信息传播方式冲破了存在于传统交流方式中时间和空间的种种壁垒极大地改变了人类从物质到精神、从形式到内容、从生产到生活的各种活动并且给人类带来了新的机遇和挑战。

基于B/S模式的网络销售网站克服了传统销售方式时所带来的人力、物力以及时间上的浪费,同时也保证了销售过程的科学化、高效化,使销售过程方便、准确、快捷。本毕业设计(网上食品店)利用JSP 和Oracle 技术实现。为广大用户提供了一种高质量,更快捷,更方便购物体验。

1.2 网站开发的意义和目的

1、选题的目的

搭建自己的商务网站,首先根据自己在大学期间所学的知识做一个实际运用的成果出来。其次,根据当前和未来社会发展的趋势和潮流,推出了自己的食品的网站 。都知道今年火热的词“终端”很多网络企业都在做自己的手机尽量把自己的业务 也放到手机里面。我之所以说到手机终端是因为他颠覆了平台 让电子商务的发展更有机会取代传统行业,现在很多的用户都热衷于网购,足不出户就可以解决自己的需求 因此一个B2C 购物网站是有市场的,

2、选题的意义

提供一个好的购物平台,这样既丰富了网民购物的渠道 同时也是对自己所学知识的运用。

2 软件开发工具与技术简介

2.1 开发技术 简介

2.1.1 Dreamweaver的简介

Macromedia Dreamweaver 是一种专业的HTML 编辑器,用于对Web 站点、Web 页和Web 应用程序进行设计、编码和开发。无论您喜欢直接编写HTML(Hypertext Markup Language, 超文本链接标示语言) 代码还是偏爱在可视化编辑坏境下工作,Dreamweaver 都会为你提供更便捷的工作坏境,丰富您的Web 创作体验。Dreamweaver 的早期版本就已经提供了许多令人惊讶的功能:实现对代码和设计的全面控制;利用新的与Macromedia Flash 和Fireworks 共享的集成工作区,增强工作效率;利用专业级的预置布局和代码,包括站点结构、表单、辅助模板、和提供客户机方交互的JavaScript 功能,快速进行设计和生产;利用强大的编码功能,加快代码编写速度;为最新的服务器设计快速开发Internet 应用程序;利用集成的开发坏境来开发HTML 、XHTML 、XML 、ASP 、ASP.NET 、JSP 、PHP 和Dreamweaver ColdFusion 网站;通过利用代码库创建数据库插入和更新表单、记录集导航页和用户认证页,快速开发公用Internet 应用程序;利用ColdFusion MX 快速开发Internet 应用程序;发挥新兴标准和Web 新技术的优势,包括XML 、Web 服务、XHTML 和辅助功能兼容性,改进现有的站点或构建下一代应用程序;运用XML 支持,加快下一代开发,轻松地进行XML Web服务;利用页和站点的兼容性检查功能、产品内含的参考内容以及辅助功能的有源创作模式,创建符合国际标准的辅助网站。主要新增功能有:“缩放”工具和辅助线;可视化XML 数据绑定;新的“CSS 样式”面板;CSS 布局的可视化;代码折叠;“编码”工具栏;后台文件传输;“插入Flash 视频”命令。

2.1.2 开发技术 Tomcat

Tomcat 服务器是一个免费的开发的源代码的Web 应用服务器,它是Apache 基金会的Jakarta 项目中的一个核心项目,由Apache 、Sun 和其它一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和Jsp 规范总能在Tomcat 中得到体现。Tomcat6支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在

不断的而且它还在不断的在改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。

Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行。

2.1.3 开发技术 JSP

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP 技术有点类似ASP 技术,它是在传统的网页HTML 文件(*.htm,*.html)中插入Java 程序段(Scriptlet)和JSP 标记(tag),从而形成JSP 文件(*.jsp)。 用JSP 开发的Web 应用是跨平台的,既能在Linux 下运行,也能在其他操作系统上运行。

JSP 技术使用Java 编程语言编写类XML 的tags 和scriptlets ,来封装产生动态网页的处理逻辑。网页还能通过tags 和scriptlets 访问存在于服务端的资源的应用逻辑。JSP 将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web 的应用程序的开发变得迅速和容易。

Web 服务器在遇到访问JSP 网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP 文件中的HTML 代码一起返回给客户。插入的Java 程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能[10]。

选用JSP 技术编写此系统是鉴于JSP 有以下几点强势:

(1)一次编写,到处运行。在这一点上Java 比PHP 更出色,除了系统之外,代码不用做任何更改。

(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。

(3)强大的可伸缩性。从只有一个小的Jar 文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application 进行事务处理,消息处理,一台服务器到无数台服务器,Java 显示了一个巨大的生命力。

(4)多样化和功能强大的开发工具支持。这一点与ASP 很像,Java 已经有了许

多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

2.1.4 开发技术 Sturts

Struts是采用Java Servlet/JavaServer Pages技术,开发Web 应用程序的开放源码的framework 。发表于2000年5月。采用Struts 能开发出基于MVC(Model-View-Controller)设计模式的应用构架。目前为止,有Structs1和Structs2,该网站采用的Structs1。

主要包含以下功能:

1. 包含一个controller servlet ,能将用户的请求发送到相应的Action 对象。

2. JSP 自由tag 库,并且在controller servlet 中提供关联支持,帮助开发员创建交互式表单应用。

3. 提供了一系列实用对象:XML 处理、通过Java reflection APIs自动处理JavaBeans 属性、国际化的提示和消息。

2.1.5 开发技术 javascript

JavaScript 是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web 开发的脚本语言,常用来给HTML 网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape )的Brendan Eich 设计,是一种动态、弱类型、基于原型的语言,内置支持类。JavaScript 是Sun 公司的注册商标。Ecma 国际以JavaScript 为基础制定了ECMAScript 标准。JavaScript 也可以用于其他场合,如服务器端编程。完整的JavaScript 实现包含三个部分:ECMAScript ,文档对象模型,字节顺序记号。

Netscape 公司在最初将其脚本语言命名为LiveScript 。在Netscape 在与Sun 合作之后将其改名为JavaScript 。JavaScript 最初受Java 启发而开始设计的,目的之一就是“看上去像Java ”,因此语法上有类似之处,一些名称和命名规范也借自Java 。但JavaScript 的主要设计原则源自Self 和Scheme[3]。JavaScript 与Java 名称上的近似,是当时网景为了营销[1]考虑与Sun 公司达成协议的结果。为了取得技术优势,微软推出了JScript 脚本语言。Ecma 国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript )。现在两者都属于ECMAScript 的实现。尽管JavaScript 作为给非程序人员的脚本语言,而非是作为给程序人员的编程语言来推广和宣传,但是JavaScript 具有非常丰富的特性。

2.2 开发环境

开发环境是指网站所采用的开发工具或者使用的环境,下面介绍食品网站的开发环境及数据库支持。

2.2.1 平台的搭建

在确定技术之后要作的就是搭建平台了,由于我们选用了JSP 技术,所以我们需要安装java 开发工具集(JDK )和Tomcat (网站服务器)。它们之间的关系见图

2.1

图2.1 JSP相关环境架构图

JDK ,Tomcat 均可从网上免费下载,具体安装不在冗述,强调两点:

(1)CLASSPATH的配置:

安装完JDK 和Tomcat 后需要在CLASSPATH 内配置如下内容:

CLASSPATH=安装目录\jdk 1.6.3\lib\tools.jar

CLASSPATH=安装目录\tomcat\lib

CLASSPATH=安装目录\tomcat\webapps

(2)在Tomcat context.xml文件内添加以下内容

password="zcc"driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@localhost:1521:zhang"/>

这样就可以连接数据库了。

2.2.2 数据库支持

本网站后台采用oracle 数据库,具有以下优点:

1. 使用C 和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性 。

2. 支持AIX 、FreeBSD 、HP-UX 、Linux 、Mac OS 、Novell Netware 、OpenBSD 、OS/2 Wrap 、Solaris 、Windows 等多种操作网站 。

3. 为多种编程语言提供了API 。这些编程语言包括C 、C++、Python 、Java 、Perl 、PHP 、Eiffel 、Ruby 和Tcl 等。

4. 支持多线程,充分利用CPU 资源 。

5. 优化的SQL 查询算法,有效地提高查询速度 。

6. 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。

7. 提供TCP/IP、ODBC 和JDBC 等多种数据库连接途径 。

8. 提供用于管理、检查、优化数据库操作的管理工具 。

9. 可以处理拥有上千万条记录的大型数据库。

3 需求分析

需求分析的结果是否准确地反映了客户的实际需求,将直接影响到后面各个阶段

的设计,并影响到设计的网站模型是否合理和实用。 3.1 调查分析

随着网络时代的来临,越来越多的食品企业建立了自己的网站,目的不外乎通过网站起到对外宣传的作用,使更多的人了解自己公司的产品与及公司最新的动态。在调查中发现,目前有很多的各种各样的食品网站,也有很多的相关的门户网站,而食品公司自己专门的网站的建设水平却是参差不齐。多数食品企业的网站无法实现基本的动态功能,仍然只停留于简单的文字介绍和图片欣赏的静态界面上,这使得在企业与企业之间无法通过网络这个巨大的资源平台进行交流与沟通,很大程度上阻碍了食品企业向信息化建设迈进的步伐。

3.2 功能需求

就食品网站的管理运营方式来分,将本网站分为了前台和后台两个模块,下面简单介绍前台模块的功能:

(1)注册/登陆网站:用户注册:用户用自己的邮箱注册,输入用户名和密码,每个邮箱只能注册一个用户。

登陆:用户用自己的用户名和密码就可登陆。

(2)购物车:用户登陆后就能进入购物车查看到自己所选择的食品、价格、节省钱数、食品数量等信息,还有选择食品的增删和结算付账功能。

3.3 技术需求

从技术上说,采用基于B/S模式,其具体优势可从以下方面论述:

随着Internet/Intranet技术的不断发展,尤其是基于Web 页的信息发布和检索技术,将企业信息网站综合了C/S体系结构和WEB 信息发布与检索技术,形成了B/S结构。该结构大大简化了客户端。同时当企业对网络应用进行升级时, 只需更新服务器端的软件,而不必更新客户端软件,减轻了网站维护与升级的成本与工作,使用户的总体成本降低。B/S结构主要包括三层:表示层、业务逻辑层和数据层。 B/S结构的信息网站,面向用户就是一个交互式动态网站,用户通过这个网站与服务器进行交互。交互式动态网站有静态网站和服务器程序组成,用户利用动态网

站提供的交互式表单来填写信息后提交给服务器程序处理以达到交互操作目的。

图3.1交互式网站工作流程图

3.4 代码设计原则

1、唯一性:在本网站中,每一个代码都标识了网站中的每一个实体,而每一个实体也只能由一个代码来唯一确定; 2、标准性:主要体现在对程序文件名命名和对数据文件命名的目了然,无重复现象。为了网站维护人员便于进行网站维护,使用了统一的标准; 3、合理性:网站中代码设计与编码对象的分类相适应,以使代码对编码对象的分类据有标志作用; 4、简单性:在设计过程中采用汉字的汉语拼音的声母来表示汉字; 5、适应性:在代码设计过程中,代码反映了编码对象的特点,便于识别和记忆,使网站维护人员容易了解和掌握,便于进行维护工作; 6、规范性:代码的结构,类型,格式统一,便于记忆和计算机进行处理; 7、可扩充性:考虑到今后程序扩充测需要,在编制代码时,留有足够的备用代码。

4 数据库分析与设计

4.1 逻辑结构设计

数据库逻辑机构的设计主要是E-R 图与关系模型的转换。以下是数据库概念结构设计部分。

① 用户(ffn_User)表:用户名,密码,邮箱,真实姓名,详细住址,电话号码,QQ

② 用户状态(ffn_UserState)表:用户状态

③ 食品(ffn_Food)表:食品编号,食品名,净含量,价格,图片 ④ 食品数量(FoodQuantity )表:数量

⑤ 食品分类表(ffn_FoodClassfify):食品分类名. ⑥ 食品口味表(ffn_FoodTaste):食品口味名. ⑦ 食品工序表((ffn_FoodProcess):食品工序名.

⑧ 食品特别分类表(ffn_foodSpecialClass):食品特别分类名.

⑨ 收货人信息(ffn_Consignee)表:收货人姓名,收货住址,联系方式,邮编.

⑩ 订单(ffn_Odering)表:订单编号,订货人信息(订货人姓名,电话),收货人信息(收货人姓名,电话,地址,邮编),送货方式,付款方式,包装方式.

11 购物车表(ffn_Shoppingcart): 12 订单跟踪表(ffn_Orderingdetail): 13 评论表(ffn_Comment):

14 食品和订单关系表(订单详细(ffn_Oderingdetail)表) : 15 食品销售数量表(ffn_FoodSaleCount): 上面所列表为该网站所用基本表 。

4.2 表结构分析 4.2.1实体关系图的确立

在设计本系统中,后台数据库的设计是首先考虑的一个重要的问题,确立了对象模型才能够进行高效率的数据查询。E-R 模型的组成元素有:实体、属性、联系。E-R 模型用E-R 图来表示。实体是系统中的事物;属性是对实体特征的描述。系统E-R 图如下:

图 4.1用户E-R 图

图4.2食品的E-R 图

图4.3用户和订单E-R 图

图4.4用户和订单E-R 图

4.3 表结构信息

表4.4 食品分类表(ffn_FoodClassfify)

表4.5 食品口味表(ffn_FoodTaste)

表4.6 食品工序表(ffn_FoodProcess)

表4.8 收货信息表(ffn_Consignee)

表4.9 订单表(ffm_Odering)

表4.10 购物车表(ffn_Shoppingcart)

表4.13 评论表(ffn_Comment)

表4.14 食品销售数量表(ffn_FoodSaleCount)

表4.15 公司介绍表(company )

表4.16 公司动态表(company_sate)

5 功能设计

5.1 购物流程

图5.1 购物流程图

5.2 系统能结构图

图5.2 系统结构图

5.3 接口设计

1. User 接口

public interface UserDbDao { }

2. 购物车接口

public interface ShoppingCartDbDao {

public

List

getOrderingList(ShoppingCart

public List getUserList(User user); public User getUserById(User user); public int addUser(User user); public int delUser(User user); public t moddifyUser(User user);

shoppingCart);

public ShoppingCart getShoppingCart(ShoppingCart shoppingCart);

}

public int addShoppingCart(ShoppingCart shoppingCart); public int delShoppingCart(ShoppingCart shoppingCart); public int moddifyShoppingCart(ShoppingCart shoppingCart);

3. 购物车二级接口

public interface ShoppingCartDetailDbDao {

public

List

getShoppingCartDetailList(ShoppingCartDetail shopDetail);

public

ShoppingCartDetail

getShoppingCartDetailById(ShoppingCartDetail shopDetail);

public int addShoppingCartDetail(ShoppingCartDetail shopDetail); public int delShoppingCartDetail(ShoppingCartDetail shopDetail); public

int

moddifyShoppingCartDetail(ShoppingCartDetail

shopDetail);

}

6 网站实现

6.1 页面设计

1. 网站首页

图6.1 主界面页面

2. 注册界面

图6.2注册界面

3. 登陆界面

图6.3 登录页面

4. 单类别食品显示页面

图6.4 单类别食品显示页面

5. 购物车页面

图6.5 购物车页面

6. 收货人信息页面

图6.6收获人信息页面

7. 送货方式页面

图6.7 送货方式页面

8. 付款方式页面

图6.8付款方式页面

9. 留言页面

图6.9留言页面

10. 订单提交页面

图6.10订单页面

11. 订单提交页面

图6.11订单页面

12. 后台登陆页面

图6.12后台登陆页面

13. 后台首页

图6.13后台登陆页面

14. 增加食品

图6.14后台登陆页面

15. 查找食品

图6.15查找食品

6.2 网站相关核心类和代码

1、网站采用自定义MVC 框架,下面是工程的包架构:

图6.16工程包图

2、数据库连接核心代码:

public static synchronized Connection getConn(){

Connection conn = null; Context ic; try { ic = new InitialContext(); DataSource source = (DataSource)

ic.lookup("java:comp/env/jdbc/food");

} conn = source.getConnection(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { } return conn; System.out.println("连接成功!");

3、购物车核心代码

/*

* Generated by MyEclipse Struts

* Template path: templates/java/JavaClass.vtl

*/

package com.cn.action;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Set;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.actions.DispatchAction;

import com.cn.bean.Food;

import com.cn.bean.ShoppingCart;

import com.cn.bean.ShoppingCartDetail;

import com.cn.bean.User;

import com.cn.biz.FoodBiz;

import com.cn.biz.ShoppingCartBiz;

import com.cn.biz.ShoppingCartDetailBiz;

import com.cn.bizImpl.FoodBizImp;

import com.cn.bizImpl.ShoppingCartBizImp;

import com.cn.bizImpl.ShoppingCartDetailBizImp;

public class CartAction extends DispatchAction {

private int temp;; // 用来存储 是不是购买的同一个食品的id; private int utemp; private int temp1; private int temp2; private int userid; private int temp3; public int getTemp3() { } public void setTemp3(int temp3) { } public int getUserid() { } public void setUserid(int userid) { } private ShoppingCart scdCart = null;

return temp3; this.temp3 = temp3; return userid; this.userid = userid;

} public void setScdCart(ShoppingCart scdCart) { } public int getTemp() { } public int getUtemp() { } public void setUtemp(int utemp) { } public int getTemp1() { } public void setTemp1(int temp1) { } public int getTemp2() { } public void setTemp2(int temp2) { } public void setTemp(int temp) { }

return scdCart; this.scdCart = scdCart; return temp; return utemp; this.utemp = utemp; return temp1; this.temp1 = temp1; return temp2; this.temp2 = temp2; this.temp = temp;

HttpServletRequest request, HttpServletResponse response) { int fid = Integer.parseInt(request.getParameter("fid")); HashMap cart = (HashMap) request

.getSession().getAttribute("cart"); User user = (User) request.getSession().getAttribute("user"); List list = null; Food food = new Food(); food.setFood_id(fid); FoodBiz foodBiz = new FoodBizImp(); food = foodBiz.getFood(food);

if (user != null) {

temp1 = 0; // 用户登陆了 } else { temp2 = 0;// 用户退出 之后 scdCart=null; }

if (user!=null && userid!=user.getUser_id()) {

1);

}else{ ShoppingCartDetail sDetail = new ShoppingCartDetail(); sDetail.setC_number(1);

} temp2=0; // 当前一个用户退出之后 后面后面用户重新赋值; if (temp1 != 0 ) { // 如果是购买的同一种商品 if (fid == temp) { if (cart.size()!=0) { cart.get(fid).setC_number(cart.get(fid).getC_number() +

1);

} // 重复一次吧 神的代码.......................... cart.put(fid, sDetail); temp = food.getFood_id(); // 重新赋值 // 不封装方法了 应该把后面的一起放前面定义 冗余代码 } else { } ShoppingCartDetail sDetail = new ShoppingCartDetail(); sDetail.setC_number(1); sDetail.setFood(food); // 重复一次吧 神的代码.......................... cart.put(fid, sDetail); temp = food.getFood_id(); // 重新赋值 }// end if if (temp2 !=0 && cart!=null) { // 如果是购买的同一商品 if (fid == utemp) { cart.get(fid).setC_number(cart.get(fid).getC_number() + ShoppingCartDetail shoppingCartDetail = new

ShoppingCartDetail();

shoppingCartDetail.setFood(food); ShoppingCartDetailBiz sBiz = new

ShoppingCartDetailBizImp();

shoppingCartDetail=

sBiz.getShoppingCartDetail(shoppingCartDetail);//得到二级表的id

//再根据二级表修改 shoppingCartDetail.setC_number(cart.get(fid).getC_number());

} else { ShoppingCartDetail sDetail = new ShoppingCartDetail(); sDetail.setC_number(1); sDetail.setFood(food); ShoppingCartDetail shoppingCartDetail = new

ShoppingCartDetail();

if (user == null && cart == null) { // 没用用户登录 第一次登录 并 } } shoppingCartDetail.setC_number(sDetail.getC_number()); shoppingCartDetail.setFood(food); scdCart= new ShoppingCart(); scdCart.setUser(user); ShoppingCartBiz sBiz=new ShoppingCartBizImp(); scdCart=sBiz.getShoppingCart(scdCart); shoppingCartDetail.setShoppingcart(scdCart); new ShoppingCartDetailBizImp() .addShoppingCartDetail(shoppingCartDetail); cart.put(fid, sDetail); utemp = food.getFood_id(); // 重新赋值 且页面购物车也没有

// 创建一个页面购物车 cart = new HashMap(); // 赋给为空的购物车 // 购物车有了 放东西 ShoppingCartDetail sDetail = new ShoppingCartDetail(); sDetail.setC_number(1); sDetail.setFood(food);

temp = food.getFood_id(); temp1 = food.getFood_id(); }// end if // 还是没有用户的情况 有了购物车 // 用户登录了 创建一个页面购物车 if (user != null && cart == null) { cart = new HashMap(); // 还要判断数据库是否有数据 ShoppingCart shoppingCart = new ShoppingCart(); shoppingCart.setUser(user); ShoppingCartBiz shoppingCartBiz = new ShoppingCartBizImp(); shoppingCart =

shoppingCartBiz.getShoppingCart(shoppingCart);

if (shoppingCart != null) {// 如果不为空 说明有数据 // 然后从购物车详情里面取到数据 ShoppingCartDetail sCartDetail = new

ShoppingCartDetail();

sCartDetail.setShoppingcart(shoppingCart); ShoppingCartDetailBiz sDetailBiz = new

ShoppingCartDetailBizImp();

list = new ArrayList(); list = sDetailBiz.getAll(sCartDetail); if (list.size()!=0) { for (ShoppingCartDetail shoppingCartDetail : list) {// 加载到页面购物车

cart.put(shoppingCartDetail.getFood().getFood_id(), }

} shoppingCartDetail);

if (list != null ) { // 还要判断 数据库的 购物车的商品是不是和页面购物的同一个

量即可

// 同时更新数据库的信息 ShoppingCartDetailBiz sbiz = new // 遍历cart Set set = cart.keySet(); Object[] arr = set.toArray(); for (int i = 0; i

ShoppingCartDetailBizImp();

} // 不为同一个 或者是 数据库没有信息 // 为用户分配一个 数据库一级购物车信息 if (scdCart==null) { ShoppingCartDetail sDetail = new } scdCart= s.getShoppingcart(); temp3=1; } sbiz.update(s);

ShoppingCartDetail();

sDetail.setC_number(1); sDetail.setFood(food); scdCart = new ShoppingCart(); scdCart.setUser(user);

ShoppingCartBiz shoppingCartBiz2 = new

ShoppingCartBizImp();

shoppingCartBiz2.addShoppingCart(scdCart); // 然后向二级购物车插入信息 scdCart =

shoppingCartBiz2.getShoppingCart(scdCart);

sDetail.setShoppingcart(scdCart); new

ShoppingCartDetailBizImp().addShoppingCartDetail(sDetail);// 放入数据库

} } cart.put(fid, sDetail); } utemp = fid; // end if temp2 = temp2 + 1; }// end if // 用户有了购物车 request.getSession().setAttribute("cart", cart); if (user!=null) { } return mapping.findForward("shopping_cart"); userid=user.getUser_id(); temp3=0; scdCart=null;

7 网站测试和部署

7.1 网站测试

7.1.1 测试方法

网站测试方法主要选择黑盒测试,先输入数据后查看结果,如发现异常则定位错误所在,然后再通过白盒测试,按步骤检查程序的运行结果。

7.1.2 测试数据选择

1.错误数据

(1) 不符合规范的数据,如负数等。

(2) 不按格式输入的数据,如日期等。

7.1.3 测试结果及解决方案

经测试,网站运行状况良好,能够发现一般错误,但是有部分隐藏得较深的错误仍被忽略或发生较严重的错误。

解决方法:

1. 加强网站测试,以便发现错误。

2. 加强对用户输入数据合法性的检测,在客户端脚本和服务器端Action 中添加数据合法性的检测程序,保证程序使用的数据正确。

3. 加强存储过程的错误侦测能力。

7.2 网站部署

7.2.1 网站运行环境

1.客户程序硬件要求:

具有 Pentium III 处理器且满足以下要求的计算机:

最低 256 MB 内存

最小 10 GB 硬盘

数据库服务器硬件需求:

具有 Pentium III 处理器且满足以下要求的计算机:

最低 256MB 内存

最小 20 GB 硬盘

2.支持软件

客户程序软件:

Windows 98/NT /2000或更高版本

IE 6.0或者更高的版本

网络支持

MyEclipse 6.5

Oracle

Tomcat5.0

7.2.2 网站部署

1. 安装jdk1.6.3

2. 安装MyEclipse

3. 安装Tomcat 6.0

4. 安装Oracle

5. 配置环境变量

变量JAVA_HOME 值:JDK 安装目录

变量CLASSPATH 值:

变量PATH 值:JDK 安装目录/bin

在MyEclipse 下配置Tomcat ,并在Server 目录下启动Tomcat ,运行程序

6. 打开Internet Explorer,地址栏输入 http://localhost:8092/foodProject/

便可进入网站登陆界面,使用正确的用户名和密码便可登录操作。

结 论

经过概要需求分析,对网站功能进行了详细、全面构思,基本实现了本网站的要求,大体的功能都已完成实现,基本达到预期效果,但是仍然存在一些缺陷与问题,有待进一步的进行修改,进而完善本网站的功能体现。

虽然已经尽力做了网站的美化,但是在美观方面还需要提升,以便给客户留下舒适感,从而会增加客户的回头率。如主页的美观、登录界面、用户注册、物品搜索等,很多页面都需要界面美化加工。

本网站在一些功能模块的设计思想上也很有提升的空间,一些功能模块可以使用更好的方法来实现的更加完美,增加一个后台管理订单模块 ,可以完善网站功能。而在主页上也有很大提升的空间,可以增添更多的功能,在商品的展示最新商品上架,还可以添加最新商品框架,有利用户的购买最新商品。再如可以添加一个论坛模块,此模块可以实现用户之间对商品或本网站的讨论跟交流,便于站长吸收意见,更好的完善网站,提供更优质的服务。

本网站有待进一步的完善。由于时间跟设计思想的限制,本网站存在着一些缺陷,如美工方面的实现、功能模块的多元化等。在以后的工作学习中有待进一步的修改完善,以确保本网站实施的安全适用,为客户带来更多的便利和更优质的服务。

致 谢

本科时光匆匆而过,随着毕业设计的完成和论文的落笔,我的大学生活也即将画上一个句号,开始另一段新的生活。作为毕业前最后的一项重要项目—毕业设计在历时近3个月的时间后终于将其做完,在设计过程中遇到了很多困难,都在同学和指导老师的帮助下得以解决。 由此要感谢指导老师孙玉荣老师对我论文和设计的悉心指导,感谢他在百忙之中抽取时间对我指导。感谢教过我的大学老师,是你们传授我丰富的知识,为我以后工作生活打下基础。 感谢我的同学和朋友,我们在互帮互助下克服了很多困难,一起进步,一起成长,同时也更加认识到团体协作的重要性。 感谢家人在我成长过程中给予我的关心、鼓励和支持。

参 考 文 献

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

[10]

[11]

[12]

[13]

[14]

[15]

[16] 刘鲁, 罗掌华. 我国电子商务推荐策略的比较分析[J].网站工程理论与实践, 2004,8(24):96-101. 邵兵家, 吴俊. 电子商务发展与中介效率的博弈论分析[J].重庆大学学报:社会科学版,2002,1(3):20-90,. 曹广鑫 编著.JSP 数据库项目开发宝典[M].北京:电子工业出版社,2006. 刘继山. 商务网站页面设计技术[M].大连:东北财经大学出版社,2006. 王剑, 邓武. 基于Web 服务面向服务的动态电子商务应用框架研究[J].科学技术与工程,2008,2(3):65-90. 周旌恒.JSP 应用开发详解(第三版)[M].北京:电子工业出版社,2004. 黄浩文.JSP 核心技术和电子商务应用实例[M].北京:清华大学出版社,2000. 肖刚.Java Web服务器应用程序设计[M].北京:电子工业出版社,2002. 鲍格斯坦(Bergsten ,H. ),JSP 设计(第三版)[M].北京:中国电力出版社,2004. 高海茹.MySQL 网络数据库技术精粹[M].北京:机械工业出版社,2002. 胡崧编著. 网站建设实例大制作[M].北京:中国青年出版社,2007. 孙良军编著.Dreamweaver 完美网页设计[M].北京:中国青年出版社,2006. 谭清平. 实战Dreamweaver8网页设计教程[M].北京:机械工业出版社,2001 孙鑫.Java Web开发详解[M].北京:电子工业出版社,2008. 毕建信. 基于MVC 设计模式的Web 应用研究与实现[D].武汉理工大学,2006. 石军. 面向安全Web 服务的电子商务订单网站的设计与实现[D].苏州大

学,2005.

[17] Juan Lipson Vuong.A semantics-based routing scheme for grid resource

discovery[M].E-Science: First International Conference on E-Science and GridComputing,2005:58-70,90.

[18] atts D J.Small Worlds. The dynamics of networks between order and

randomness[P].America: 56A2579BB6,l999-05-13.

[19] 吴以欣, 陈小宁.JavaScript 脚本程序设计[M].北京:人民邮电出版社,2005 .

[20] Juan Lipson Vuong.A semantics-based routing scheme for grid resource

discovery[M].E-Science: First International Conference on E-Science and GridComputing,2005.


相关文章

  • 个人博客网站的设计与实现
  • 第一章 引言 博客,又译为网络日志.部落格或部落阁等,是一种通常由个人管理.不定期张贴新的文章的网站.博客上的文章通常根据张贴时间,以倒序方式由新到旧排列.许多博客专注在特定的课题上提供评论或新闻,其他则被作为比较个人的日记.一个典型的博客 ...查看


  • 软件工程实训报告 1
  • 本科生实习报告 实习类型 专业实训 题 目 成都市教育局中职教育基础能力平台 学院名称 信息科学与技术学院 专业名称 软件工程 学生姓名 学生学号 指导教师 实习地点 实习成绩 二〇一五 年 六 月 年 七 月 成都市教育局中职教育基础能力 ...查看


  • 人力资源管理系统软件工程毕业设计论文
  • 摘要 人力资源管理系统是现代企业的核心业务系统之一,人力资源管理的状况和水平对企业的运作和效率至关重要.现代企业人力资源管理的内容非常丰富,可能包含档案管理.合同管理.薪酬管理.招聘管理.绩效管理.系统管理等很多部分.在本次毕业设计中,我们 ...查看


  • 电子商务网站毕业设计论文 1
  • 毕业设计论文 题 学 专 年 学 姓 指 导 成 目 院 业 级 号 名教 师 绩 网上订餐系统 应用技术学院 电子商务 2008级 [**************] 方阳 卢竹兵 2012 年 2 月 20 日 目录 第1章 前言 ... ...查看


  • 科技写作科研(论文)选题题目名称参考
  • 科技写作科研(论文)选题题目名称参考 1. 基于Struts 的企业人力资源管理系统的设计与实现 2. 基于云计算的HIS 系统-挂号子系统的设计与开发 云平台下的HIS 系统,使用Java 或C++. 3. 基于云计算的HIS 系统-收费 ...查看


  • 本科计算机论文题目
  • 基于asp 语言的测试项目 学生信息管理系统的设计与实现 基于ASP.NET 的社区人口管理系统 基于ASP.NET 的课程教学网站设计 公司会议网站 C#高校工资管理系统 C#在线点歌系统 <数据库原理>精品课程网站设计 教师 ...查看


  • 网页制作概述
  • 网页制作概述 从前一般网页都使用表格进行排版设计,这样作的优点在于设计制作速度快,尤其在可视化网页编辑器,如Microsoft FrontPage中,这样设计显得直观而方便,然而这让越来越复杂的版面需要许多不断嵌套的表格设计,致使网页代码变 ...查看


  • 电子商务技术基础课后习题及答案
  • 电子商务技术基础课后习题及参考答案 第一章:参考答案 1.传统的商务与现代电子商务有什么区别? 参考答案:电子商务将传统商业活动中物流.资金流.信息流的传递方式利用网络科技整合,企业将重要的信息通过全球信息网(WWW).企业内部网(intr ...查看


  • javaWeb开发文献综述
  • 毕业设计(论文)文献综述 基于JAVA 的火车售票系统的设计 学生姓名 周誉 学 号 [1**********]5 指导教师 柳斌 何剑锋 职称 副教授 专 业 软件工程 二零一五年六月 摘要: 随着我国人口的增长及社会的飞速发展,窗口售票 ...查看


热门内容