计算机专业毕业设计论文

更新时间:2024-06-13 07:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

汽车售后服务中心网上订购系统的实现

摘要

JSP技术是当前较为热门的Web开发技术。本文主要介绍了基于JSP技术的

电子商务动态网站,主要功能是实现客户端和服务器端的动态交互。共分为五个模块:客户登录模块、商品信息模块、客户信息模块、订单处理模块、技术论坛模块。具体功能的实现利用JavaBeans组件技术,Servlet 技术,JDBC与数据库技术。本文从电子商务的概况说起,就当前最热门的动态网站开发工具JSP、ASP、PHP从技术上进行了分析和比较,肯定了JSP在构建动态网站中的优势,对JSP的基本工作原理以及一些主要技术作了说明。接着主要介绍了基于JSP技术的电子商务动态网站具体设计及实现。最后对本次毕业设计做出了总结。

关键词:电子商务;动态网站;JSP;JavaBean;JDBC

Purchasing System on Internet of Automobile After-sale

Service

Abstract:

JSP is a quite popular technology in website developing. This paper introduces the construction of an e-commerce website based on JSP,of which the main function is to realize the interaction between client end and server end. Its functional modules include client login checking 、merchandize information、clients information and order processing technology forum. Some related technologies such as JavaBean 、Servlet 、JDBC、ODBC are used in the developing of this system. Starting with brief introduction of e-commerce ,this paper makes comparison among the most technologies in construction dynamic website –JSP、ASP、PHP, and affirms the advantage of JSP, then makes illustration of the working principle of JSP and its related technologies .It is given in this paper the detailed procedure of design and implementation of a website based on JSP. In the end I make a summery of the graduation design.

Keywords: E-commerce; Dynamic websites; JSP; JavaBean; JDBC

1 绪 论

近年来,随着Internet的迅速崛起,互联网已日益进入人们工作与学习的各个方面。电子商务打破了传统的―推销员满天飞‖,―采购员遍地跑‖,“说破了嘴,跑断了腿‖的商务活动,给人们的生活与消费带来了极大的便利。

该系统是一个网上订购系统,它是电子商务应用三种类型中的B-B模式,即企业与企业之间的电子商务。我们的目的不仅是客户能够便捷地和企业进行商务来往,即通过登录我们的网站能够进行商品的查看、购买,客户自身信息的修改以及订单的创建修改,而且还要对企业内部提供一种方便实用的操作平台。 该系统是建立在一个汽车配件管理系统之中的,所以说它就是企业面向客户的一个窗口。通过这个窗口,客户能够呆在原地就达到采购的目的,它能够为客户节省大量时间与金钱上的开支.这样就更加体现了“顾客就是上帝‖、―一切为顾客着想‖的商业宗旨。

目前,商务网站的应用以其独有的优越性,越来越多的影响着我们的生活,并且对传统的商业形式造成了很大的冲击。动态网站技术便是这一发展的重要的技术依托。国际上比较流行的动态网站技术有ASP、JSP、PHP等,而JSP已经成为开发Web动态网站的重要而快速、有效的工具,它是全新的网络服务器端技术。

该系统是一个电子商务网站,但又不同于一般的电子商务网站。因为并不是所有的网络用户都能进入我们的网站,进入该系统的客户必须是被授权的合法用户。所以它的功能相对来说简单一些。另外,在界面设计方面,由于没有专业的美工人员,在页面上相对来说比较简单,没有体现一定的艺术美感。但我们将会本着功能与界面的最大统一,以及易于维护性的指导思想,来创建出一个让客户与我们都满意的电子商务网站。

2电子商务概述

2.1 什么叫电子商务

电子商务(Electronic Commerce)是在Internet开放的网络环境下,基于浏览器/服务器应用方式,实现消费者的网上购物、商户之间的网上交易和在线电子支付的一种新型的商业运营模式。 Internet上的电子商务可以分为三个方面:信息服务、交易和支付。

2.2 电子商务的组成

在电子商务的运作过程中涉及到企业或个人的消费者、网上的商业机构、CA认证中心、物流配送体系和银行。它们通过Internet网络连接在一起。形式如图2.1所示。

图2.1 电子商务的组成

2.3 电子商务应用的三种类型

2.3.1 企业内部电子商务

即企业内部之间,通过企业内部网(Intranet)的方式处理与交换商贸信息。企业内部网(Intranet)是一种有效的商务工具,通过防火墙,企业将自己的内部网与Internet隔离,它可以用来自动处理商务操作及工作流,增强对重要系统

和关键数据的存取,共享经验,共同解决客户问题,并保持组织间的联系。 通过企业内部的电子商务,可以给企业带来如下好处:增加商务活动处理的敏捷性,对市场状况能更快的做出反应,能更好地为客户提供服务。

2.3.2 企业间的电子商务(简称为B-B模式)

即企业与企业(Business-Business)之间,通过INTERNET或专用网方式进行电子商务活动。 企业间的电子商务是电子商务三种模式中最值得关注和探讨的,因为它最具有发展的潜力。据IDG公司1997年9月的统计,1997年全球在INTERNET网上进行的电子商务金额为100亿美元,其中企业间的商务活动占其中的79%。Forrester研究公司预计企业间的商务活动将以三倍于企业与个人间电子商务的速度发展。这是因为,在现实物理世界中,企业间的商务贸易额是消费者直接购买的10倍。

2.3.3 企业与消费者之间的电子商务(简称为B-C模式)

即企业通过INTERNET为消费者提供一个新型的购物环境--网上商店,消费者通过网络在网上购物、在网上支付。由于这种模式节省了客户和企业双方的时间和空间,大大提高了交易效率,节省了不必要的开支,因此网上购物将成为电子商务的一个最热闹的话题。

3 JSP技术

