摘 要
如今互联网已经成为人们生活中不可或缺的工具, 在种类繁多的的Web应用中,基于Web的电子商务模式成为了购物生活的一种新时尚,广受人们追捧,越来越多的企业和商家开始利用Web技术开展电子商务活动。
本文介绍的基于Web的服装营销系统的设计及开发,即类属于此电子商务领域。通过调研企业需求完成需求分析,并采用JSP动态网页编程技术进行系统开发,目标是开发出一个功能比较完善的服装营销系统,以使服装企业通过使用该系统,能够方便、高效地在网上开展电子商务活动。在市场竞争激烈的今天,能够助企业一臂之力。
关键字:基于Web,JSP,服装营销系统
I
ABSTRACT
ABSTRACT
Now the Internet has become an indispensable tool in people's life, in various kinds of Web based on Web, the application of e-commerce shopping life has become a new fashion, popular with people, more and more enterprises and companies began to use Web technology to develop e-business activities.
This thesis based on Web marketing system of the garment design and development, which belongs to the field of electronic commerce. Through the investigation and analysis, the enterprise needs finish demand and the JSP page dynamic programming techniques, the goal is to develop systems developed a function of perfecting marketing system, in order to make clothing apparel enterprises by using this system, convenient and efficient in Internet e-commerce activities. Intense competition in the market today, can help enterprises. Key words: based on Web, JSP, clothing, marketing system
II
目录
目录
第1章 引言........................................................................................................ 1
1.1项目开发背景.......................................................................................... 1 1.2项目开发目标.......................................................................................... 2 1.3项目实际意义.......................................................................................... 2 1.4研究现状.................................................................................................. 3 第2章 项目开发工具及运行环境...................................................................... 4
2.1 JSP原理简介.......................................................................................... 4
2.1.1 JSP原理介绍................................................................................ 4 2.1.2 JSP程序开发设计模式................................................................ 4 2.2项目开发工具.......................................................................................... 5
2.2.1几种常用的JSP开发工具........................................................... 6 2.2.2本项目使用的JSP开发工具....................................................... 7 2.3项目运行环境.......................................................................................... 7
2.3.1硬件环境....................................................................................... 7 2.3.2软件环境....................................................................................... 8 2.3.3软件环境的安装与配置............................................................... 9
第3章 基于WEB的服装营销系统的需求分析 ............................................. 11
3.1 系统功能需求分析............................................................................... 11
3.1.1用户管理模块功能需求分析..................................................... 11 3.1.2 商品展示系列模块需求分析.................................................... 12 3.1.3 购物车模块功能需求分析........................................................ 13 3.1.4 订单管理模块功能需求分析.................................................... 14 3.1.5 商品搜索模块功能需求分析.................................................... 14 3.1.6 公告管理模块功能需求分析.................................................... 15
第4章 基于WEB服装营销系统的总体设计 ................................................. 16
4.1项目规划................................................................................................ 16 4.2系统功能结构图设计............................................................................ 16 4.3 数据库设计........................................................................................... 17
4.3.1 tb_member表............................................................................. 17 4.3.2 tb_superType表........................................................................ 18 4.3.3 tb_subType表........................................................................... 18
III
目录
4.3.4 tb_order_detail表................................................................. 18 4.3.5 tb_order表................................................................................ 18 4.3.6 tb_rebate表.............................................................................. 19 4.3.7 tb_manager表............................................................................ 19 4.3.8 tb_goods表................................................................................ 19 4.3.9 tb_BBS表................................................................................... 20 4.4 软件体系结构设计............................................................................... 20 第5章 基于WEB的服装营销系统详细设计 ................................................. 22
5.1网页前台功能模块设计........................................................................ 22
5.1.1会员登录注册模块设计............................................................. 22 5.1.2商品展示模块............................................................................. 23 5.1.3购物车模块................................................................................. 24 5.1.4用户收银台订单模块设计:..................................................... 25 5.2系统后台管理系统设计........................................................................ 26
5.2.1后台登录模块设计..................................................................... 26 5.2.2商品管理模块设计..................................................................... 26 5.2.3会员管理模块设计..................................................................... 27 5.2.4管理员订单管理模块设计......................................................... 27 5.2.5公告管理模块设计..................................................................... 28
第6章 基于WEB的服装营销系统的实现 ..................................................... 29
6.1 JavaBean的编写.................................................................................. 29
6.1.1数据库操作的JavaBean............................................................ 29 6.1.2 字符串处理的JavaBean的编写.............................................. 31 6.1.3商品JavaBean的编写............................................................... 31 6.1.4保存购物信息的JavaBean的编写........................................... 31 6.1.5 对商品信息操作的接口的JavaBean的编写.......................... 32 6.1.6对商品信息操作的JavaBean的编写....................................... 32 6.2系统前台模块设计................................................................................ 33
6.2.1网页前台界面设计..................................................................... 33 6.2.2用户登录注册模块..................................................................... 33 6.2.3特价商品模块............................................................................. 35 6.2.4 新品上架模块设计.................................................................... 35 6.2.5商品分类模块设计..................................................................... 36 6.2.6销售排行模块设计..................................................................... 37
IV
目录
6.2.7购物车模块................................................................................. 39 6.2.8用户收银台订单模块设计......................................................... 42 6.3系统后台管理模块设计........................................................................ 42
6.3.1后台登录模块设计..................................................................... 42 6.3.2商品管理模块设计..................................................................... 43 6.3.3会员管理模块设计..................................................................... 45 6.3.4订单管理模块设计..................................................................... 46 6.3.5公告管理模块设计..................................................................... 47
第7章 基于WEB的服装营销系统的测试 ..................................................... 48
7.1软件测试基本常识................................................................................ 48
7.1.1软件测试概念............................................................................. 48 7.1.2软件测试内容............................................................................. 48 7.2系统功能测试........................................................................................ 49 7.3系统性能测试........................................................................................ 51 结束语.................................................................................................................. 56 参考文献.............................................................................................................. 57 致谢...................................................................................................................... 58
V
第1章 引言
第1章 引言
1.1项目开发背景
随着中国市场经济的日趋成熟,中国企业面对的竞争压力也越来越大。传统的服装销售模式很难继续满足客户各种各样的需求,客户分散在全国各地甚至世界各地,服装公司无法迅速地将自己的新产品展示给这些客户,成本开销也比较大,不仅大大降低了服装销售的效率,更重要的是直接影响到服装公司的经济效益。如何建立一个符合自身的经济、实用、安全、高效、稳定的基于WEB的电子商务系统,充分利用信息化手段来提高管理效率及市场响应速度,拓宽销售渠道、增加企业效益,以在市场经济激烈的竞争中占有一席之地,成为许多企业的当务之急。
同时,伴随着Internet在中国的高速发展,人们开始广泛地使用Web技术为自己的学习、工作、娱乐服务。电子商务成为其中最巨特色的应用方式之一。它是在互联网开放的网络环境下,基于浏览器/服务器应用方式,实现消费者的网上购物、商户之间的网上交易和在线电子支付的一种新型的商业运营模式。电子商务做为一种独立的经济形态,已初具规模,一些电子商务网站的成立,给人们的生活带来了巨大的影响。时下许多知名企业都选择了互联网这个平台展示自己,开展对外合作交流,拓展贸易往来,收到了很好的效益。在服装领域,在这样的时代背景下,开发一套适合服装公司的基于Web的服装营销系统迫在眉睫。
快速开发基于Web的应用程序的一种比较流行的开发技术是JSP(Java Server Pages)技术,JSP技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术使用Java编程语言编写类XML的tags(标签)和Scriptlets(脚本小程序),来封装产生动态网页的处理逻辑。网页还能通过tags和Scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。JSP和其他的Web应用开发技术相比,具有以下几点优势:1、系统跨平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署。2、强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet(服务器小程序)/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。3、强大的开发工具支持。Java已经有了许多非常优秀的
1
电子科技大学学士学位论文
开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
由此可见,JSP技术以其简单易学、跨平台的特性,在众多动态Web应用程序设计语言中异军突起,在短短几年中已经形成了一套完整的规范,并广泛地应用于电子商务等各个领域中。采用JSP技术来开发基于Web的服装营销系统在某些方面具有一定的优势。在国内,JSP现在也得到了比较广泛的重视,得到了很好的发展,越来越多的动态网站开始采用JSP技术。
1.2项目开发目标
根据本系统的需求分析,基于Web的服装营销系统的设计及开发包括了用户注册模块、用户登陆模块、商品展示模块、购物车模块、订单管理模块、公告板、后台管理等模块,能够实现在线用户注册及登录、商品信息展示、用户下订单购买、订单操作管理、发布公告等重要功能。这种具有很强的实时性和交互性的功能设计,保证了系统能够让企业和个人间展开实时的商务活动,
1.3项目实际意义
适应市场要求,开发符合企业要求的功能齐全的基于web的服装营销系统并不断加紧完善迫在眉睫,保证服装企业能通过使用该系统,能够方便、高效地在网上开展电子商务活动,即通过网络购买、销售、交换商品和服务信息。该系统保证企业能够绕过中介建立与客户的直接关系,可以为用户提供商品的详细信息,用户可以在线浏览商品,确定自己的订单购买商品或者通过留言板及时与企业进行沟通。
在该基于web的服装营销系统平台下,企业信息的传递和处理、企业进行市场调查和信息收集都将变得更加快捷,也使客户能方便的与企业进行信息交流,扩大了市场范围和市场份额。同时通过电子商务减少了商品流通的中间环节,节省了大量的开支,从而也大大降低了商品流通和交易的成本,市场竞争激烈的今天,能够助企业一臂之力。同时站在消费者的角度,为消费者提供了更便捷的购物环境,人们不受时间的限制,不受空间的限制,不受空间的限制,不受传统购物的诸多限制,可以随时随地的在网上交易,在网上这个世界将会变得很小,一个商家可以面对全球的消费者,而一个消费者可以在全球的任何一家商家购物。如今人们越来越追求时尚、讲究个性,注重购物的环境,网上购物,更能体现个性化的购物过程,符合了时代进步的要求,为我们的生活带来更多便捷舒适。
2
第1章 引言
1.4研究现状
网上服装营销系统符合了人们购物过程中的需求。越来越多的企业已经意识到基于WEB的服装营销系统之类的电子商务模式的广阔发展前景。据中国互联网络信息中心(CNNIC)权威统计显示,国内网站数目已接近100万家,而且每年都在以10%以上的速度持续增长。目前,像淘宝、当当这类网上服装营销系统获得了巨大的成功,甚至成为电子商务的首要代表工具。
3
电子科技大学学士学位论文
第2章 项目开发工具及运行环境
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,在传统的HTML文件中加入了Java程序片段和JSP标记,就构成了JSP网页。
2.1 JSP原理简介
2.1.1 JSP原理介绍
JSP(JavaServer Pages)是一种基于Java的脚本技术。它能将 HTML 编码从 Web 页面的业务逻辑中有效地分离出来。用 JSP 访问可重用的组件,如 Servlet、JavaBean 和基于 Java 的 Web 应用程序。JSP 还支持在 Web 页面中直接嵌入 Java 代码。
JSP是Servlet(服务器小程序)的扩展。Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。由于包括大量的HTML 标签、大量的静态文本及格式等,导致Servlet 的开发效率极为低下。JSP 的出现弥补了这种不足, JSP通过在标准的HTML 页面中插入Java代码,其静态的部分无须Java程序控制,只有那些需要从数据库读取并根据程序动态生成信息时,才使用Java脚本控制。 因此,JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例。JSP 页面由系统编译成Servlet, Servlet再负责响应用户请求。JSP其实也是Servlet 的一种简化,使用JSP 时,其实还是使用Servlet,因为Web 应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。对于Tomcat而言, JSP页面生成的Servlet放在work 路径对应的Web应用下。
2.1.2 JSP程序开发设计模式
JSP网站开发技术标准给出了两种使用JSP的方式,归纳为模式一和模式二。
模式一就是指JSP+JavaBean技术,在该模式中,JSP页面响应请求并将处理结果返回给客户,所有的数据库操作和复杂业务逻辑操作都通过JavaBean来实现。JSP 文件访问 Bean 或其它能将生成的动态内容发送到浏览器的组件。当Web 服务器接收到一个 JSP 文件请求时,服务器将请求发送至 Web应用服务器。Web应用服务器 对 JSP 文件进行语法分析并生成 Java 源文件(被编译和执行为 Servlet)。Java 源文件的生成和编译仅在初次调用 Servlet 时发生,
4
第2章 项目开发工具及运行环境
除非已经更新了原始的 JSP 文件。在这种情况下,Web应用服务器 将检测所做的更新,并在执行它之前重新生成和编译 Servlet。该技术实现了页面的表现和页面的商业逻辑相分离。
图 2- 1 浏览器发送 JSP 文件请求
模式二就是指MVC模式,该模式充当了控制器的角色,Servlet负责响应客户对业务逻辑的请求,并根据用户的请求行为决定将调研的JSP页面,JSP页面处于表示层,也就是视图的角色,JavaBean负责数据的处理,也就是模型的角色。发送至 Servlet 的请求生成动态内容,并调用 JSP 文件将内容发送到浏览器。 如图所示,该访问模型使得将内容生成从内容显示中分离出来更为方便。WebSphere
应用服务器 支持 HttpServiceRequest 对象和
HttpServiceResponse 对象的一套新方法。这些方法允许调用的 Servlet 将一个对象放入(通常是一个 Bean)请求对象中,并将该请求传递到另一个页面(通常是一个 JSP 文件)以供显示。调用的页面从请求对象中检索 Bean, 并用 JSP来生成客户机端的 HTML。本项目选择模式一开发。
图 2- 2 发送至 Servlet 的请求
2.2项目开发工具
选择一种性能良好的符合实际开发情况的开发工具,有利于开发者进行高效而快速的开发。本节将会对目前比较流行的JSP开发工具进行简要的介绍,并介
5
电子科技大学学士学位论文
绍本项目需要使用的开发工具及运行环境。 2.2.1几种常用的JSP开发工具
时下比较流行的几种JSP开发工具主要有Eclipese,IBM VisualAge,JBuilder,NetBeans,JRun,dreamweaver,此外还有Java Workshop,JCreator,Microsoft VJ++,UtraEdit等。各种开发工具都有其特点,适合不同层次的开发者和不同的开发过程,开发者应该根据实际情况,灵活选择最适合自己的开发工具,以便提高开发效率。下面将对Eclipse、IBM的VisualAge,Borland的JBuilder这三种集成开发工具进行简单的介绍。
1、Eclipse是一种可扩展的开放源代码IDE。Eclipse框架的灵活性来源于其扩展点。它们是在XML中定义的已知接口,并充当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台。Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。
2、Visual Age for Java是一个非常成熟的开发工具,它所提供的工具有:Web站点管理、快速开发 JDBC页向导程序、HTML编辑器和HTML语法检查等。这确实是个不错的HTML站点页面编辑环境。Studio和VisualAge集成度很高,菜单中提供了在两种软件包之间快速移动代码的选项。这就让使用Studio的Web页面设计人员和使用VisualAge的Java程序员可以相互交换文件、协同工作。 Visual Age for Java支持团队开发,内置的代码库可以自动地根据用户做出改动而修改程序代码,这样就可以很方便地将目前代码和早期版本做出比较。美中不足的是,Visual Age for Java独特的管理文件方式使其集成外部工具非常困难,你无法让Visual Age for Java与其他工具一起联合开发应用。
3、JBuilder 软件的目标定位是代码开发人员而不是高级设计人员,所以JBuilder中包含了大量的向导程序和其他针对中间层的快速开发工具。JBuilder性能稳定、使用方便,特别适用于创建Java 组件。此外该软件还提供了很多JSP功能。JBuilder 处理同时也建立在中间层的EJB之上的事务可谓得心应手。尽管用JBuilder创建默认的JSP非常容易,你还是可以用基本的HTML表单而不是WebSphere Studio中的工具来完成该项工作。JSP本身对JBuilder而言还是一种很新颖的技术,你可以用简单的JavaBean 技术来管理JavaServer
6
第2章 项目开发工具及运行环境
Page。JBuilder还针对团队开发推出了CVS版本控制功能,该技术已经被我们的程序员用于建立测试应用程序。采用CVS,开发队伍就可以方便地跟踪项目开发全过程了。
2.2.2本项目使用的JSP开发工具
根据本项目开发者自身的实际情况和项目开发实际需要等综合因素的考虑,本系统使用的开发工具有;JDK 1.6.0、Eclipse-jee-galileo-SR2、Dreamweaver8、MySQL 5.0。其中,JDK(Java Development Kit)是Java开发工具包,是整个Java的核心,包括了Java运行环境(Java Runtime Environment),以及多个Java工具和Java基础的类库。Eclipse作为Java应用的IDE,使用起来非常方便灵活,具体作用已经在上文有过介绍,Eclipse、Tomcat和一些Eclipse plugins配合使用,用来协助JSP动态网页的开发。Dreamweaver是由Macromedia公司推出的,用于网页开发和网站管理的专业化设计工具。它采用了多种新技术,具有设计和开发网站过程中需要的网站管理、网站设计、页面制作、多媒体制作和动画制作等丰富实用的功能;它具有友好的操作界面,在文档窗口中可以打开各种浮动面板,同时还可以使用系统内置的多种对象进行操作。在本系统的开发过程中,Dreamweaver作为一种可视化的网站设计及页面制作工具,帮助开发者进行快速、高效的设计开发。通过JDK,Eclipse,Dreamweaver的正确安装及配置,就构成了一套高效的开发工具体系,帮助我完成项目的开发过程。
2.3项目运行环境
本项目的运行环境分为硬件环境和软件环境两方面来介绍,并对Windows下JSP开发环境的配置简单地讲述一下。 2.3.1硬件环境
JSP开发对于硬件的要求不是很高,普通的PC机即可实现,本项目所使用的硬件开发环境如下:
* Intel(R) Core(TM)2 Duo CPU 1.5GHZ * 1024 MB的内存
* 操作系统为 Windows XP Professional * 网络连接上限速度为1 M
7
电子科技大学学士学位论文
2.3.2软件环境 Java
作为一种语言,Java是一种跨平台开发语言,能够开发跨平台的应用对象和应用程序。它具有如下几点主要的特性: Tomcat应用服务器
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。基于Tomcat的开发其实主要是JSP和Servlet的开发,开发JSP和Servlet非常简单。
Tomcat是一个非常好的工具,不仅仅因为其免费且功能强大,更因为其开放性。现在,开源软件越来越收到人们的重视,Eclipse、Linux等就是成功的典型。人们不再限于只使用软件,而且关心起软件的具体如何实现。我们有理由相信Tomcat会走得更远。 MySQL 数据库
MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB公司开发、发布和支持。与其他的大型数据库,例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。MySQL服务器是一个快的、可靠的和易于使用的数据库服务器,MySQL服务器原本就是开发比已存在的数据库更快的用于处理大的数据库的解决方案,并且已经成功用于高苛刻生产环境多年。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。它的连接性、速度和安全性使MySQL非常适合访问在Internet上的数据库。MySQL数据库服务器是一个客户/服务器系统,它由多线程SQL服务器组成,支持不同的后端、多个不同的客户程序和库、管理工具和广泛的应用程序接口(APIs)。MySQL也可
8
第2章 项目开发工具及运行环境
以是一个嵌入的多线程库,你可以把它连接到你的应用中而得到一个小、快且易于管理的产品。 JDBC
JDBC是 “Java Data Base Connectivity” 的缩写,意为Java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
值得一提的是,使用JDBC后,在关系数据库的\"对象/关系\"映射中,表中的每行对应于类的一个实例,而每列的值对应于该实例的一个属性。于是,程序员可直接对Java对象进行操作;存取数据所需的 SQL 调用将在\"掩盖下\"自动生成。此外还可提供更复杂的映射,这极大的帮助了开发人员方便地操作各种变量及对象,加快了开发进程。 2.3.3软件环境的安装与配置
JDK 1.6.0、Eclipse-jee-galileo-SR2、Dreamweaver8、MySQL 5.0均为安装文件,双击即可执行安装。Tomcat 6.0、JDBC为压缩包,下载后将其解压到相应目录下即可。下面将介绍下Windows环境下环境变量的配置
[1]
。
在环境变量选项卡中,新建三个变量名:分别为JAVA_HOME、CLASSPATH、CATALINA。
其中JAVA_HOME中的值为JDK的安装目录,CLASSPATH中的值为Java编译时所需要调用的类和包。CATALINA_HOME设定Tomcat的安装路径。
设置如下:
JAVA_HOME::C:\\Program Files\\Java\\jdk1.6.0_02
CLASSPATH:%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\ools.jar; PATH后添加:;%JAVA_HOME%\\bin;C:\\ Program Files\\MySQL Server
9
电子科技大学学士学位论文
5.0\\bin;
CATALINA_HOME:E:\\apache-tomcat-6.0.26;
软件成功安装以及环境变量配置正确后,一个JSP开发环境就搭建好了。
10
第3章 基于WEB的服装营销系统的需求分析
第3章 基于WEB的服装营销系统的需求分析
系统需求分析是系统产品开发设计的第一步,也是最重要的一步。其工作质量的高低,不仅直接影响后续工程的质量,而且决定着所开发出来的系统产品的价值。需求分析从深入分析用户需求出发,把用户的需求变换成以计算机为基础的系统需求。需求分析实际上是调查、评价、以致肯定用户对软件的需求的过程,是一个对用户意图不断进行揭示和判断的过程。其目的在于细化、精化软件的作用范围,确定拟开发软件的功能和性能,分析并确认其过程,确定软件成分及接口。
3.1 系统功能模块需求分析[2]
3.1.1用户管理模块功能需求分析
对于尤其是这类商务型的网站,用户管理功能必不可少。这个模块保证了只有注册的会员能够有权限进行操作,防止了一些恶意人员对系统造成不良影响,保证了系统的安全性和稳定性。具体功能需求分析如下:
1) 系统具有注册功能,浏览者可以注册为系统的会员,所有注册用户均为普通权限会员,系统将客户信息保存在数据库中,在用户提交信息登录时通过与数据库中数据比对,判断登录用户是否合法。
2) 除查看商品信息除外,只有注册并已登陆的会员才有权限在系统中进行一些操作,会员可以查看和修改个人资料,查看个人订单等,提高系统的亲和力。
3) 后台中系统管理员有权限在后台对用户进行冻结解冻,防止恶意注册机大量注册用户给数据库增加负担。浏览者能在系统中注册用户并登录,进行后续操作。
用户管理用例图如图3-1所示[3]:
图 3- 1用户管理用例图
11
电子科技大学学士学位论文
3.1.2 商品展示系列模块需求分析
一个直观、便捷实用的商品展示模块成为了整个系统的重要部分。商品展示功能要在保证安全、稳定的基础上,对浏览者而言要做到尽量方便、快捷,展示界面要尽量美观大方,对于后台管理而言,能方便系统管理员执行对商品信息的操作与维护。具体功能分析如下:
1) 浏览者可以通过服装商品的大类别——小类别——详细商品在系统中看到商品信息,在一页之中尽量放入多件商品的略缩图和基本信息。当浏览者点击某件商品之后,则可以跳转到显示商品详细信息的页面。这样做的目的是让浏览者方便快捷地找到自己所感兴趣的商品。同时商品详细信息页面必须记录服装商品的大图、商品的全部信息,方便浏览者对商品的所有细节进行掌握。
2) 为了更好服务服装企业的需求,吸引顾客浏览,可以详细设计分为新品上架、特价商品、销售排行模块专区,可以通过在数据表中设置标志字段,使商品属于符合相应条件的板块来实现。
3) 商品详细页面之中必须有跳转至定购页面的链接,这之前必须判断浏览者身份是否合法,保证会员才能进行定购操作,保证交易的真实性。
4) 系统管理员能够在后台进行对商品信息的添加、修改及删除操作,保证商品信息的及时更新,呈现给浏览者实时的商品信息。
5) 后台管理中需要特别注意商品图片的格式及大小,大小必须严格限制,保证在200KB之内,以保证数据库的高效性及稳定性。 商品展示模块的用例图如图3-2所示:
图 3- 2商品展示模块的用例图
3.1.2.1新品展示模块
1)通过在商品表中增加Newgoods字段,标示新品上架信息。
12
第3章 基于WEB的服装营销系统的需求分析
3.1.2.2 特价商品模块
1) 通过在商品表中增加sale字段,标示新品上架信息。 3.1.2.3 销售排行模块
1)可以通过数据库内统计各商品的销售数量,再按降序排列,输出热销商品,供用户参照浏览。 3.1.2.4 用户分类显示模块
1)首先将商品分为三大类,包括男装、女装、童装。然后每个大类下又细分为各个小类别,比如衬衫、外套、西装、连衣裙等,以方便用户查找所需商品。 3.1.3 购物车模块功能需求分析
购物车功能也是基于Web的服装营销系统的重要组成部分,设计出方便、直观、功能齐全的购物车功能是十分有必要的。具体功能如下:
1) 已登录客户在查看商品详细信息并有购买意向后,点击商品详细信息页面上的“购买”按钮,能够跳转至购物车页面。购物车页面中应该能够直观地显示出所订购服装商品的编号、名称、单价、数量、金额等,点击确定购买后,向数据库保存定购信息。
2) 已登录用户可以查看个人的购物车,并继续添加购物其他商品,以及修改购物商品信息(如数量等),删除购物车内的商品等,为客户最大限度地提供方便。 在最后结算时,应该能够看到用户定购的所有记录。
3) 购物车页面之中必须有跳转到订购商品并提交订单的链接。 购物车用例图如图3-3所示:
图 3- 3购物车用例图
13
电子科技大学学士学位论文
3.1.4 订单管理模块功能需求分析
订单管理功能是该服装管理系统的关键环节,是同购物车功能紧密联系在一起的。 因此,对所有订单能有一个方便、快捷、安全的管理操作功能,将是这个系统所必须具备的。具体功能分析如下:
1) 已登录会员能够进行在线下订单,由购物车页面中提交订单后,即构成一笔订单保存在数据库中,且使用户有权限对自己购买的商品的订单进行查看。已登录会员操作,同时也能查看自己的订单记录。
2) 通过在查看订单前的用户身份合法性检查,保证各登录用户之间订单的不可见性,防止订单信息外泄。
3) 系统管理员能在后台执行相应的订单操作,包括订单的查看、执行、删除等。
4) 若无特殊情况,应该在一段较长的时间内保存所有订单信息,这样做一方面是建立客户购买数据库,另一方面是能够为企业财务统计提供依据。
订单管理用例图如图3-4所示:
图 3- 4订单管理用例图
3.1.5 商品搜索模块功能需求分析
1) 用户可以通过分类查询或根据浏览者的个人喜好提交关键字等方式搜索数据库,查找中自己所需商品,并在查询到商品记录后,显示在页面上,共用户浏览。用户点击记录可以跳转至相应的商品详细信息页面。 商品搜索用例图如图3-5所示:
图 3- 5商品搜索用例图
14
第3章 基于WEB的服装营销系统的需求分析
3.1.6 公告管理模块功能需求分析
公告功能是服装企业向客户提供最新产品资讯、服务咨询、促销活动等一系列内容的平台。是为尽快打响新产品、提升销售业绩的一个重要途径。具体功能分析如下:
1)所有浏览者都能够看到公告内容。
2)公告信息由后台管理员进行添加发布、修改以及删除更新等操作,以保护企业客户的利益。
公告管理用例图如图3-6所示:
图 3- 6公告管理用例图
15
电子科技大学学士学位论文
第4章 基于WEB服装营销系统的总体设计
在完成对基于Web的服装营销系统的需求分析之后,将进行系统的总体设计部分,制定出系统的总体设计规划和总体框架。系统总体设计是在全面地进行需求分析基础之上开展的设计部分,为系统详细设计奠定了基础,在整个开发流程中师必不可少的部分。此系统的总体设计包括系统功能模块图的设计、数据库的设计
4.1项目规划
该基于WEB的服装营销系统是一个JSP数据库开发应用程序,由前台商品展示及销售、后台管理2部分组成。
前台商品展示及销售
该部分主要包括新品上架、特价商品、销售排行、购物车、会员管理、商品公告及订单查询、商品查询等。
后台管理
该部分主要对商城内的一些基础数据进行有效管理,包括商品管理、会员管理、订单管理、公告管理等。
4.2系统功能结构图设计
基于WEB的服装营销系统前台功能(针对用户)结构如图4-1所示:
图4- 1系统前台功能结构图
服装营销系统后台功能(针对管理者)结构如图4-2所示:
16
第4章 基于WEB的服装营销系统的总体设计
图4- 2 系统后台功能结构图
4.3 数据库设计
此系统选用MySQL 数据库进行数据的存放与读取,按照功能模块的划分,建立多张表。现在分别对各张表的设计分别介绍。
数据库名称:db_shop[4];
数据库中的表包括:tb_member表、tb_goods表、tb_superType表、tb_subTyp表、tb_order表、tb_order_detail表、tb_manager表、tb_rebate表、tb_BBS表。
4.3.1 tb_member表
会员信息表主要用来存储所注册的会员信息,其结构如表4-1所示:
表4- 1 会员信息表
字段名 id username truename password city address postcode cardNO cardType grade Amount tel 数据类型 Int Varchar Varchar Varchar Varchar Varchar Varchar Varchar Varchar Int Money Varchar 17
长度 4 20 20 20 20 100 6 24 20 4 8 20 描述 会员id,主键 用户名 真实姓名 密码 所在城市 联系地址 邮政编码 证件号码 证件类型 等级 消费额 电话
电子科技大学学士学位论文
email freeze 4.3.2 tb_superType表
Varchar Int 100 4 Email地址 是否冻结 商品大分类信息表主要用来保存商品类别中大的类别信息,其结构如表4-2所示:
表4- 2 商品大分类表
字段名 superID TypeName 4.3.3 tb_subType表
数据类型 Int Varchar 4 50 长度 描述 类别id,主键 类别名称 商品小分类信息表用来保存商品类别镇中小的类别信息,其结构如表4-3所示:
表4- 3商品小分类表 字段名 id superID TypeName 数据类型 Int Int Varchar
长度 4 4 50 描述 类别id,主键 父类id 类别名称 4.3.4 tb_order_detail表
订单明细表用于保存订单的详细信息,其结构如表4-4所示:
表4- 4 订单明细表
字段名 ID orderID clothesID price number 4.3.5 tb_order表
数据类型 Bigint Bigint Bigint Money Int 长度 8 8 8 8 4 描述 ID号,主键 与sa_order表的orderID字段关联 服装ID 价格 数量 订单信息主表用来保存订单的详细信息,其结构如表4-5所示:
18
第4章 基于WEB的服装营销系统的总体设计
表4- 5 订单信息主表 字段名 orderID bnumber username truename address postcode tel pay carry rebate OrderDate enforce bz 4.3.6 tb_rebate表
数据类型 Bigint Smallint Varchar Varchar Varchar Varchar Varchar Varchar Varchar Float Smalldatetime Int Varchar 长度 8 2 15 15 100 10 20 20 20 8 4 4 200 描述 订单编号,主键 品种数 用户名 真实姓名 联系地址 邮政编码 电话 付款方式 运送方式 折扣 订货日期 是否执行 备注 折扣表用来保存顾客在购买商品时的折扣信息,其结构如表4-6所示:
表4- 6 折扣表 字段名 grade Amount rebate 4.3.7 tb_manager表
数据类型 Varchar Money Float 长度 20 8 8 描述 等级,主键 消费额 折扣 管理员信息表用来保存管理员信息,其结构如表4-7所示:
表4- 7 管理员信息表 字段名 ID manager PWD 4.3.8 tb_goods表
数据类型 Int Varchar Varchar 4 30 30 长度 描述 ID号,主键 管理员名字 密码 商品信息表用来保存商品信息,其结构如表4-8所示:
19
电子科技大学学士学位论文
表4- 8 商品信息表
字段名 ID typeID clothesName introduce price nowPrice picture InTime newclothes sale hit 4.3.9 tb_BBS表
数据类型 Int Int Varchar Text Money Money Varchar Datetime Int Int Int 8 4 200 16 8 8 100 8 4 4 4 长度 描述 商品ID 类别ID 商品名称 商品简介 定价 现价 图片 录入时间 是否新品 是否特价 浏览次数 公告信息表主要用来保存商城的公告信息,其结构如表4-9所示:
表4- 9 公告信息表 字段名 ID title content InTime 数据类型 Int Varchar Varchar Datetime 4 100 长度 描述 ID号,主键 公告标题 公告内容 录入时间 40000 8 4.4 软件体系结构设计
在系统的总体设计中,对软件体系结构进行设计是至关重要的环节。在基于Web的服装营销系统的设计中,使用不同工具以实现软件的多层体系。本系统的软件体系结构如下:
表示层:这一层提供与用户交互的界面
业务逻辑层:这一层具体实现各种业务逻辑,是最核心的层次
JDBC数据库访问层:这一层用以提供数据库访问的接口,是业务层与数据库层之间的桥梁
数据库层:这一层负责存放和读取业务逻辑层所需的各种业务数据
20
第4章 基于WEB的服装营销系统的总体设计
此系统的软件体系结构如图4-3所示:
表示层 业务逻 数据库 数据库层 图4-3 系统软件体系结构
21
电子科技大学学士学位论文
第5章 基于WEB的服装营销系统详细设计
在进行完基于Web的服装营销系统的总体设计[5],设计出系统功能模块结构图之后,我们需要将工作重心转移到各个功能模块的实现方法上来。也就是对各个功能模块的实现流程做详细的设计。在详细设计阶段,设计者的工作对象是一个模块,根据概要设计赋予的局部任务和对外接口,设计并表达出模块的算法、流程、状态转换等内容。
5.1网页前台功能模块设计
5.1.1会员登录注册模块设计 5.1.1.1会员登录
图 5- 1 会员登录流程图
用户在登录页面中输入用户名和密码,通过表单的POST方法提交,通过request对象的getParameter()方法得到提交的变量,系统将对输入的用户名和密码进行验证,如果用户输入的用户名存在且密码正确并且冻结字段的值不为1,则重新进入网站首页,显示登录用户的用户名、【修改资料】按钮、【退出登录】按钮,否则提示登录失败[3]。
22
第5章 基于WEB的服装营销系统的详细设计
5.1.1.2会员注册
图 5- 2 会员注册流程图
会员注册模块由两个页面组成,一个是用于收集用户输入的注册信息的会员注册页面,另一个用于将会员注册信息保存到数据表中的处理页。
会员注册页面主要由表单元素组成,比较简单。将会员注册信息保存到数据表中,首先使用JavaBean中的member类保存客户端输入的会员信息,再通过调用memberDaoImpl中的insert方法将会员信息保存到会员信息表中。在保存会员信息时,还需要判断会员名是否存在,必须保证会员名称的惟一性。 5.1.2商品展示模块
基本流程图如图5-3所示:
图 5- 3 商品展示流程图
当浏览者通过点击商品分类或者搜索商品进入相应类别页面后,页面中以缩略图形式显示所有商品。若浏览者想查看某商品详细信息,点击商品图片,通过
23
电子科技大学学士学位论文
request对象中获得参数方法提交商品编号,在tb_goods表中查询所有商品编号等于该商品编号的记录,并返回其所有字段内容,通过web页面进行显示,就能在页面中会显示商品。 5.1.2.1 特价商品模块设计
商品展示流程同上,特价商品信息同商品基本信息同时保存在商品信息表tb_goods中,以字段sale标识,当sale字段的值为1时,代表该商品为特价商品。 5.1.2.2 新品上架模块设计
新品上架信息同商品基本信息同时保存在商品信息表tb_goods中,以字newGoods标识,当newGoods字段的值为1时,代表该商品为上架新品。 5.1.2.3商品分类模块设计
为了方便用户查询所需商品信息,在网站中设置了商品分类显示模块。在网站首页的右侧以树状菜单的形式列出了商品的大、小分类信息,用户单击大类别结点可以显示出该类的所有小类信息,单击小类结点可以进入到分类商品显示页面查看该类别的全部商品信息,在分类商品显示页面中,单击商品名称可以查看相应商品的详细信息。如果用户已经登录,还可以直接将商品信息添加至购物车中。
5.1.3购物车模块
基本流程图如图5-4所示:
24
第5章 基于WEB的服装营销系统的详细设计
图 5- 4 购物车流程图
本例中的购物车是采用Vector类型的变量cart来存储购物数据的,被保存到Session中,将商品信息暂时保存到购物车中。已登录会员可以浏览商品信息,当点击“购买”时,通过request对象中获得参数goodsID,并提交该商品编号,在tb_goods表中查询所有商品编号等于该商品编号的记录,将其字段内容保存到Session中,通过web页面进行显示,就能在页面中会显示商品。已登录会员在购物车页面可以继续购物、到收银台结账、退回商品、修改所购商品数量、清空购物车等选择。
5.1.4用户收银台订单模块设计:
图 5- 5 用户收银台订单流程图
1)用户决定购买后,为生成订单,可单击购物车页面的“去收银台结账”
25
电子科技大学学士学位论文
即可进入到收银台页面填写订单信息。系统首先判断用户是否已登录并购物,然后在该页面中系统会根据用户登录的用户名自动填写用基本信息,除用户名外,其他信息仍可更改。
2)获取订单信息,通过Request对象的getParameter方法获取用户填写的订单主信息及购物车内商品信息和打折比率,然后保存订单主、明细信息,最后更新会员信息及会员等级。
3)完成订单后,会员可以查看订单,系统将根据用户名显示所有符合条件
的订单记录在页面上。如果会员想查看某订单详细信息,系统将通过Request对象的getParameter方法获取的订单号,查询tb_order_detail表,找到符合条件的记录,并通过JSP方法显示在页面上。
5.2系统后台管理系统设计
5.2.1后台登录模块设计
管理员在登录页面中输入用户名和密码,通过表单的POST方法提交,通过request对象的getParameter()方法得到提交的变量,系统将对输入的用户名和密码进行验证,如果用户输入的用户名存在且密码正确则进入后台管理首页,显示登录管理员的用户名,否则提示登录失败。该模块与会员登录模块基本类似,不再做详细设计。 5.2.2商品管理模块设计
图 5- 6 商品管理流程图
在后台导航条中单击“订单管理”进入后台商品管理首页,主要工作包含分页显示商品概要信息、添加商品、修改和删除商品信息。
26
第5章 基于WEB的服装营销系统的详细设计
1)首先,系统可以通过查询tb_goods,使用JSP方法显示所有商品信息,但须注意应该处理好对网页数据分页显示的问题。
2)在商品管理首页单击“添加商品信息”,即进入添加页面,管理员依次输入新商品信息,如名称,分类,图片,简介,定价等,必须编写验证用户输入信息是否合法的JavaScript自定义函数。用户点击保存后,由相应处理程序添加该新记录到数据库。添加成功后,通过JSP方法显示在页面上。
3)在商品管理首页单击“修改”即可进入修改页面,其处理过程与修改类似。 4)在商品管理首页单击“删除”即可进入删除页面。删除商品信息,首先需要判断从商品管理首页传递的参数ID是否为空值,如果为空,说明管理员非正常操作,重新定向到商品管理首页,否则才根据参数ID查询商品基本信息并显示在页面中,然后进行删除。 5.2.3会员管理模块设计
查看会员信息的实现方法与商品管理中分页显示商品信息类似,并在会员信息表db_member中设计了字段freeze,标志会员信息是否被冻结,0表示未冻结,1表示冻结,以使管理员可以和对于经常失信的会员予以冻结或解冻。 5.2.4管理员订单管理模块设计
管理员订单管理模块基本流程图如图5-7所示:
图 5- 7 管理员订单管理流程图
在后台导航条中单击“订单管理”进入后台订单管理首页,主要工作包含分页显示订单概要信息、执行订单和提供查看订单信息。
1) 首先,单击订单管理首页,系统可以通过查询tb_order,使用JSP方法即可以显示所有订单信息,但须注意应该处理好对网页数据分页显示的问题。 2) 在订单管理首页单击某订单记录的订单号,即进入订单详细页面,管理员可查看订单的所有内容。
3) 若订单已执行,在订单管理页管理员单击“执行”即可修改订单状态。
27
电子科技大学学士学位论文
5.2.5公告管理模块设计
公告管理模块实现管理员在后台添加、删除公告,用户在前台查看公告。其基本流程图如图5-8所示:
图 5- 8 公告管理流程图
系统管理员单击“公告管理”在后台数据库中添加公告记录,记录中须包括公告标题、公告内容、公告发布时间等信息,通过JSP方法将数据库记录在前台页面进行显示,供用户查看。
28
第6章 基于WEB的服装营销系统的实现
第6章 基于WEB的服装营销系统的实现
在完成了对基于WEB的服装营销系统的需求分析、总体设计、详细设计后,本章将主要阐述各个功能模块及整个系统的代码实现过程。本项目使用Dreamweaver8进行了各个页面的设计[6],Eclipse进行代码编写运行,在mysql中实现了数据库编写,并编写数据库操作类connDB.java,在JSP页面的代码设计过程中将使用这个类。
6.1 JavaBean的编写
JavaBean在整个系统开发模式中处于数据库与页面之间,负责数据的处理。因此接下来的任务是根据系统的需求编写需要的JavaBean.。 6.1.1数据库操作的JavaBean
数据库操作的JavaBean是一个公共类,通常包括连接数据库的方法getConnection、执行查询语句的方法executeQuery、执行更新操作的方法executeUpdate、关闭数据库连接的方法close。下面将给出编写数据库操作[7]的JavaBean“connDB”的实现过程:
1) mysql数据库连接程序: package com.wgh.DB; import java.sql.*; import java.io.*; import java.util.*; import java.lang.Class; import java.sql.SQLException; public class connDB { public Connection conn = null; public Statement stmt = null; public ResultSet rs = null;
private static String dbClassName =\"com.mysql.jdbc.Driver\"; private static String dbUrl = \"jdbc:mysql://localhost:3306/db_shop\"; private static String dbUser = \"root\"; private static String dbPwd = \"123\"; public connDB()
29
电子科技大学学士学位论文
{ try {
Class.forName(dbClassName); }
catch (ClassNotFoundException e) { e.printStackTrace(); } }
2) 创建连接数据库的方法getConnection,该方法返回Connection对象的一个实例。
getConnection方法的代码如下: public Connection getConnection() { try {
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); }
catch (Exception e){
e.printStackTrace(System.err); }
return conn; }
3) 创建执行查询语句的方法executeQuery,返回值为ResultSet结果集。 public ResultSet executeQuery(String sql) { try {
conn = getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql); }
catch (SQLException ex) { System.err.println(ex.getMessage()); } return rs; }
4) 创建执行更新操作的方法executeUpdate() ....\\\\
30
第6章 基于WEB的服装营销系统的实现
5) 创建执行更新操作,并返回该操作中自动编号字段的自动编号 ....\\\\
6) 创建关闭数据库连接的方法close。 ....\\\\
6.1.2 字符串处理的JavaBean的编写
字符串处理的JavaBean是解决程序中经常出现的有关字符串处理问题的方法的类。包括将数据库中及页面中有中文问题的字符串进行正确的显示和存储的方法chStr和将字符串中的回车换行、空格及HTML标记符正确显示的方法convertStr两个方法。下面是编写字符串处理的JavaBean“chStr”的详细过程。
(1)编写解决输出中文乱码问题的方法chStr。
(2)编写显示文本中的回车换行、空格及保证HTML标记的正常输出的方法convertStr。
6.1.3商品JavaBean的编写
商品JavaBean就是对商品实体的抽象,它包含了商品实体的所有属性及商品对象的初始化构造的方法。 package commerce; public class goods {
private Integer ID=Integer.getInteger(\"-1\"); //商品ID号 private int typeID=-1; //商品类别ID
.... //省略类似商品字段属性设置 public void goods() //商品类的构造方法,此方法不能省略 public Integer getID() //获取商品ID public void setID(Integer ID) //设置商品ID
…… //此处省略了控制商品信息其他属性的属性接口的代码 }
6.1.4保存购物信息的JavaBean的编写
保存购物信息的JavaBean主要在实现购物车时应用,在类中定义商品的属性。保存购物信息的JavaBean“goodselement”的代码如下:
package commerce;
public class goodselement { public int ID; //商品ID
31
电子科技大学学士学位论文
public float nowprice; //现价 public int number; //数量
}
6.1.5 对商品信息操作的接口的JavaBean的编写 对商品信息操作的接口的JavaBean的代码如下: package com.wgh.dao;
import commerce.goods; //导入商品JavaBean public interface GoodsDao {
public int insert(goods g); //定义插入方法 public int update(goods g); //定义更新方法 public int delete(goods g); //定义删除方法 }
6.1.6对商品信息操作的JavaBean的编写
对商品信息操作的JavaBean实现了GoodsDao接口中对商品信息添加的方法insert、修改的方法update、删除的方法delete。对商品信息操作的JavaBean“GoodsDaoImpl”的代码如下:
package com.wgh.dao;
import commerce.goods; //导入商品JavaBean import com.wgh.DB.chStr; //导入字符串处理的JavaBean import com.wgh.DB.connDB; //导入数据库操作的JavaBean
public class GoodsDaoImpl implements GoodsDao { //声明GoodsDaoImpl类使用的接口 connDB conn = new connDB(); //实例化connDB类的一个对象 chStr chStr = new chStr(); //实例化connDB类的一个对象
public int insert(goods g) //实现GoodsDao 接口中的insert方法,对商品数据表进行插入操作;
public int update(goods g) //实现GoodsDao 接口中的update方法,对商品数据表进行更新操作;
public int delete(goods g) //实现GoodsDao接口中的delete方法,对商品数据表进行删除操作;
32
第6章 基于WEB的服装营销系统的实现
6.2系统前台模块实现
6.2.1网页前台界面实现
以下是系统首页的预览图[7],页面中使用JSP内部命令<% include file=””%>静态包含了几个jsp文件,分别是 顶部“navigation.jsp”、左侧“left.jsp”、中部“search.jsp”、“ .jsp”、右侧“right.jsp”等。分别实现了首页中“头部导航页”、“会员登录”、“商城公告”、“销售排行”、“商品搜索”、“商品分类”几个部分,使浏览者可以方便地进行操作。在首页中,还具有“特价商品”、“新品推荐”部分,可以为浏览者提供最新的服装信息,满足服装商品营销特点的需要。下面将介绍各个功能模块的实现。
图 6- 1 网页前台界面
6.2.2用户登录注册模块
该模块包括用户注册和用户登录两部分。这两部分的设计流程已经在前面章节介绍过,且实现算法[8]比较简单,故只展示这两个部分的成果。 6.2.2.1会员登录界面
用户登录界面及登录成功后界面分别如图6-2所示:
33
电子科技大学学士学位论文
图 6- 2 会员登录界面
会员登录过程,先创建并实例化connDB的一个对象,使用request对象中的获取参数方法getParameter()得到提交的用户名和密码,并进行编码转换,否则输入中文用户名时将出现乱码。查询tb_Member,与提交的用户名、密码进行比较验证。若没有错,则登录成功。 6.2.2.2会员注册界面 会员注册界面如图6-3所示:
图 6- 3 会员注册界面
会员注册页面主要由表单元素组成,比较简单。将会员注册信息保存到数据表中,首先使用JavaBean中的member类保存客户端输入的会员信息,再通过调用memberDaoImpl中的insert方法将会员信息保存到会员信息表中。在保存会
34
第6章 基于WEB的服装营销系统的实现
员信息时,还需要判断会员名是否存在,必须保证会员名称的惟一性。 6.2.3特价商品模块
在前台首页,单击导航条中的【特价商品】按钮可以进入到特价商品页面,在该页面中将列出商城中的全部特价商品。主要包括商品图片、名称、原价、现价等信息。同时设置了【购买】按钮和【详细信息】按钮,分别用于将商品信息添加至购物车和查看商品详细信息。
特价商品模块在网站首页的设计效果如图6-4所示:
图 6- 4 特价商品模块
1)查询数据表中的特价商品。 查询tb_goods表中,sale字段的值为1时,代表该商品为特价商品。特价商品页面sale.jsp中查询特价商品的代码如下:
<%@ page import=\"com.wgh.DB.connDB\" %> <%connDB conn=new connDB(); ResultSet rs=conn.executeQuery
(\"select ID,GoodsName,Introduce,price,nowprice,picture from tb_goods where sale=1 order by GoodsName\");
2)在网站首页中显示特价商品信息采用了分栏技术,也就是应用if语句结合模运算符实现在一个单元格中同时显示两列数据。 6.2.4新品上架模块
在前台首页,单击导航条中的【新品上架】按钮,或是首页的居中位置列出
35
电子科技大学学士学位论文
的商城中上架新品中的最新上市的4条商品信息,或是单击新品上架展区中的“More„”超链接都可以进入到新品上架页面。主要包括商品图片、名称、现价等信息。同时设置了【购买】按钮和【详细信息】按钮,分别用于将商品信息添加至购物车和查看商品详细信息。
新品上架模块在网站首页的设计效果如图6-5所示:
图 6- 5 新品上架模块
1)新品上架信息同商品基本信息一起保存在商品信息表tb_goods中,以字段newGoods标识,当newGoods字段的值为1时,代表该商品为上架新品。在网站首页中查询新上架商品的代码如下:
<%@ page import=\"com.wgh.DB.connDB\" %> <%connDB conn=new connDB();
ResultSetrs_new=conn.executeQuery(\"select
ID,GoodsName,nowprice,introduce,picture from tb_goods where newGoods=1 order by INTime desc limit 4\"); %> 6.2.5商品分类模块
商品分类模块界面如图6-6所示:
图 6- 6 商品分类模块
实现以树状菜单的形式显示商品的大、小分类信息的关键是获取商品的大分
36
第6章 基于WEB的服装营销系统的实现
类信息,并分别查询出每个大类所对应的小分类信息,再通过
ID_superType=rs_superType.getInt(1); superType=rs_superType.getString(2);
String sql=\"select * from V_Type where ID=\"+ID_superType;
ResultSet rs_subType=conn.executeQuery(sql); //查询出每个大分类信对应的小分类信息 String subType=\"\"; int subID=0;
6.2.6销售排行模块
销售排行模块界面如图6-7所示:
objImg.src = \"images/jia.gif\"; objImg.alt = \"展开\"; }else{
objTr.style.display = \"\"; //隐藏结点 objImg.src = \"images/jian.gif\"; objImg.alt = \"折叠\"; }
37
电子科技大学学士学位论文
图 6- 7 销售排行模块
用户单击首页导航条中的“销售排行”超链接,即可进入到销售排行页面,销售排行页面主要是将订单视图中的数据按goodsName、goodsID字段分组并统计销售数量,再按统计后的销售数量降序排列,最后再使用Mysql语句中的limit关键字取出销售量最高的前10种商品。关键代码如下: <%@ page import=\"com.wgh.DB.connDB\" %> <%connDB conn=new connDB();
String username=(String)session.getAttribute(\"username\");
ResultSet rs=conn.executeQuery(\"select top 10 GoodsID,GoodsName, sum(number) as sumNum from V_order_detail group by GoodsName,GoodsID order by sumNum desc\"); int goodsID=-1; String goodsName=\"\"; %>
6.2.7商品搜索模块
商品搜索模块界面如图6-8所示
图 6- 8 商品搜索模块
关键代码如下:
38
第6章 基于WEB的服装营销系统的实现
while(rs_type.next()){ id=rs_type.getInt(1);
typename=rs_type.getString(2);%>
6.2.8购物车模块
购物车模块[9]界面如图6-9所示:
图 6- 9 购物车界面
1.添加商品到购物车中
本例中的购物车是采用Vector类型的变量cart来存储购物数据的,被保存到Session中,将商品信息暂时保存到购物车中分为以下两种情况: 1)cart为空时,即向购物车中添加第一件商品时,须新建一个cart
2)cart不为空时, 即购物车中已经有商品时,则直接向里面加入即可。如果商品重复,只需修改cart中的商品数量。
chStr chStr=new chStr(); connDB conn=new connDB();
int ID=Integer.parseInt(request.getParameter(\"goodsID\")); String sql=\"select * from tb_goods where ID=\"+ID; ResultSet rs=conn.executeQuery(sql); float nowprice=0;
39
电子科技大学学士学位论文
if(rs.next()){ }
goodselement mygoodselement=new goodselement();
... //创建并实例化goodselement的一个对象 Vector cart=(Vector)session.getAttribute(\"cart\"); if(cart==null){
cart=new Vector(); }else{
for(int i=0;i response.sendRedirect(\"cart_see.jsp\"); 2.查看购物车 网站的banner条中含有“查看购物车”, 1)判断用户是否登录和购物车是否为空,若用户未登录,则不能查看购物车;若购物车为空,需要将页面重定向到购物车为空的页面。 2)显示购车车信息主要是将保存在Session中的购物信息利用for语句输出到浏览器中,同时根据商品的现价,购买数量自动计算每种商品的金额和购物车中全部商品的合计金额。 3.修改购物车中指定商品的购买数量 1)在购物车中,由于商品的数量被存放在文本框里,用户只需在某种商品后面的文本款中输入相应的数量即可。由于在查看购物车时已经将购物车中所有商品数量的文本框放在同一个表单中,并以name属性相区别,所以在修改购物车中修 40 nowprice=rs.getFloat(\"nowprice\"); goodselement goodsitem=(goodselement)cart.elementAt(i); if(goodsitem.ID==mygoodselement.ID){ } goodsitem.number++; cart.setElementAt(goodsitem,i); Flag=false; } 第6章 基于WEB的服装营销系统的实现 改某商品数量时,需要应用循环语句重新保存购物车信息。 Vector cart=(Vector)session.getAttribute(\"cart\"); Vector newcart=new Vector(); for(int i=0;i 通过Vector 类的removeElementAt(int index)方法来实现。 Vector cart=(Vector)session.getAttribute(\"cart\"); try{ int id=Integer.parseInt(request.getParameter(\"ID\")); cart.removeElementAt(id); session.setAttribute(\"cart\ response.sendRedirect(\"cart_see.jsp\"); }catch(Exception e){ 5.清空购物车 将保存在sesstion中的购物信息清空,并将页面重新定向到购物车为空的页面。 <% session.removeAttribute(\"cart\"); 41 String number=request.getParameter(\"num\"+i); goodselement mygoodselement=(goodselement)cart.elementAt(i); String num=request.getParameter(\"num\"+i); try{ int newnum=Integer.parseInt(num); mygoodselement.number=newnum; if(newnum!=0){ } newcart.addElement(mygoodselement);} out.println(\"\"); 电子科技大学学士学位论文 response.sendRedirect(\"cart_null.jsp\"); %> 6.2.9用户收银台订单模块 用户收银台订单界面如6-10图所示: 图 6- 10 用户收银台界面 6.3系统后台管理模块实现 6.3.1后台登录模块 后台管理员登录界面如图6-11所示: 42 第6章 基于WEB的服装营销系统的实现 图 6- 11 管理员登录界面 1)管理员登录页面主要实现收集用户输入信息及通过JavaScript的自定义函数验证用户身份。通过check.jsp中的JavaScript代码判断用户名和密码是否为空。管理员登录流程与用户登录类似,不做详细介绍。 2)为了保证系统后台的安全性,为网站后台设计了用户验证用户身份的文件safe.jsp,在每个页面都通过加入该验证。check.Jsp中判断用户名密码是否为空的关键代码如下: function checkM(myform){ } 6.3.2商品管理模块 商品管理模块界面如图6-12所示: if(myform.manager.value==\"\"){ } if(myform.PWD.value==\"\"){ } myform.submit(); alert(\"请输入密码!\");myform.PWD.focus();return; alert(\"请输入管理员名!\");myform.manager.focus();return; 图 6- 12 商品管理界面 43 电子科技大学学士学位论文 1) 分页显示商品信息 [10] 首先从数据表中查询出商品,使用page指令的import将数据库操作javabean引到当前页面,创建并实例化connDB的一个对象conn,最后执行executeQuery方法。而对于网页数据分类显示则包含五步:确定pagesize;通过getRow()获得记录总条数;根据公式“总页数=总记录数/pagesize”确定页数;获取传递的当前页数参数并计算记录数;通过for循环分页显示。详细代码省略。 2)添加商品信息 首先编写验证用户输入信息是否合法的Javascript自定义函数。在实现添加时,首先使用JavaBean中的goods类保存客户端输入的商品信息再通过调用GoodsDaoImpl中的insert方法将商品信息保存到商品信息表中。 关键代码如下: function mycheck(){ if (form1.goodsName.value==\"\") {alert(\"请输入商品名称!\");form1.goodsName.focus();return;} if (form1.picture.value==\"\"){ alert(\"请输入图片文件的路径!\");form1.picture.focus();return; } … String goodsName=chStr.chStr(goods.getGoodsName()); ResultSet rs=conn.executeQuery(\"select * from tb_goods where goodsname='\"+goodsName+\"'\"); if (rs.next()){ out.println(\"\"); }else{ int ret=0; GoodsDaoImpl ins_goods=new GoodsDaoImpl(); ret=ins_goods.insert(goods); if (ret!=0){ out.println(\"\"); }else{ out.println(\"\"); 3)修改商品信息 44 第6章 基于WEB的服装营销系统的实现 与添加商品信息处理页类似,在修改商品信息时需调用GoodsDaoImpl中的update方法。 4)删除商品信息 关键代码如下: <%@ page import=\"com.wgh.dao.GoodsDaoImpl\"%> GoodsDaoImpl del_goods=new GoodsDaoImpl(); ret=del_goods.delete(goods); 商品添加界面如图6-13所示: 图 6- 13 商品添加界面 6.3.3会员管理模块 会员管理模块界面如图6-14所示: 45 电子科技大学学士学位论文 图 6- 14 会员管理界面 查看会员信息的实现方法与商品管理中分页显示商品信息类似,并在会员信息表db_member中设计了字段freeze,标志会员信息是否被冻结,0表示未冻结,1表示冻结,以使管理员可以和对于经常失信的会员予以冻结或解冻。 6.3.4订单管理模块 在后台导航条中单击“订单管理”进入后台订单管理首页,主要工作包含分页显示订单概要信息、执行订单和提供查看订单信息。 订单管理界面如图6-15所示: 46 第6章 基于WEB的服装营销系统的实现 图 6- 15 订单管理界面 6.3.5公告管理模块 公告管理模如图6-16所示: 图 6- 16 公告管理界面 47 电子科技大学学士学位论文 第7章 基于WEB的服装营销系统的测试 7.1软件测试基本常识 7.1.1软件测试概念 软件测试是指使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别. 它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度(correctness) 、完全度(completeness)和质量(quality)的软件过程;是SQA(software quality assurance)的重要子域。软件测试的意义: (1)测试并不仅仅是为了找出错误.通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进; (2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率和有效性; (3)没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。 7.1.2软件测试内容 软件测试主要工作内容是验证(verification)和确认(validation ),下面分别给出其概念: 验证(verification)是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。(Do the right thing) 1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程; 2.程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程; 3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。 确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件(Do it right) 48 第7章 基于WEB的服装营销系统的测试 1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性; 2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。 7.2系统功能测试 软件测试的对象不仅是程序测试,还应该包括整个软件开发期间各个阶段所进行的工作,包含需求分析、总体设计文档、详细设计文档,当然软件测试的主要对象是各个功能模块的源程序实现部分。软件系统要能正常运行,必须建立在正确的需求分析、正确的设计表达、正确的代码实现方法、正确的软件运行的基础之上,任何一个环节出现了差错都能在测试环节中表现出来。 本项目在测试阶段通过对系统各个功能模块进行的测试,能够确保各模块功能实现良好,都按照功能需求中所要求的功能完成。例如在用注册界面的注册信息验证是否实现所需功能作如下测试: 用户名存在,提示错误信息,如图7-1所示: 图7-1 用户名存在 两次密码输入不符,提示错误信息,如图7-2所示: 图7-2 两次密码输入不符 各模块功能测试信息如表7-1所示: 49 电子科技大学学士学位论文 表7-1 各模块功能测试详细表 模块测试内容 用户登录 测试结果简述 能够成功验证用户是否注册及登录信息是否正确信息均正确则登录成功,并保证会员可以修改个人资料 用户注册 能够检查所注册用户名是否重复及其他注册信息格式是否正确,做出响应,以及成功完成用户注册,将会员信息保存到数据库 网页前台界面 商品展示模块 商品分类显示 界面布局美观,能够成功链接到各功能页面 能够成功完成特价商品、新品上架等商品信息的展示 实现了以树状菜单形式显示商品的大、小分类信息,在用户点击相应分类时,显示该分类下的服装商品信息。 商品销售排行 系统能够自动统计销量量前10名的商品,用户点击商品名称即可以查看商品详细信息。 商品搜索模块 可以选择商品搜索分类,并能够根据用户输入的关键字检索相关记录 购物车模块 系统能够首先检查用户是否已登录,未登录转至首页,已登录,则可以显示购物车内信息。购物车内,用户可以选择继续购物,去收银台结账、修改购买数量、退回商品等操作,成功完成各操作链接。 用户收银台订单模块 后台管理员登录模块 后台商品管理模块 实现了用户提交订单的功能 与用户登录模块类似 基本满足商品管理的需求,管理员可以删除、修改、添加商品。在商品添加页面设计了格式检查,保证管理员商品信息添加正确 后台会员管理模块 满足会员管理的需求,管理员可以查看会员基本信息,对于信誉不好的会员可以予以冻结 后台订单管理模块 按照需求分析完成了所需功能,管理员可以查看订单以及修改订单执行状态 后台公告管理模块 管理员能够在此模块删除添加公告,在添加公告信息时设计了格式检查,可以保证管理员发布标题、内容完整的公告 50 第7章 基于WEB的服装营销系统的测试 7.3系统性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。 本系统为基于Web的应用程序,Web应用程序的性能测试不像一些简单的性能测试,比如说CPU占用率等测试,Web应用的测试主要是通过向测试服务器发送大量的HTTP请求进行的压力测试,它的一般测试步骤如下: (1)客户发送请求; (2) server接受到请求,进行处理; (3)web server向DB获取数据; (4)web server生成用户请求的object(页面),返回给用户。从客户发送请求开始到客户接收到最后一个字节的时间成为响应时间(第三步不包括在每次请求处理中)。 Web应用性能测试的指标包括以下几点: 1、事务:在web性能测试中,一个事务表示一个“从用户->web Server->DB->web server->用户”的过程,一般的响应时间都是针对事务而言的。 2、响应时间:响应时间指的是从客户端发起一个请求开始,到客户端接收到从端返回的响应结束,这个过程所耗费的时间。在某些工具中,响应时间通常会称为 “TTLB”,即“time to last byte”,意思是从发起一个请求开始,到客户端收到最后一个字节的响应所耗费的时间。响应时间的单位一般为“秒”或者“毫秒”。一个公式可以表示:响应时间= 网络响应时间 + 应用程序响应时间。 3、并发数:并发数是指同时进行请求的客户的数量,并发数用于模拟用户的真实负载情况(并发情况是对系统最大的考验),并发数≠同时使用系统的用户数。 4、.吞吐量:吞吐量指的是单位时间内处理的客户端请求数量。通常情况下,吞吐量用请求数/秒或者页面数/秒来衡量。从业务角度看,吞吐量也可以用访问人数/天 或者页面访问量/天 来衡量。 5、利用率:资源利用率指的是对不同系统资源的使用程度,例如服务器的 51 电子科技大学学士学位论文 CPU(s),内存,网络带宽等。资源利用率通常以占用最大值的百分比 n %来衡量。 基于以上的性能测试指标,最适合本系统的性能测试方法无非就是向测试页面发送大量HTTP请求,也就是对被测试页面进行压力测试。压力测试必须借助一些测试工具来实现。大多数Web压力测试工具的实现原理都是通过重复的大量页面请求来模拟多用户对被测系统的并发访问。在这里,我们使用Apache 的JMeter工具进行系统性能测试。 Apache JMeter 是100%的Java桌面应用程序。用于对软件做压力测试(例如Web应用)。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强。JMeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装载到内存,让用户通过不同的菜单调用。 下面是我使用JMeter进行系统性能测试的步骤: 1)下载解压JMeter后,运行bin文件夹下jmeter.bat文件运行JMeter测试软件,软件界面如图7-3所示: 图7-3 JMeter软件界面 2)添加测试线程组、HTTP请求和监听器: 在默认建立的测试计划中,添加线程组,可以设置并发线程数、1秒内访问次数、循环次数等,如图7-4所示: 52 第7章 基于WEB的服装营销系统的测试 图7-4 添加线程组 在线程组中添加HTTP请求并设置,如图7-5所示: 图7-5 添加HTTP请求 在线程组中添加监听器,点击运行——测试,查看测试结果,如图7-6所示: 53 电子科技大学学士学位论文 图7-6 查看测试结果 以上介绍了使用JMeter进行Web应用的性能测试步骤,下面是我按照这些步骤测试页面navigation.jsp所得的一组测试数据,结果如表7-1所示: 表 7- 1 测试结果表 线程数 1 1 1 1 10 20 50 1000 5000 访问次数 1 50 100 1000 1 1 100 1 1 平均响应时间 22 11 11 11 92 149 389 820 2398 并发访问 否 否 否 否 是 是 是 是 是 Bytes 3362 3362 3362 3362 3362 3362 3362 3362 3362 由以上测试数据,我们可以得出以下结论: 1、单线程访问时,平均响应时间几乎未随访问次数的增大而增大,页面性能稳定。我们可以将访问次数看做用户点击率,当用户点击率过高时,服务器的负载增加不是很大,响应时间的增加也不是很多。因此,对于一定限度内的高访问量,服务器是可以承受的。当点击率在100次/秒时,平均响应时间在11ms左 54 第7章 基于WEB的服装营销系统的测试 右。 2、当并发访问时,平均访问时间增加非常大,这是因为JMeter在测试并发访问的情况下在同一时间将不同线程的HTTP请求一起发送,造成了服务器过载,出现这种异常的初始访问峰值。这种增长不是由于过高的访问次数造成的,而是一种异常情况下测试的结果。虽然说这种异常方式在正常情况下几乎不可能发生,但是作为一种测试依据,我们可以预见到出现这种情况时服务器将面临一种什么样的困境。所以当出现这种情况的时候,我们应该判断服务器有可能遭到攻击。 55 电子科技大学学士学位论文 结束语 通过本论文对基于Web的服装营销系统的设计及开发过程中的各个环节做了详细介绍,包括项目的背景、意义、目的,开发环境的选用及搭建,系统的需求分析,总体设计和详细设计,系统代码实现及测试。经过最后的系统测试,每个功能模块都基本达到了设计的要求,能够在实际使用中安全、稳定、高效地运行。可以使用户方便及时的获得最新服装信息,随心所欲的购买服装,同时对企业的销售也是不可缺少的助手,使企业在低投入的情况下创造更多价值和利益,达到了本项目预期的目标和实用性。 当然,该系统在很多细节方面存在不足,比如说数据库的设计或许不购丰富合理等,界面不够精美等。同时,由于笔者能力有限,本次毕业设计仅仅是完成了满足企业要求的基本要求,此系统还存在很大的改进空间。随着网上购物掀起的热潮,结合服装购买的特点,笔者设想应该加入网上试衣间的模块设计,使顾客可以输入自己的身高肩宽等信息,再由网络模特试穿,以给顾客更多参考。但由于该模块工作量过大,没能在项目中实现。 在本系统的设计和开发过程中,笔者按照软件工程中软件开发的一般流程来进行课题的开发和设计,通过实践锻炼,熟悉了软件开发的一般流程,充分体会到了需求分析、总体设计对于软件质量的重要性,只有认真地进行需求分析和系统设计,才能在后期代码实现和测试的过程中少走弯路,缩短开发周期。同时此次毕业设计,充分拓宽了我的知识面,掌握了JSP,HTML,SQL的使用,练习了在Eclipse+tomcat环境下开发WEB 应用程序等。在开发过程中,尤其是数据库的使用方面,遇到了很多问题,同时也让我深刻意识到本科阶段所学的大多是基础知识,计算机更新换代非常快,必须注意在日后的学习中多注意积累,多主动去学习。 56 参考文献 参考文献 [1]高峰.在实战中成长:JSP开发之路.北京:电子工业出版社.2009 [2]宋波 刘杰.UML面向对技术与实践.北京:科学出版社.2006.1 [3]王国辉 王毅 李钟尉.JSP程序开发范例宝典.北京:人民邮电出版社.2007.4 [4]魏祖宽.数据库系统及应用.北京:电子工业出版社.2008.8 [5]程伟.开发者突击:JSP网络开发经典模块实现全集.北京:电子工业出版社2008 [6]腾飞科技.Dreamweaver8完美网页制作基础、实例与技巧.北京:人民邮电社.2007.6 [7]明日科技.JSP技术开发大全.北京:人民邮电出版社.2007.7 [8]吴建 张旭东.JSP网络开发入门及实践.北京:人民邮电出版社.2006.11 [9]张新曼.精通JSP-Web开发技术与典型应用.北京:人民邮电出版社.2007.2 [10]贾素玲 王强.HTML网页设计.北京:清华大学出版社.2007.5 [11]陈志民.Pbotoshop CS3完全自学教程.北京:机械工业出版社.2007.8 57 电子科技大学学士学位论文 致谢 随着论文的提交,我顺利完成了毕业设计。在这里,首先向我的指导老师吴立军副教授,表示衷心的感谢。感谢吴教授在百忙之中抽出时间为我挑选毕业设计题目,并在项目分析和设计中给予悉心的指导,帮助我在规定的时间内完成系统的设计及开发。在论文撰写的过程中,吴教授也给我提供了很多的帮助,帮我指出了论文中不少错误和不足,最后才能顺利地完成毕业论文的撰写过程。同时,我也要感谢我的同学们,是他们在我遇到困难时给予我很多帮助,帮助我解决了不少开发过程中的技术难题。 完成毕业论文的撰写,很开心也很惆怅,它预示着我的大学生活已经接近尾声。四年的大学生活转眼即过,非常感谢学院老师一直以来对我的培养和照顾,也非常感谢我的母校——电子科技大学,为我提供如此美好的学习和生活环境。美丽清水河畔的四年生活,必将成为我人生中一段最宝贵的记忆。 58 英文资料原文 英文资料原文 Overview of JSP Technology JSP pages are translated into servlets. So, fundamentally, any task JSP pages can perform could also be accomplished by servlets. However, this underlying equivalence does not mean that servlets and JSP pages are equally appropriate in all scenarios. The issue is not the power of the technology, it is the convenience, productivity, and maintainability of one or the other. After all, anything you can do on a particular computer platform in the Java programming language you could also do in assembly language. But it still matters which you choose. JSP provides the following benefits over servlets alone: • It is easier to write and maintain the HTML. Your static code is ordinary HTML: no extra backslashes, no double quotes, and no lurking Java syntax. • You can use standard Web-site development tools. Even HTML tools that know nothing about JSP can be used because they simply ignore the JSP tags. • You can divide up your development team. The Java programmers can work on the dynamic code. The Web developers can concentrate on the presentation layer. On large projects, this division is very important. Depending on the size of your team and the complexity of your project, you can enforce a weaker or stronger separation between the static HTML and the dynamic content. Now, this discussion is not to say that you should stop using servlets and use only JSP instead. By no means. Almost all projects will use both. For some requests in your project, you will use servlets. For others, you will use JSP. For still others, you will combine them with the MVC architecture . You want the appropriate tool for the job, and servlets, by themselves, do not complete your toolkit. Advantages of JSP Over Competing Technologies Versus .NET and Active Server Pages (ASP) .NET is well-designed technology from Microsoft. ASP.NET is the part that directly competes with servlets and JSP. The advantages of JSP are twofold. First, JSP is portable to multiple operating systems and Web servers; you aren't locked into deploying on Windows and IIS. Although the core .NET platform runs on a few non-Windows platforms, the ASP part does not. You cannot expect to deploy serious ASP.NET applications on multiple servers and operating systems. For some applications, this difference does not matter. For 59 电子科技大学学士学位论文 others, it matters greatly. Second, for some applications the choice of the underlying language matters greatly. For example, although .NET's C# language is very well designed and is similar to Java, fewer programmers are familiar with either the core C# syntax or the many auxiliary libraries. In addition, many developers still use the original version of ASP. With this version, JSP has a clear advantage for the dynamic code. With JSP, the dynamic part is written in Java, not VBScript or another ASP-specific language, so JSP is more powerful and better suited to complex applications that require reusable components. You could make the same argument when comparing JSP to the previous version of ColdFusion; with JSP you can use Java for the \"real code\" and are not tied to a particular server product. However, the current release of ColdFusion is within the context of a J2EE server, allowing developers to easily mix ColdFusion and servlet/JSP code. Versus Pure Servlets JSP doesn't provide any capabilities that couldn't, in principle, be accomplished with servlets. In fact, JSP documents are automatically translated into servlets behind the scenes. But it is more convenient to write (and to modify!) regular HTML than to use a zillion println statements to generate the HTML. Plus, by separating the presentation from the content, you can put different people on different tasks: your Web page design experts can build the HTML by using familiar tools and either leave places for your servlet programmers to insert the dynamic content or invoke the dynamic content indirectly by means of XML tags. Does this mean that you can just learn JSP and forget about servlets? Absolutely not! JSP developers need to know servlets for four reasons: 1. JSP pages get translated into servlets. You can't understand how JSP works without understanding servlets. 2. JSP consists of static HTML, special-purpose JSP tags, and Java code. What kind of Java code? Servlet code! You can't write that code if you don't understand servlet programming. 3. Some tasks are better accomplished by servlets than by JSP. JSP is good at generating pages that consist of large sections of fairly well structured HTML or other character data. Servlets are better for generating binary data, building pages with highly variable structure, and performing tasks (such as redirection) that involve little or no output. 4. Some tasks are better accomplished by a combination of servlets and JSP than by either servlets or JSP alone. 60 英文资料译文 英文资料译文 JSP技术概述 一、JSP的好处 JSP页面最终会转换成servlet。因而,从根本上,JSP页面能够执行的任何任务都可以用servlet来完成。然而,这种底层的等同性并不意味着servlet和JSP页面对于所有的情况都等同适用。问题不在于技术的能力,而是二者在便利性、生产率和可维护性上的不同。毕竟,在特定平台上能够用Java编程语言完成的事情,同样可以用汇编语言来完成,但是选择哪种语言依旧十分重要。 和单独使用servlet相比,JSP提供下述好处: JSP中HTML的编写与维护更为简单。JSP中可以使用常规的HTML:没有额外的反斜杠,没有额外的双引号,也没有暗含的Java语法。 能够使用标准的网站开发工具。即使对那些对JSP一无所知的HTML工具,我们也可以使用,因为它们会忽略JSP标签(JSP tags)。 可以对开发团队进行划分。Java程序员可以致力于动态代码。Web开发人员可以将经理集中在表示层(presentation layer)上。对于大型的项目,这种划分极为重要。依据开发团队的大小,及项目的复杂程度,可以对静态HTML和动态内容进行弱分离(weaker separation)和强分离(stronger separation)。 在此,这个讨论并不是让您停止使用servlet,只使用JSP。几乎所有的项目都会同时用到这两种技术。针对项目中的某些请求,您可能会在MVC构架下组合使用这两项技术。我们总是希望用适当的工具完成相对应的工作,仅仅是servlet并不能填满您的工具箱。 二、JSP相对于竞争技术的优势 与.NET和Active Server Pages (ASP)相比 .NET是Microsoft精心设计的一项技术。ASP.NET是与servlets和JSP直接竞争的技术。JSP的优势体现在两个方面。 首先,JSP可以移植到多种操作系统和Web服务器,您不必仅仅局限于部署在Windows 和IIS上尽管核心.NET平台可以在好几种非Windows平台上运行,但ASP这一部分不可以。您不能期望可以将重要的ASP.NET应用部署到多种服务器和操作系统。对于某些应用,这种差异没有什么影响。但有些应用,这种差异却非常重要。 其次,对于某些应用,底层语言的选择至关重要。例如,尽管.NET的C#语言设 61 电子科技大学学士学位论文 计优良,且和Java类似,但熟悉核心C#语法和众多工具库的程序员很少。此外,许多开发者依旧使用最初版本的ASP。相对于这个版本,JSP在动态代码方面拥有明显的优势。使用JSP,动态部分是用Java编写的,而非VBScript过其他ASP专有的语言,因此JSP更为强劲,更适合于要求组件重用的复杂应用。 当将JSP与之前版本的ColdFusion对比时,您可能会得到相同的结论。应用JSP,您可以使用Java编写“真正的代码”,不必依赖于特定的服务器产品。然而,当前版本的ColdFusion满足J2EE服务器的环境,允许开发者容易的混合使用ColdFusion和Servlet/JSP代码。 与纯Servlet相比 原则上,JSP并没有提供Servlet不能完成的功能。实际上,JSP文档在后台被自动转换成Servlet。但是编写(和修改)常规的HTML,要比无数println语句生成HTML要方便得多。另外,通过将表示与内容分离,可以为不同的人分配不同的任务:网页设计人员使用熟悉的工具构建HTML,要么为Servlet程序员留出空间插入动态内容,要么通过XML标签间接调用动态内容。 这是否表示您只可以学习JSP,将Servlet丢到一边呢?当然不是!由于以下4种原因,JSP开发人员需要了解Servlet: (1)JSP页面会转换成Servlet。不了解Servlet就无法知道JSP如何工作。 (2)JSP由静态HTML、专用的JSP标签和Java代码组成。哪种类型的Java代码呢?当然是Servlet代码!如果不了解Servlet编程,那么就无法编写这种代码。 (3)一些任务用Servlet完成比用JSP来完成要好。JSP擅长生成由大量组织有序的结构化HTML或其他字符数据组成的页面。Servlet擅长生成二进制数据,构建结构多样的页面,以及执行输出很少或者没有输出的任务(比如重定向)。 (4)有些任务更适合于组合使用Servlet和JSP来完成,而非单独使用Servlet或JSP。 62 因篇幅问题不能全部显示,请点此查看更多更全内容