3.1 动态网页技术简介

使用不同技术编写的动态页面保存在WEB服务器内,当客户端用户向WEB

服务器发出访问动态页面的请求时,WEB服务器将根据用户所访问页面的后缀名确定该页面所使用的网络编程技术,然后把该页面提交给相应的解释引擎;解释引擎扫描整个页面找到特定的定界符,并执行位于定界符内的脚本代码以实现不同的功能,如访问数据库,发送电子邮件,执行算术或逻辑运算等,最后把执行结果返回WEB服务器;最终,WEB服务器把解释引擎的执行结果连同页面上的HTML内容以及各种客户端脚本一同传送到客户端。虽然,客户端用户所接收到的页面与传统页面并没有任何区别,但是,实际上页面内容已经经过了服务端处理,完成了动态的个性化设臵。

3.2 动态网页技术的特点

所谓―动态‖,并不是指那几个放在网页上的GIF动态图片,人们一般认为动态页面技术有以下几个特点:

(1)―交互性‖:即网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大势所趋。

(2)―自动更新‖:即无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量。

(3)―因时因人而变‖:即当不同的时间、不同的人访问同一网址时会产生不同的页面。

3.3 流行动态网页技术比较

目前主流的动态网页技术有JSP、ASP、PHP ,这几种技术各有特点了,现在分别介绍如下:

3.3.1 ASP

ASP是Microsoft Active Server Pages简称,它是一套微软开发的服务器端脚本环境,ASP内含于IIS 3.0 (Internet Information Server)及其以上版本中。通过ASP指令和ActiveX组件我们可以应用DHTML建立动态的交互的高效的 WEB 服务器应用程序。有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行的,包括所有嵌套在普通HTML

中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。所以ASP具有简单易学,安装方便,开发工具强大而多样,效率高的强势;但ASP同时也具有很多的缺点,可以说明如下:

(1) Windows本身的所有问题都会一成不变地累加到它的身上。

(2) ASP由于使用了COM组件,所以它会变得十分强大,但是这样的强大由于Windows NT系统最初的设计问题而会引发大量的安全问题。只要在这样的组件或是操作中稍不注意,外部攻击就可以取得相当高的权限而导致网站瘫痪或是数据丢失。

(3) ASP还是一种Script语言,所以除了大量使用组件外,没有别的办法提高其工作效率。它必须面对即时编译的时间考验。 (4) 无法实现 跨操作系统的应用。

(5) 无法完全实现企业级的功能 :完全的集群、负载均衡。

3.3.2 PHP

PHP----Hypertext Preprocessor(超文本预处理器),是一种易于学习和使用的服务器端脚本语言,是生成动态网页的工具之一。它是嵌入HTML文件的一种脚本语言。七语法大部分是从C,JAVA,PERL语言中借来,并形成了自己的独有风格;目标是让WEB程序员快速的开发出动态的网页。PHP是完全免费的,可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。与ASP、JSP一样,PHP也可以结合HTML语言共同使用;它与HTML语言具有非常好的兼容性,使用者可以直接在脚本代码中加入HTML标签,或者在HTML标签中加入脚本代码从而更好的实现页面控制,提供更加丰富的功能。 PHP的优点有:

(1) 它是一种能快速学习、跨平台、有良好数据库交互能力的开发语言。 (2) 与Apache及其它扩展库结合紧密。PHP与Apache可以以静态编译的方式结合起来,而与其他的扩展库也可以用这样的方式结合。 (3) 好的安全性。 PHP的缺点有:

(1) 数据库支持的极大变化。 (2) 安装复杂。

(3) 缺少正规的商业支持。 (4) 无法实现商品化应用的开发。

3.3.3 JSP

JSP(Java Server Pages)是由Sun Microsystem公司于1999/6推出的新技术,是基于Java Servlet以及整个Java体系的Web开发技术。JSP页面是由HTML代码和嵌入其中的Java代码所组成.服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器.。利用这一技术可以建立先进、安全和跨平台的动态网站。 JSP的优点:

(1) 一次编写,到处运行。

(2) 系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。

(3) 从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理、消息处理,一台服务器到无数台服务器,Java显示了一下巨大的生命力。 (4) 多样化和功能强大的开发工具支持。 JSP的缺点:

(1) 正是由于跨平台的功能,为了极度的伸缩能力,所以极大地增加了产品的复杂性。

(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比用户数量来说 是“最低性能价格比。

以上3种技术,皆在制作动态网页上各显神通。尤其是基于强大的Java语言的JSP技术,具有良好的伸缩性,与JavaEnterprise API紧密地集成在一起,在网络数据库应用开发领域具有得天独厚的优势,基于Java平台构建网络程序已经被越来越多的人认为是最有发展前途的技术。

3.4 JSP动态网页生成的技术原理

JSP(Java Server Pages)是由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,他在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段和JSP标记,就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送E-mail等,这就是建立动态网站时经常需要的功能。

JSP是面向服务器的,因此支持任何浏览器,其工作方式如图3.1所示。当Web服务器和JSP引擎遇到访问JSP网页的请求时,JSP引擎将请求对象发送给

服务器端的相关组件,比如JavaBean TM组件、Servlet或EJB等,然后由服务器端组件处理这些请示,可能需要从数据库或数据存储中检索信息,然后服务器端组件再将响应对象返回JSP引擎。JSP引擎将响应对象传递给JSP页面,根据JSP页面的HTML格式完成数据编排,最后Web服务器和JSP引擎将格式化后的JSP页面以HTML格式返回客户浏览器。这就是当前网站构造中广泛采用的浏览器—Web服务器—后台数据库的三层架构模式。因JSP所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果。

图3.1 JSP网页工作基本原理

3.5 JSP动态网页技术的特点

(1) 将内容的生成和显示分离。

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终的页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Bean中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。 (2) 生成可重用的组件。

绝大多数JSP页面依赖于可重用的、跨平台的组件来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。 (3) 用标识简化页面开发。

Web页面开发人员不一定都是熟悉脚本语言的编程人员。JSP技术封装了许多功能,这些功能是在易用的、与JSP技术相关的XML标识中进行动态内容生成时所需要的。

(4) JSP能提供所有的Servlet功能。 (5) 健壮的存储管理和安全性。

由于JSP页面的内臵脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有JAVA技术的所有优点,包括健壮的存储管理和安全性。 (6) 一次编写,随处运行。 (7) JSP的平台适应性更广。

这是JSP比ASP的优越之处。几乎所有的平台都支持Java、JSP+JavaBeans, 它们可以在任何平台下通行无阻。

3.6 JavaBeans在JSP中的应用

3.6.1 JavaBeans

它是一个可重复使用的软件部件,该部件可以用来生成其进行可视化处理的组件。一个组件即Java应用程序或Applet的可重复使用的部件就是一个Bean。JavaBean传统的应用在于可视化领域,如ATM(窗口抽象工具集)下的应用。现在,JavaBean更多的应用在不可视化领域,它在服务器端应用方面表现出了越来越强的生命力。它们同样使用属性和事件。不可视化的JavaBean在JSP程序中常用封装事务逻辑、数据库操作等,可以很好地实现业务逻辑和前台程序的分离,使得系统具有更好得健壮性和灵活性。

3.6.2 JavaBean的特点

(1) 可以实现代码的重复利用。 (2) 易维护性、易使用性、易编写。

(3) 可以在支持Java的任何平台上工作,而不需要重新编译。 (4) 可以在内部、网内或者是网络之间进行传输。 (5) 可以以其他部件的模式进行工作。

3.6.3 JavaBean的属性

属性是Bean组件内部状态的抽象表示。JavaBean的属性可以分为以下四类:

(1) Simple简单的:它依赖于标准命名来定义getXXX() 方法和setXXX()方法。

(2) Indexed索引的:允许读取和设臵整个数组的值,也允许使用数组索引单独地读取和设臵数组元素。

(3) Bound 绑定的:其值发生变化时要广播经属性变化监听器的属性。 (4) Constrained约束的:那些值发生改变及起作用之前,必须由约束属性变化监听器生效的属性。

3.7 在JSP开发中使用数据库

3.7.1 JDBC技术工作原理

JDBC是Java数据库连接(Java Data Base Connectivity)技术的简称,是为各种常用数据库提供无缝连接的技术。JDBC向应用程序开发者提供了独立于数据库的统一的API,这个API提供了编写的标准和考虑不同应用程序设计的标准。其奥秘是一组由驱动程序实现的Java接口。驱动负责标准JDBC调用向支持的数据库所要的具体转变。JDBC API中有两层接口:应用程序层,开发人员用API通过SQL调用数据库和取得结果;驱动程序层,处理与具体驱动程序版本的所有通信。

3.7.2 JDBC四种类型的驱动

(1) JDBC-ODBC Bridge

它为Java应用程序提供了一种把JDBC 调用映射为ODBC调用的方法。因此,需要在客户端机器上安装一个ODBC驱动。 (2) JDBC Native Bridge

它提供了一个建筑在本地数据库驱动上的JDBC接口。 (3) JDBC –Network Bridge

它不需要客户端的数据库驱动,而是使用网络-服务器中层来访问一个数据库。 (4) pure Java JDBC drive

纯Java驱动运行在客户端,并且直接访问数据库,因此运行这个模式要使用一个两个层的体系。

3.7.3 JDBC对数据库记录访问的实现

JDBC有一个非常独特的动态连接结构,它使得系统模块化。使用JDBC来完成对数据库的访问包括以下四个主要组件:Java的应用程序、JDBC驱动管理器、驱动器和数据源。JDBC实现访问数据库记录步骤 (1) 通过驱动器管理器获取连接接口。 (2) 获得Statement或它的子类。 (3) 限制Statement中的参数。 (4) 执行Statement。

(5) 查看返回的行数是否超出范围。 (6) 关闭Statement。 (7) 处理其他的Statement. (8) 关闭连接接口。

4 系统具体设计

4.1 总体设计思路

该网站是一个网上订购系统,可分为面向用户的前台页面和面向管理员的后台页面。对于用户而言,它主要实现的功能有用户的登录与相关信息的修改,商品的购买与查看以及订单的相关内容,还有用于客户与客户之间、客户与企业之间交流的技术论坛。对于管理员而言,他主要实现的功能为对用户、商品以及订单进行相关的处理。所以对网站的总体设计我们追求的是功能的最大满足与界面的最佳友好。对于不同的使用者我们的侧重点也有所不同。

界面设计思路:美观、大方、实用。

就页面布局来说,采用“匡”形结构。色调主要采用浅黄浅绿相间,主要辅助颜色为白色。页面导航按钮的设计上也是简单明了。整个网站风格统一,一气呵成。只在页面左边的相应的板块标志图片或其他文字提示上有所区别。对于功能的满足来说,给用户一个易于接受的形式来表达。我们以一个条形菜单的形式列出系统所要实现的主要功能,并且标以类别,比如有订单处理、客户信息、产品,然后在大功能的下面在分别标有各自的小功能.以达到给人一种一目了然的感觉。

后台设计思路:自然、通俗、丰富。

考虑到网站的管理和维护人员的实际操作能力,一个通俗的后台管理界面的设计是很有必要的。整个网站要便于维护。维护人员和开发人员能否很好地实现分工很大程度上依赖于后台管理程序设计的水平。实际上,一个优秀的后台程序设计是很有必要的,很多网站却忽略了这一点。

4.2 网站开发语言及其环境配臵

4.2.1 语言选择

本系统的设计采用JSP产生一系列高效的交互式WEB应用程序。JSP技术使用的设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力,这是传统的CGI等程序所远远不及的地方。JSP中的命令和Script语句都是由服务器来解释执行的,执行结果产生动态生成的Web页面并送到浏览器。

由于JSP是在服务器端解释执行,所以运行该电子商务网站不必考虑浏览器是否支持JSP;同时由于它在服务器端执行,用户也不必担心别人下载程序从而窃取编程逻辑。

数据库选用Microsoft SQL Server 2000作为网站后台数据库。

4.2.2 运行环境

本系统运行环境如下: 1. 服务器环境:

* 编译环境 JDK1.4.1

* 后台数据库 Microsoft SQL Server 2000 * WEB服务器 Tomcat 5.0 * Microsoft ODBC32

* 系统平台 Windows 2000 Server Professional 2. 用户端环境:

* Windows 98 /2000/xp/2003 * 浏览器为IE5.0以上

4.2.3 Web服务器配臵

(1) 下载并安装JDK1.4.1 (2) JDK环境配臵

* 打开我的电脑-属性-环境变量-用户变量-新建 在变量名中输入 CLASS

在变量值中输入 D:\\JDK141\\BIN * 重复新建

在变量名中输入 CLASSPATH

在变量值中输入 D:\\JDK141\\LIB\\TOOL.JAR * 重复新建

在变量名中输入 JAVA_HOME 在变量值中输入 D:\\JDK141 (3) 下载并安装Tomcat 5.0以上

(4) 将我的文件夹store复制到Tomcat\\webapps目录下。

(5) 运行Tomcat Administration ,在左侧的菜单栏中选取service,然后点击其下面的context,右边区域右下角的下拉框里选取create new context,在doc输入下输入store,在directory中输入/store,点击下面的‖保存‖,点击上面的commit changes。

4.2.4 SQL Server 服务器配臵

(1)在服务器上将所给的数据库文件STORE_Data STORE_log复制到硬盘某一目录下。

(2)一台有客户端的电脑(若服务器装了客户端也行)上打开SQL Server 企业管理器,在目录树中选择新建registration ;找到目录所有的SQL Serve 服务器,选择刚才数据库所在的服务器,输入管理员名称和密码,即可连上服务器。在选择的数据库(我用的是Server4)上右击选择所有任务—— 附加数据库 ,找到刚才复制的文件,选择确定,完成数据库的装载。

(3)建立有登录和用户名

? 在Server4下选择安全—— 登录—— 左边右击 ——新建登录—— 输入 登录名,如BJ2020,输入口令,设臵默认数据库为store。

? 在store数据库中选择用户,若存在用户如ah1023,但他没有登录名,则将其删除,然后新建用户,设臵其角色为服务站。

4.2.5 数据源的建立

如果涉及到数据库,则还要建立数据源。方法是:开始——设臵——控制面板——管理工具——数据源(ODBC),这时会出现ODBC数据源管理器,在 System DSN中点击“添加”按钮,出现创建数据源页面,选择你所需要的数据源(我用的是SQL Server,因此我选择的是SQL Server),选择完成后出现ODBC Microsoft SQL Server安装界面,选择你的数据库所在的服务器,为你的数据源起名(应与程序中连接数据库的数据源名相同),然后选择你的数据库,使用管理员授权的名称登录,完成后单击“确定”,这时在数据源管理器中会出现你所建立的数据源,然后进行测试,如果测试结果成功,则说明数据源建立成功。

当一切准备完成后,打开服务器,等服务器启动成功后在浏览器中输入http://localhost:8080/store/login.htm,就可以登录该网站了。

4.2.6 建立数据库表和视图

对于这个站点,因为是汽车配件管理系统对外的一个窗口,所以不需要建立其它主要的数据库表,只需建立技术论坛所涉及的两个表topic、reply即可。该模块可以看作是与汽车配件管理系统不相关的一个独立的模块。所建的数据库表如下所示:

(1) 用于发布帖子的表

表4.1 topic表

名称 数据类型 大小 空 默认值 id int 4

title nvarchar 50 √ author nvarchar 50 √ email nvarchar 50 √ content text 16 √

topicdate datetime 8 √ (getdate( ))

(2) 用于回复帖子的表

表4.2 reply 表

名称 数据类型 大小 空 默认值 id int 4

topicID int 4 √ title nvarchar 50 √ author nvarchar 50 √ email nvarchar 50 √ content text 16 √

topicdate datetime 8 √ (getdate( ))

为了便于查询、修改,我们建立了几个数据库视图,这样我们就可以很方便的在JSP程序中进行表中信息的筛选,所建视图如下所示: (1) 名称: partformyclient

功能: 获取用户所关心的零件信息,如零件号,零件名,零件的价格,零件的数量等.

CREATE VIEW dbo.partformyclient AS

SELECT dbo.partlistforclient.PartNo, dbo.partlistforclient.PartNameCh, dbo.partlistforclient.PartNameFr, dbo.partlistforclient.PHT, dbo.partlistforclient.prmtdiscnt, dbo.partlistforclient.discnt, dbo.StockNSales.Storage

FROM dbo.partlistforclient INNER JOIN

dbo.StockNSales ON dbo.partlistforclient.PartNo = dbo.StockNSales.PartNo

(2) 名称 :clientorderstatus1

功能:获取订单的执行状况,其中使用了自定义函数uf_CheckClientOrderStatus 结果分为:“未处理”,“未处理完”,“处理完毕” CREATE VIEW dbo.clientorderstatus1 AS

SELECT OrderNo,

'OrderType' = CASE WHEN OrderType = 3 THEN '紧急订购' WHEN ordertype

= 4 THEN '库存订购'

ELSE '其他订购' END, ClientCode, DateReceipt, DateProcess,

Empname, Note,

dbo.uf_CheckClientOrderStatus(OrderNo) AS status

FROM dbo.ClientOrders LEFT OUTER JOIN

employees ON dbo.clientorders.respempid = dbo.employees.employeeid

(3) 名称:ClientOrderstatus

功能 :用于客户检索其订单的执行情况 分两种情况:

1.已经发运的零件:

2.订单的零件尚没有发运;

CREATE VIEW dbo.ClientOrderstatus AS

SELECT dbo.ClientOrders.OrderNo, dbo.ClientOrderDetails.PartNo,dbo.Parts.PartNameCh, --已经发运的项目

dbo.ClientOrderDetails.Qty, dbo.OutStockDetails.Qty AS QtyServed,

dbo.OutStock.OutStockNo, dbo.OutStock.OutStockDate, dbo.Invoices.InvoiceNo

FROM dbo.OutStock LEFT OUTER JOIN dbo.Invoices ON

dbo.OutStock.OutStockNo = dbo.Invoices.OutStockNo RIGHT OUTER JOIN dbo.ClientOrders INNER JOIN dbo.ClientOrderDetails ON

dbo.ClientOrders.OrderNo = dbo.ClientOrderDetails.OrderNo ON dbo.OutStock.OrderNO = dbo.ClientOrders.OrderNo INNER JOIN dbo.OutStockDetails ON

dbo.ClientOrderDetails.PartNo = dbo.OutStockDetails.PartNo AND

dbo.OutStock.OutStockNo = dbo.OutStockDetails.OutStockNo INNER JOIN dbo.Parts ON dbo.ClientOrderDetails.PartNo = dbo.Parts.PartNo AND dbo.OutStockDetails.PartNo = dbo.Parts.PartNo

UNION --没有出库的订购单项目 SELECT OrderNo, dbo.ClientOrderDetails.PartNo,dbo.Parts.PartNameCh, Qty, 0 AS Expr1, NULL AS Expr2, NULL AS Expr3, NULL AS Expr4

FROM dbo.ClientOrderDetails inner join dbo.parts on dbo.clientOrderDetails.partno=dbo.parts.partno WHERE (NOT EXISTS

(SELECT * FROM outstock, outstockdetails

WHERE outstock.outstockno = outstockdetails.outstockno AND outstockdetails.partno = clientorderdetails.partno AND clientorderdetails.orderno = outstock.orderno)) (4) 名称:promotionlist

功能:促销商品的信息:包括零件号、零件名称、价格、起止日期、折扣率。

CREATE VIEW dbo.promotionlist AS

SELECT dbo.Parts.PartNo, dbo.Parts.PartNameCh, dbo.Parts.PHT, dbo.Promotion.EndPromotion, dbo.Promotion.DiscountPromotion, dbo.ClientType.Discount,

ROUND(dbo.Parts.PHT * ((1 - dbo.ClientType.Discount / 100.0) - dbo.Promotion.DiscountPromotion / 100.0), 2) AS price,

ROUND(dbo.Parts.PHT * dbo.Promotion.DiscountPromotion / 100.0, 2) AS favor FROM dbo.Parts INNER JOIN dbo.Promotion ON

dbo.Parts.CodePromotion = dbo.Promotion.CodePromotion CROSS JOIN dbo.ClientType

WHERE (dbo.Promotion.EndPromotion >= GETDATE()) AND

(dbo.ClientType.OrderTypeCode = 3) (5) 名称:dbo.ordermod

功能 :用于显示所需更改的订单的信息,而允许用户更改的只有订购的数量及备注。

CREATE VIEW dbo.ordermod AS

SELECT dbo.ClientOrderDetails.OrderNo, dbo.ClientOrderDetails.PartNo,

dbo.Parts.PartNameCh, dbo.ClientOrderDetails.Qty, dbo.ClientOrderDetails.Note FROM dbo.ClientOrderDetails INNER JOIN

dbo.Parts ON dbo.ClientOrderDetails.PartNo = dbo.Parts.PartNo

4.3 网站功能模块设计

4.3.1 面向客户的前台管理

4.3.1.1 主页面功能

该页面主要是面对客户,所以它实现了用户系统、商品系统、用户订单系统三大模块。给客户一个清晰的界面,使客户需求很方便的得到满足,达到网上订购的目的。

主页面功能关系如图4.1所示:

图4.1 主页面功能

4.3.1.2 用户登录系统

该模块是进入系统的门户,它的主要功能是使我们的客户能够进入该网站。该客户必须是数据库授权的合法用户,他的角色一般是服务站.然后进行所需的操作,比如订购,查看并更改一些信息。对数据库所进行的主要操作是验证用户是否为合法的用户,即是否是被授权的用户。用户登录执行流程如图4.2所示:

图4.2 登录执行流程

4.3.1.3 产品系统 (1) 产品信息

该模块能够实现用户对所需产品的查询。其查询方式有两种,根据零件名或零件号。这样就可以在很短的时间内使用户得到所要的信息。这一功能是一般的电子商务网站所必备的功能之一。数据库的操作为对视图partformyclient进行条件查询。实际上就是执行了相应的SQL语句,然后把结果以表单的方式返回给用户。查询执行流程如下所示:

图4.3 查询执行流程

(2) 特价产品

该模块功能是显示特价产品,即打了折扣的产品。当用户选择此项功能时执行的操作是:首先进行用户的身份验证.若为我们的合法用户,则进行视图查询,结果显示出所查到的特价产品,否则不显示信息。对数据库视图promotionlist的查询语句如下所示:

sql = \,partnamech,pht,discount,discountpromotion,price,favor, endpromotion from promotionlist\(3) 供货状况

该模块的功能是显示所有的产品信息。当然它并不只是数据库中一个零件表parts的信息,它还需产品的库存情况,所以构造了一个视图partformyclient.该视图用来显示用户所关心的产品信息:零件号、零件中文名、零件德文名、价格、特价折扣、普通折扣、库存量。在实际操作中可能有几千几万条记录需要显示,而一页根本是无法完成任务的,这里我们就采用了分页显示,这样就可以一页一页的看完所有的产品信息。并且在每一页中都显示总共有多少条记录,当前显示的是第几页。这一技术在后面还要进行详细的介绍。 4.3.1.4 订单处理 (1) 新建订单

模块功能是实现上网上订购目的.如果客户决定购买我们的产品,就可进入该系统,根据提示输入零件号、订购数量、备注,然后单击落‖加入‖按钮,即可生成订单的一项条目。重复此操作,直到选择完一张订单所需的所有产品为止.然后进行订单类型的选择,有库存订购和紧急订购两种类型.最后会自动显示出订单的总费用。此刻如果点击‖发送‖按钮,一个真正意义上的订单便会在后台数据库中生成了,如果在发送订单之前客户想对订单进行重写改动便可单击全部重写按钮。其执行的流程如下所示:

图4.4 新建订单执行流程

(2) 订单查询

模块功能是根据客户登录的名称,把与该客户有关的订单全部显示出来,在实际的操作中.每一天一个客户不可能生成很多的订单,所以在这里没有进行分页显示。对数据库视图clientorderstatus1的操作的SQL语句如下:

select orderno,ordertype,datereceipt,dateprocess,empname ,status from clientorderstatus1 where

clientcode='\desc\

(3)订单更改

在实际的应用中,当订单没有处理时,客户可以对其进行一些操作。该模块功能为对未处理的订单进行更改或删除。首先显示出客户未处理的所有订单的信息,在每一个订单的后面分别有两个操作链接,一个为订单的删除,一个为订单的更改。删除即是从数据库中删去所选订单的相关记录,因为订单信息涉及两个数据库表clientorderdetails , clientorders 所以我们要分别对这两个表进行删除,这样才是一个完整的操作。当正确删除之后,页面将显示删除成功的信息。其数据库操作为:

delete from clientorderdetails where orderno=\delete from clientorders where orderno=\

更改操作将转入更改页面,此时便可在相应的框中输入信息,就可对订单进行更改。修改完毕单击‖提交‖按钮,便可把更改后的信息发送到数据库的表中,对有关订单信息的表进行更新.。因为客户所能修改的订单信息只能是订购的数量和订单备注,所以只需传递两个参数,有关订单的其它信息便会直接显示输出。当后台更新成功,页面便会出现修改成功信息。其数据库操作的SQL语句为:

UPDATE clientorderdetails SET qty=\(4)付款查询

该模块为客户提供查询付款的功能,点击此项便会显示客户发出订单之后,是否交付付款以及付款是否收到。 4.3.1.5 客户信息 (1) 信息查阅

该模块为客户提供查阅自身信息的功能,在实际的应用中,要涉及到一些商业机密,所以每个客户只能查阅自己的信息.单击此项便会显示客户的详细信息。其执行过程为:首先判断客户是否有合法的身份,然后对数据库clients进行信息的选择,其SQL查询语句如下所示:

select ClientCode,namebrief,nameclient,addressclient,cityclient,provinceclient,poboxclient,zipclient, contactclient,telcode,telclient1,telclient2,faxclient,rateclient ,discountvip ,datecontract from clients where loginname='\(2) 信息修改

由于时间地点的改变,客户的信息也会发生改变,这就需要对客户信息进行及时的更新,该模块便提供此项功能。客户不必通过其它繁琐方式通知我们,只要进入该页面,相应输入最新的信息,单击‖提交‖,便可对该客户的信息进行修改.其数据库执行语句如下所示:

select nameclient,addressclient,cityclient,provinceclient,poboxclient,zipclient, contactclient,telcode,telclient1,telclient2,faxclient, managerclient from clients where loginname='\

UPDATE CLIENTS SET nameclient='\,

addressclient='\,cityclient='\,

provinceclient='\,poboxclient='\,zipclient='\,managerclient='\,contactclient='\,telcode='\,telclient1='\,telclient2='\,faxclient='\loginname='\

为了尽可能的减少客户的输入,客户的信息首先被提取显示出来,然后客户只需在要修改的地方填入相关内容,没有变动的信息可继续保持。所以这里有两个SQL操作,一个用于查询,一个用于修改。 (3) 更改密码

为了保证客户信息的安全性,客户可能需要对自己的登录密码进行修改。该模块便为客户提供此项功能.进入页面,输入旧密码,进行身份验证,然后再输入新密码 ,单击‖更改‖便可达到目的.更改之后便会出现相应的提示信息,以通知客户修改成功与否。 4.3.1.6 技术论坛 (1)发表新贴

对于产品的使用、维护以及其他方面,客户可能有许多不明白的地方。那么本模块便可以解决这些问题,并且它还可以方便客户之间的交流。登录的客户只需要在发言的框子里填入信息,然后单击落“张贴”即可。对于后台执行来说,就是对数据库表topic进行记录的追加,其SQL语句如下所示:

insert into topic(title,author,email,content) Values('\(2)回复帖子

对于客户提出的问题,针对不同的对象可以进行回复,以便于问题的解决,信息的交流。在每个帖子下面有相应的回复链接,只要单击“回复”,进入该页面,然后填写要回复的内容就可以了。对于后台执行来说,即是对数据库表reply追加记录,其SQL语句如下所示:

insert into reply(topicID,title,author,email,content) Values('\(3)查看帖子

当进入技术论坛主页,被发表的一些帖子的简要信息将展示在客户眼前。对于客户所感兴趣的标题,可以双击落进入详细内容的查看。显示的信息既有发表的帖子,也有针对该帖子的回复信息。如果是该客户本人的帖子,他还可以进行修改与删除等操作。因为涉及到两个数据库表topic、reply,所以它的SQL操作有两条,如下所示

SELECT id,author,title,topicdate,content FROM topic where id=\SELECT id,author,title,topicdate,content FROM reply where topicID=\ 4.3.1.7 面向数据库的执行流程

以上介绍的页面功能都是以客户为对象的.对于程序来说,它们的实现即是对数据库执行相应的操作,可用以下流程图表示:

图4.5 面向数据库的执行流程

4.3.2 面向系统管理员的后台管理

该系统是汽车配件管理系统的一个部分,对于后台数据库的操作主要由汽

车配件管理系统实现.与本系统相关的后台管理主要实现三大功能模块:商品管理、订单管理、用户管理.通过这三大功能模块来对数据库进行操作。它们的功能现介绍如下: 4.3.2.1 商品管理 (1) 商品注册

进入页面填写商品信息,并对所填内容进行有效性验证,以使所填内容正确无误,就相当于一个企业的商品入库操作。对数据库表来说,则是对parts等表相应追加记录。

(2) 商品的查看、更改

显示数据库中所有商品的条目,然后可对每一条目进行查看或更改。对于数据库来说,在相关表中查找满足条件记录,通过SQL语句更新操作,查看则显示详细信息。 (3) 商品删除

显示系统的所有商品,然后对所要删除的商品点击‖删除‖,即先对数据库相关表查询所要删除记录,然后执行相应的删除语句。 4.3.2.2 订单管理

可以对订单进行三种类型的查询:未处理订单、处理订单、所有订单。执行的操作有删除和确认,确认即是把未处理的订单设为处理态。 4.3.2.3 用户管理

该管理模块的功能较为简单,即对客户进行注册或对客户信息进行查询.实质上是对数据库表clients进行相应的操作。

4.3.3 前台和后台管理实现方式

我们可以通过面向客户的主页进入后台管理界面,其具体实现方式是:登录成功,便可进入主页面中, 输入管理员的名称及密码进入管理系统。或系统管理员根据名称和密码直接进入基于C/S模式的汽车配件系统中进行后台操作。

4.4 系统功能页面展示

4.4.1 登录页面

它的主要功能是使客户进入这个网上订购系统,并且该客户必须是数据库授权的合法用户,他的角色一般是服务站.其页面如下所示:

图4.6 登录页面

4.4.2 系统功能页面

(1) 系统主页

显示系统主要功能菜单,当合法的客户进入系统,它所看到的页面如下:

图4.7 系统主页

(2)新建订单

通过填写订单相关信息新建一个订单,其页面如下所示:

图4.8 新建订单页面

(3)订单查询

客户可以查看自己的订单,其显示页面如下所示:

图4.9 订单查询页面

(4)订单更改

对没有处理的订单进行删除,更改操作,其页面如下所示:

图4.10订单更改主页面

具体更改页面如下所示:

图4.11 订单更改详细页面

(5)产品信息

实际上实现查找功能,输入关键字客户即可找到所需产品的详细信息,其页面如下所示:

图4.12 产品信息页面

(6) 供货状况

以分页的方式显示系统中所有商品的有关信息,其页面如下所示:

图4.13 供货状况页面

(7) 特价商品

显示促销的商品信息,其页面如下所示:

图4.14 特价商品页面

(8) 信息查询

用于显示客户的详细信息,其页面如下所示:

图4.15 客户信息查询页面

(9) 信息修改

用于修改客户的信息,其页面如下所示:

图4.16 客户信息修改页面

(10)

更改密码

用于更改客户的密码,其页面如下所示:

图4.17 客户密码更改页面

(11) 论坛首页

简要显示论坛的信息,即发布帖子的情况。其页面如下所示:

图4.18 技术论坛首页

(12)发表新帖

用于客户发布一些信息,其页面如下所示:

图4.19 发表新帖页面

(13) 详细查看

显示每一条选中帖子的详细内容,然后可以执行相关的操作。其页面如下所示:

图4.20查看详细帖子页面

(14)回复帖子

对主帖回复,来进行相关问题的回答。其页面如下所示:

图4.21 回复帖子页面

(15)回复成功

如果回复成功,则显示成功提示。页面如下所示:

图4.22 回复帖子成功页面

4.5 系统实现中JSP技术经典略列

4.5.1 内建对象的使用

JSP的内建对象有以下几种:request 、response、 out、 session 、pageContext 、

application、 config、 page。 在本系统中较为频繁的使用了request、session等,所以结合系统代码现进行分析如下:

request:该对象的主要方法有getParameter (string name),它的作用是获得客户端传送给服务器端的参数值,该参数是由name指定的。在更改密码的JSP文件中便使用了这个方法:

logname=request.getParameter(―usemame‖) realname=request.getParameter(―passward‖) passwd1=request.getParameter(―oldpsd‖) passwd2=request.getParameter(―newpsd‖) …………………………

4.5.2 JavaBeans

该系统中用到了一个Bean文件,用于验证登录者的身份。详细见附录代码。

4.5.3 分页技术

JSP的分页技术的应用是该系统的一个显著特点。系统在面向客户的页面功能中,其供货状况的显示采用了分页技术。下面就显示供货状况的全部列表对分页技术进行分析。

在特价商品的全部列表中,其实现分页的原理是这样的: ①首先,计算出满足条件的记录总数。

②然后,记录总数除以每页的显示个数。如果余数大于0,那么逻辑页数应该为商+1;如果余数为0,也就是说记录总数除以每页的显示个数,那么逻辑页数应为所得的商。

③最后,根据请求的页数与实际的逻辑页数之间的关系进行读取数据记录,当请求的页数值小于1时,就赋值经请求的页数为1;同样地,当请求的页数大于总的逻辑页数时,就赋值给请求的页数为总的逻辑页数值。每一页中实际读取的记录的数目应该是每页所显示的记录数。其JSP程序代码见附录。

5结论

一个电子商务系统典型的开发阶段应该包括:需求分析,概念设计,导航设计,系统实施和系统维护。对于需求分析,我们主要是在老师的带领下,对企业进行实地考查,熟悉他们的业务流程,为我们商务网站的建立构造出主要的功能模块。我们的重点便是网站的实施阶段。由于JSP基于强大的Java语言,具有极强的扩展能力,良好的收缩性,以及与平台无关的开发特性,JSP这种其他技术所不具备的优势,使我们毫不犹豫地选择了它作为我们的开发工具。并且在实际的开发过程中,我们也深刻地体会到了它的强大功能。比如在系统中JavaBean的使用,使代码得到最大的重用,并且对数据进行了封装,使系统便于维护。在系统登录文件中便使用了一个Bean.对于系统的维护,我们也设计了一些方案,但是由于该系统并未真正的应用于实际,所以这里就不在进行详细的介绍。 由于时间与技术上的原因,我们这个网上订购系统还有很多不足与有待于进一步完善的地方。比如页面的设计上过于简单,缺少相关产品图片信息的显示,没有一定的艺术美感。在数据库的连接上没有使用JavaBean.因为系统几乎各大功能模块的实现都要使用数据库。如果把数据库连接的操作全部封装在一个

JavaBean中,便可以使代码得到最大的重用,这一点也是系统的一个遗憾之处。另外还有一些功能没有实现,比如付款查询,由于只是对以后需求的一个设想,所以设臵了一个条目放在菜单当中,没有真正的实现 .在商品的搜索模块中,我们对商品仅仅分了两种搜索方式,但在实际的项目开发中,商品的搜索将会异常的复杂.对于该系统的安全性处理上,我们做得也很是不够,主要是依据Server SQL的安全控制来实现。所以,这个系统如果要应用于实际,还需要进一步的完善。

通过本系统的构建,我深刻体会了软件工程的一些思想与方法。了解了一个软件产品的开发是一个科学的、有计划、有步骤的过程,而且它不是一个一次即成的过程,它需要不断的检验与修正。我想这对于以后的工作与学习都是很有帮助的。

参考文献

[1] 黄浩文,黄静舒. JSP核心技术和电子商务应用实例[M]. 北京:机械工业出版

社,2001

[2] 黄理,曹林有,张勇. JSP深入编程[M]. 北京:北京希望电子出版社,2001 [3] 普悠玛数位科技. JSP动态网页新技术[M]. 北京:中国铁道出版社,2001 [4] 梁露. 电子商务网站建设与实例[M]. 北京:机械工业出版社,2003 [5] 摆渡人工作室. “金金”计较电子商务网站的设想与实现[M]. 北京:机械工业

出版社,2000

[6] 【美】Kevin Mukhar/Todd Lauinger/John Carnell. Java 数据库应用程序编程指

南[M].北京:电子工业出版社,2002

[7] 苏武荣.电子社区与数字化生活实务手册[M].北京:机械工业出版社,2003 [8] 赵林度. 实用电子商务概论[M]. 北京:人民邮电出版社,2004

[9] 周永钢,钟强,时瑞鹏. 电子商务基础. 北京:高等教育出版社,2001 [10] 刘军,季常煦. 电子商务系统的规划与设计[M]. 北京:人民邮电出版社,2002 [11] 潘郁. 电子商务数据库技术[M]. 北京:北京大学出版社,2002

[12]飞思科技产品研发中心编著. JSP应用开发详解[M]. 北京:电子工业出版社,2002

参考网站

[1] http://www.java-cn.com[OL]

[2] http://www.chinajavaworld.com[OL] [3] http://www.programfan.com[OL] [4] http://www.chinaBS.net [OL] [5] http://jakarta.apache.org[OL]

参考文献

[1] 黄浩文,黄静舒. JSP核心技术和电子商务应用实例[M]. 北京:机械工业出版

社,2001

[2] 黄理,曹林有,张勇. JSP深入编程[M]. 北京:北京希望电子出版社,2001 [3] 普悠玛数位科技. JSP动态网页新技术[M]. 北京:中国铁道出版社,2001 [4] 梁露. 电子商务网站建设与实例[M]. 北京:机械工业出版社,2003 [5] 摆渡人工作室. “金金”计较电子商务网站的设想与实现[M]. 北京:机械工业

出版社,2000

[6] 【美】Kevin Mukhar/Todd Lauinger/John Carnell. Java 数据库应用程序编程指

南[M].北京:电子工业出版社,2002

[7] 苏武荣.电子社区与数字化生活实务手册[M].北京:机械工业出版社,2003 [8] 赵林度. 实用电子商务概论[M]. 北京:人民邮电出版社,2004

[9] 周永钢,钟强,时瑞鹏. 电子商务基础. 北京:高等教育出版社,2001 [10] 刘军,季常煦. 电子商务系统的规划与设计[M]. 北京:人民邮电出版社,2002 [11] 潘郁. 电子商务数据库技术[M]. 北京:北京大学出版社,2002

[12]飞思科技产品研发中心编著. JSP应用开发详解[M]. 北京:电子工业出版社,2002

参考网站

[1] http://www.java-cn.com[OL]

[2] http://www.chinajavaworld.com[OL] [3] http://www.programfan.com[OL] [4] http://www.chinaBS.net [OL] [5] http://jakarta.apache.org[OL]

本文来源:https://www.bwwdw.com/article/xz66.html

Top