您的当前位置:首页校园二手交易网站毕业设计

校园二手交易网站毕业设计

2020-03-23 来源:小侦探旅游网
 .

摘要

本次毕业设计的题目是校园二手物品交易网站的设计与实现。本论文就毕业设计的内容,系统地阐述了整个校园二手物品交易网站的功能及实现。在指导老师的带领下设计并实现了从二手物品管理,到公告实现,用户处理,再到管理员系统。基本上实现了校园二手物品信息发布的功能流程,能够实现用户与商家在网上进行互动交流。本系统界面简单直观,易于操作和使用,交互性强。

伴随着各种Web开发技术的发展,如今网上交易已经变得十分容易。本文介绍的二手商品交易平台是一个服务于在校学生的交易网站,通过本网站用户可自由出售和购买商品,为广大学生提供了平等互利、方便快捷的交易空间。校园二手商品交易平台除了可以解决商务沟通,信息交流等问题外,更可以提高在校生的实际购买力,减少浪费,客观上提高在校大学生的生活水平,比起传统的二手交易,网上二手交易更加迅捷,实时性强,信息充裕,发展空间巨大。

本课题根据二手交易网站的应用需求,进行需求分析,并对网站系统规划设计。运用JSP技术、Sqlserver等与后台数据库链接等关键技术建设二手商品交易平台。实现了网上交易系统的会员登录与注册,网站首页、商品信息浏览、购物车功能、新闻发布等功能。

本网站是基于JSP进行设计与开发的,数据库是运用SQLserver2008,操作系统采用的是Windows7系统。

关键词:校园二手物品;交易;管理系统;系统实现

.

.

Abstract

The graduation project topic is the campus design and implementation of second-hand goods trading site. The papers on the graduation project, systematic exposition of the entire campus functions and achieve second-hand goods transaction management system. Designed and implemented from the second-hand goods management, to achieve the announcement, the user handle, then administrator of the system under the guidance of a teacher to lead. Used items campus basically realized the function of information dissemination process, and enables users to interact onlineemerchants. The system is simple and intuitive interface, easy to operate and use, strong interaction.

Along with various development Web development technologies, now online trading has become very easy. This article describes the second-hand goods trading platform is a service to students in the trading site can sell and buy goods through the site users freedom, equality and mutual benefit for the majority of students to provide a convenient and efficient trading space. Campus hand goods trading platform in addition to solve business communication, information exchange and other issues, but also can improve the real purchasing power of students, reduce waste, improve living standards objectively college students, compared to traditional secondary trading, online secondary trading more fast, real-time, information abundant, huge space for development.

The demand for second-hand goods subject according to the application of e-commerce systems, requirements analysis, system design and website. Using JSP technology, Sqlserver and other back-end database links with other key technology to build second-hand goods trading platform. Achieve an online trading system Login and registration, Home, product information browsing, shopping cart functionality, press releases and other functions.

This website is designed and developed based on JSP, the database is to use SQLserver2008, Windows7 operating system is used in the system.

Keywords:Campus hand goods; trading; management system; system implementation

.

.

目录

1 前言............................................................................................................................ 1

1.1 选题背景.......................................................................................................... 1 1.2 本课题的研究目的及意义.............................................................................. 2 1.3 可行性分析...................................................................................................... 3

1.3.1 网站建设技术可行性............................................................................ 3 1.3.2 网站建设经济可行性............................................................................ 3 1.3.3 校园二手物品交易网站运行的可行性................................................ 3

2 系统需求分析和主要实现技术................................................................................ 5

2.1 网站系统功能需求分析.................................................................................. 5 2.2 网站设计与开发的性能需求分析.................................................................. 5 2.3 网站设计与开发的主要技术分析.................................................................. 6

2.3.1 JSP分析.................................................................................................. 6 2.3.2 Java语言介绍 ........................................................................................ 7 2.3.3 J2EE ........................................................................................................ 8 2.3.4 struts框架 ............................................................................................... 9

3概要设计................................................................................................................... 12

3.1 功能模块图.................................................................................................... 12 3.2 处理流程设计................................................................................................ 12

3.2.1 系统操作流程...................................................................................... 12 3.2.2 数据增加流程...................................................................................... 13 3.2.3 数据修改流程...................................................................................... 14 3.2.4 数据删除流程...................................................................................... 15

4详细设计................................................................................................................... 16

4.1 系统E-R图 ................................................................................................... 16 4.2 数据库设计.................................................................................................... 16

4.2.1 SQL Server 2008介绍 .......................................................................... 16 4.2.2 数据库主要表单.................................................................................. 18 4.2.3 数据库连接技术.................................................................................. 19 4.3网站主要功能及代码展示............................................................................. 24

4.3.1网站首页............................................................................................... 24

.

.

4.3.2 用户注册.............................................................................................. 24 4.3.3 用户登陆.............................................................................................. 25 4.3.4 会员中心管理...................................................................................... 27 4.3.5 用户购物选择...................................................................................... 28 4.3.6 用户提交订单...................................................................................... 29 4.3.7 系统管理模块设计.............................................................................. 30

5 系统平台测试.......................................................................................................... 34

5.1 程序测试的重要性及目的............................................................................ 34 5.2 网站完整购物过程展示................................................................................ 34

5.2.1 网站首页.............................................................................................. 34 5.2.2 网站购物过程...................................................................................... 35

6 结论.......................................................................................................................... 40 致谢.............................................................................................................................. 41 参考文献...................................................................................................................... 42

.

.

1 前言

1.1 选题背景

在全球知识经济和信息化高速发展的今天,无论是在生活、工作还是学习方面,信息都是决定成败的关键,小到生活中的需求,大到企业的发展,特别是对企业实现跨地区、跨行业、跨国经营,信息都起着至关重要的作用,而电子商务作为一种崭新的商务运作模式,越来越受到企业的重视。

在如今的大学校园,伴随着学生购买能力的提高和每年的升学和毕业,这就导致了会存在各种类型二手物品的存在。目前,二手物品交易也伴随着网上交易平台的逐步扩展成为了当代大学生课余生活的一大热门。其实,现在在很多大学都会有这种情况,以我校为例,每年都会有一次红红火火的“跳蚤”市场,专门为大学生提供一个二手物品交易的平台,可见大学生对二手物品交易的需求,同时这样也避免了资源的浪费,但是,由于信息交流的落后,很多都局限于校园地摊售卖或者以发传单的形式进行宣传的方式进行交易。这种方式存在着很多的局限性和偶然性,远远无法满足广大学子对二手物品交易的需求。

根据一项调查表示,针对二手交易的物品类型,92.4%的学生选择交易的产品是书籍,特别是二手教材,70.1%的学生选择电子产品,包括手机、电脑、照相机等,43.6%的学生选择相关学习、生活用品、这项调查结果表明流通在学生二手市场的产品集中表现为书籍、电子产品、学习及生活相关用品。同时,由于当今社会背景下,新产品更新换代加快,学生购买产品一段时间后,愿意卖旧换新,或者有的学生在对产品使用一段时间后,想要购买档次更高的同类产品,也会采取卖旧换新的做法,随着每年学生的毕业,众多物品被选择出售,因此校园二手交易网站也应时代需求而被逐步重视。

随着社会的发展,产品的不断更新换代使得人们对物质的要求越来越高,随之而来的问题便是越来越多的校园二手货物堆积了下来却无法得到更好的利用。

现在我们处在一个信息量高度膨胀地时代。当今,人们处理的信息越来越多,几乎比过去翻了几翻于是,人们对信息处理工具-----计算机的要求越来越高。不仅需要计算机的处理速度越来越快,而且要求计算机的存储量也越来越大。数据处理手工操作,工作量大,出错率高,出错后不易更改。

与传统的交换方式相比,物品交换网站是另一种形态的宣传和交换通道,是传统交换方式的延伸。它除了一般的电子商务功能外,还包括产品展示,商品检索,在线交友等服务;在迎合了电子商务这个社会大前提下,每个人都可以在网

.

.

上购买或者交换自己喜欢的商品,从而可以大大地节约资金、时间和资源,并起到促进整个社会和谐的作用。

中国加入世界贸易组织,外国物流企业进一步进入中国物流市场,给中国带来了新的物流服务理念,管理模式,以及新的物流技术与装备,对中国物流的发展是一个巨大的推动从目前的种种情况来看,社会竞争越来越激烈,在这个竞争和效率并存的社会,人们有很强的时间观念,信息社会的高科技,商品经济化的高效益,使网络的应用已普及到经济和社会生活的各个领域基于JSP模式的网络购物网站克服了传统销售方式时所带来的人力、物力以及时间上的浪费,同时也保证了销售过程的科学化、高效化,使销售过程方便、准确、快捷。网络的发展推动了客户与商家之间的交易的高效性,网上销售已经成为主流。

1.2 本课题的研究目的及意义

高校的二手交易市场是一个大市场,每年都有毕业生要毕业,每年都有新生来报到,毕业生们不可能将几年来留存下的东西都带走,有些物品已成为累赘,卖掉反而还能赚些路费。学生们的消费水平本来也不高,都希望能买到物美价廉的商品,这个时候,网上二手交易市场的作用就发挥出来了。卖主可以在网上登记自己要处理的物品以及售卖价格,联系方式,买主则可以在网上搜索自己所需要的若没有,也可以在网上发布求购信息,当然,网上二手交易市场不仅能处理毕业生的多余物品,平时学生们有任何闲置的东西或有任何需求都可以免费在网上二手交易市场上得到处理,并且不限时间也不限地点。这一切只需要大家在电脑上点几下鼠标就万事大吉了,其效率是先前面对面交易方式的数倍。

随着各种主流技术的日渐成熟,越来越多的校园二手市场交易网站涌现了出来,校园二手货物得到了更好的二次利用。与传统的交换方式相比,校园二手物品交易网站是另一种形态的宣传和交换通道,是传统交换方式的延伸。它除了一般的电子商务功能外,还包括产品展示,商品检索等服务;在迎合了电子商务这个社会大前提下,每个人都可以在网上购买或者交换自己喜欢的商品,从而可以大大地节约资金、时间和资源,并起到促进整个社会和谐的作用。

从目前的种种情况来看,社会竞争越来越激烈,在这个竞争和效率并存的社会,人们有很强的时间观念,信息社会的高科技,商品经济化的高效益,使网络的应用已普及到经济和社会生活的各个领域,对于大学生而言更是如此,最求效率已经成为当代大学生所追求的主要品质之一。

基于JSP模式的网上校园二手交易网站克服了传统销售方式时所带来的人力、

.

.

物力以及时间上的浪费,同时也保证了销售过程的科学化、高效化,使销售过程方便、准确、快捷。校园二手交易网站的发展推动了学生之间的交易的高效性,校园二手交易网上销售已经成为主流。

1.3 可行性分析

1.3.1 网站建设技术可行性

设计这样一个网站,使得校园二手物品的交易信息得到了整合,而它面对的群体主要是大学生,所以该网站的规模不会太大,网站的设计与开发不会很复杂。 本网站的设计与开发所选择的开发工具全部都是开源软件,在网上就可以进行相关软件的下载,使用的语言是JSP语言,数据库运用的是SQLserver2008,在大学期间所学知识足以满足设计开发的需求,所以说在技术上是可行的。

1.3.2 网站建设经济可行性

由于本校园二手交易网站的设计与开发是满足广大在校大学生需求的,所以只需一台计算机,在计算机上安装相关开发程序就可以进行网站的设计与开发,所以说就成本而言是很小的,完全在承受范围内。

高校既是知识密集的地方,也是电脑普及率最高的地方之一,大部分学校为了便利学生的学习有生活,都建有内部局域网。校园网站网络使用费用很便宜,局域网将高校内大部分部门、机构、宿舍等联结起来,以达到信息资源传输与共享、提高效率、优化组合的目的。

1.3.3 校园二手物品交易网站运行的可行性

校园二手交易网站上提供许多方便学生学习与生活物品的信息,如学生宿舍没洗衣机,为让大家清洗衣物方便,宿舍同学们就可以一起购买一台洗衣机,这样既方便了大家,也可以在大学生活结束的时候,变卖给低年级的同学。还有,二手旧自行车在大学生中非常抢手的,大学校园的校区大多都很大,像我们学校就占地近三千多亩,每天上课、做实验什么的,跑来跑去实在很辛苦,有时偶尔还要外出结伴游玩,对自行车需求自然很多。买新的,价格高,还容易因为不了解行情多花冤枉钱,这样来说二手车就成了最好的选择。用了两年三年的,再便宜转手,这样是很划算,即使不要了也不会很是心疼。

再比如,学期开始,很多学生先不去买新书,而到学校附近书店或者跟在校园BBS上寻找与课程要求相同的教材,这在大学生中十分普遍。相同的书籍,二手的要比上新的便宜很多,况且,在旧书中还有高年级的笔记,更加实用。大学生对二手物品的需求种类繁多,数量庞大,如电子产品、学习生活用品等等,各

.

.

种各样的二手物品都会被购买。

.

.

2系统需求分析和主要实现技术

2.1 网站系统功能需求分析

本网站的设计与开发主要是面向本校全校师生的,依托于本网站提供给这些用户一个发布和交流二手物品信息的平台。在大学校园,存在着很多的二手物品,但是由于信息资源不流通以及传统二手物品信息交流方式的笨拙,导致了很多人让具有一定价值或者很大价值的二手物品的囤积,乃至被当作废品处理到造成资源的极大浪费。现在通过进入到本网站,可以方便快捷的发布和交流二手物品的信息,并且可以尽可能详细的发布自己二手物品的信息,同时也可以增加卖家与买家之间的交流沟通,每一个人都可以让他发布的二手物品信息让全校都可以看得到,争取到了信息资源的最大化利用,同时也减少了资源的浪费。

校园二手物品交换网站工作流程为:系统启动并进入登录界面,用户进行登录,所有用户都可以浏览系统主页面。用户浏览、阅读和查询信息,注册用户除了可以完成用户的操作外,还可以进行对自己物品进行的操作(包括对自己的物品的增加、修改和删除的操作)。用户可以选择交换的物品进行交换。

本网站完成的系统功能主要有:用户设置功能、发布信息功能、管理信息功能、搜索信息功能、购物车功能、订单管理功能以及系统管理功能等多项功能,满足二手物品交易的各项需求,主要业务功能如下:

用户注册:同学们可以在本网站上进行注册成为会员。

用户登录:只有登陆后的用户才可以发布二手物品交易信息,管理员登陆后可以进行系统管理。

发布信息:普通用户和管理员登陆后都可以进行信息的发布。

修改信息:普通用户可以修改自己发布的商品信息,管理员可以修改所有信息。

删除信息:普通用户可以删除自己发布过的商品信息,管理员可以删除所有信息。

浏览信息:游客、普通用户和管理员都可以对网站信息进行浏览。 添加新闻:管理员可以添加网站相关新闻。

查看新闻:游客、普通用户和管理员都可以查看网站发布的新闻。 删除新闻:管理员可以对网站发布的新闻进行删除。

2.2 网站设计与开发的性能需求分析

本网站是基于JSP进行设计与开发的,对于环境的要求不是很高,而且现在

.

.

硬件的性能已经非常出色,学生自己的电脑就完全可以满足网站设计与开发的需求,本台计算机的配置如下: CPU型号:Intel 酷睿i5 480M CPU主频:2.66GHz

内存容量:2GB DDR3 1333MHz 硬盘容量:500GB 7200转

显卡芯片:ATI Mobility Radeon HD 5650 数据库:SQLserver 2008 开发环境:Windows 7 编程语言:JSP

2.3 网站设计与开发的主要技术分析

Java不依赖平台的特征使得它受到了广泛的关注。本网站的设计与开发主要采用J2EE技术体系,使用分层思想来设计程序。J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,使得它提供基于组件设计、开发、部署和管理的解决方案,不受任何特定操作系统、网络环境、硬件平台的束缚。本网站在技术上除了使用JSP外,还采用了Struts等技术。

2.3.1 JSP分析

J S P是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。

JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以<%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

.

.

使用JSP的优势主要有:

(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。 (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。

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

(4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。

JSP本身并不是一种脚本语言,它只是提供了一种使镶嵌在 HTML 页面中的脚本程序得以运行的环境。

2.3.2 Java语言介绍

Java语言是美国Sun公司于1955年推出的一种简单的、面向对象的、分布的、可解释的、安全的、结构的、中立的、可移植的、性能很优异的多线程的、动态的语言。其前身为OAK语言,是Sun公司为一些消费型电子产品而设计的一个通用环境。他们最初的目的知识为了开发一种独立于平台的软件技术。通过Sun公司的工程师的不懈努力以及全世界无数编程爱好者的使用,Java终于发展为今天这样一个集桌面(J2SE)、网络(J2EE)、移动平台(J2ME)应用为一体的功能强大的编程语言。目前Java由于平台无关及分布式特性,最重要的应用是应用在网络上面。

近年来,Java变的非常流行。Java的快速发展以及被广泛接受都应归功于他的设计特性,特别是他的承诺:一旦编写了一个程序,在任何地方都可以运行。就像Sun公司声称的,Java是简单的(simple)、面向对象的(object oriented)、分布式的(distribution)、解释型的(interpreted)、健壮的(robust)、安全的(secure)、结构中立的(architecture neutral)、可移植的(portable)、高性能的(high performance)、多线程的(multithreaded)和动态的(dynamic)。

.

.

Java是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。现在,它不仅用于web程序设计,而且用于在服务器、台式机和移动设备上开发跨平台的独立应用程序。用它开发过与火星探测器通信并控制其在火星上行走的代码。许多曾经认为Java言过其实的公司现在使用Java开发分布式应用程序,便于客户和合作伙伴在internet上访问。现在,一旦开发新的项目,公司都会考虑如何利用Java使工作变得更加容易。

2.3.3J2EE

J2EE技术是Java网络应用技术,广泛应用于企业级的应用。Sun公司在1998年发表JDK1.2版本的时候,使用了新名称Java 2 Platform,即“Java2平台”,修改后的JDK称为Java 2 Platform Software Develping Kit,即J2SDK。并分为标准版(Standard Edition,J2SE), 企业版(Enterprise Edition,J2EE),微型版(MicroEdition,J2ME)。J2EE便由此诞生。

J2EE组件和“标准的” Java类的不同点在于:它被装配在一个J2EE应用中,具有固定的格式并遵守J2EE规范,由J2EE服务器对其进行管理。J2EE规范是这样定义J2EE组件的:客户端应用程序和applet是运行在客户端的组件;Java Servlet和Java Server Pages (JSP) 是运行在服务器端的Web组件;Enterprise Java Bean (E JB )组件是运行在服务器端的业务组件。

J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制,其有以下几个方面的优势:

1. 保留现存的IT资产:

由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEA Tuxedo、IBM CICS,IBM Encina,、InpriseVisiBroker以及Netscape Application Server。这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的'企业计算'领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。

2. 高效的开发:

J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间供应商去完成。

.

.

这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务:

状态管理服务 -- 让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。

持续性服务 -- 让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。

分布式共享数据对象CACHE服务 -- 让开发人员编制高性能的系统,极大提高整体部署的伸缩性。

3. 支持异构环境:

J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。

4. 可伸缩性:

企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。

5.稳定的可用性:

一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择鲁棒性(稳定性)更好的操作系统如Sun Solaris、IBM OS/390。鲁棒性最好的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理想的选择。

2.3.4 struts框架

.

.

Struts 是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品Struts是Apache软件基金下Jakarta项目的一部分。除Struts之外,还有其他成功的开源新闻,包括Tomcat, Ant 和Velocity。2000 年Craig R. McClanahan 先生贡献了他编写的JSP Model 2 架构之Application Framework 原始程序代码给Apache 基金会,成为Apache Jakarta 计划Struts Framework 前身。

Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)的模式应用框架的开源框架,是利用JavaServlet和JSP构建Web应用的一项非常有用的技术。

Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。Struts把Servlet、JSP、自定义标签和信息资源整合到一个统一的框架中

,开发人员利用其进行开发时不再用自己编码实现全套MVC模式,

极大的节省了时间。

Struts包含了一组想相互协作的类、Servlet和JSP标记,他们共同组成了一个极重要的MVC模版。通过定义可以看出,Struts是Web应用的开发框架,Struts包含及其丰富的标记库和独立于该框架工作的实用程序类。如图2-1显示了Struts的基本结构。

图2-1Struts的基本结构

响应 视图(JSP) 读取 模型 客户(浏览器) 请求 控制器 分配 业务逻辑 转发实例 通过图2-1可以看出,采用Struts框架结构的Web应用程序主要由控制器、业务逻辑、模型和视图组。其中的控制器、模型和视图作为Struts框架的主要组

.

.

成部分,而事务逻辑则是我们需要实现的系统业务逻辑处理部分。

Struts的优点主要集中体现在两个方面:Taglib和页面导航。

Taglib是Struts的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。

关于页面导航,它使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。

.

.

3概要设计

3.1 功能模块图

注册登录 发布二手信息 信息查询 用户 发表信息 购物订单 新浏览 校园二手物品交易网站系统 帐户管理 会员管理 出售信息管理 管理员 换物信息管理 系统管理 公告管理 资讯管理 图3-1 功能模块图

3.2 处理流程设计

3.2.1 系统操作流程

.

.

系统主界面 错误信息 系统登录界面 系统管理 输入操作员及密码 数据库 检查 密码错误 密码正确 功能界面 功能处理 图3-2 系统操作流程图

3.2.2 数据增加流程

添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判断,合法则写入保存至数据库,不合法则重新输入数据。数据增加流程如图3-3所示:

.

.

开始 自动生成编号 输入数据 是否合法 写入数据库 结束

图3-3 数据增加流程图

3.2.3 数据修改流程

在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。数据修改流程图如图3-4所示。

.

.

开始 选择需要修改记录 输入数据 是否合法 写入数据库 结束 图3-4 数据修改流程图

3.2.4 数据删除流程

当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如图3-5所示。

开始 选择需要删除记录 是否删除 更新数据库

图3-5 数据删除流程图

.

.

4 详细设计

4.1 系统E-R图

用户名

编号

类别 名称 登录

4.2 数据库设计

4.2.1 SQL Server 2008介绍

SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的SQL Server版本。

微软大部分的产品的更新换代都有一个规律,那就是“大改”和“小改”交替进行。所以,如果按照惯例,从2005到2008本应当是一次“小改”,不过从很多方面来看完全不止是“小改”而已。虽然,用户界面的改动确实并不大,仍然和之前的版本相似,但是商业智能工具和数据库引擎本身的改变非常显著。

现在的2008版增加了数据压缩特性,如果你的数据量迅猛增长中,这个特

.

密码 地址 电话 用户 品牌 管理 属于 二手物品 型号 详细信息发布信息 购物 换物 系统管理 用户 图4-1 系统E-R图

.

性就非常有用。微软在2008中同时实现了行压缩和列压缩。我们在压缩和解压缩过程的数据读写中显然要付出一定性能上的代价;不过,微软预计由于磁盘I/O通量减少的程度远超过解压缩所要耗费的性能代价,所以最终的查询性能反而会有所提高。

备受关注的还有可以在引擎水平实施的透明数据加密功能,也就是说可以对整个数据库进行加密,使用户无需对应用程序进行任何修改就能够对数据进行加密。

对于现在非常流行的业务连续性领域,SQL Server 2008的数据库镜像功能也得到了加强,转换的操作速度更快,而且创建和驱动也都更容易了。当然,数据库镜像的实现要求日志文件在两个服务器之间能够顺利流动交换,所以新的日志流压缩功能非常有用,能够加速数据库镜像的执行速度。

新的空间数据类型是2008最大的变化之一。有了这种数据类型,我们就可以在地表图上标出坐标数据,并进行精密的计算,例如计算出在库房10公里范围内住有多少客户。

备份流程无疑是数据库的重中之重,而微软也重写了SQL Server 2008的备份系统以便让大家对其备份性能的改进刮目相看。

报表服务(Reporting Services)的变化可能对SQL Server 2008的商业智能堆栈最重要的改进,微软已对其进行了大整改,并添加了好几个能吸引眼球的功能:不仅仅升级了Report Builder和Report Designer,而且增加了一个具有Office风格丝带界面的独立报表构造器,供大家从网上下载。在数据显示方式的控件方面,SQL Server 2008也有新举措:一个是Tablix数据区,整合了表格、序列和矩阵的特性,用户自己可以灵活地改变和自定义数据的显示方式。另外一个就是仪表(Gauge)数据控件,仪表数据区可以显示单个值,而多个共享功能仪表更可以用来对多个值进行有效的比较。此外,报表服务还支持新的图表数据类型的显示。

微软一如既往地为大家提供了多个不同的SQL Server版本,以便广大客户根据自己的水平和预算以及所需要的功能来选择。其中,最牛的版本无疑是SQL Server 2008企业版,为大公司提供了SQL Server所能提供的所有特性和全部的商业智能工具。 而标准版则是用来支持部门级和中小型OLTP系统的,特性和商业智能功能上都有所删减。此外微软还提供了工作组版、Web版、精简版和Express版。其中最后一个版本受到了很多想要转用客户端服务器数据库引擎的小企业的青睐,对于有Access使用经验和基础的小企业来说,从Access到

.

.

SQL Server Express并不是一件难事,而且这是可以免费下载的。

SQL Server 2008 在Microsoft的数据平台上发布,可以组织管理任何数据。可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中。可以对数据进行查询、搜索、同步、报告和分析之类的操作。数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里。这个平台有以下特点:

可信任的——使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。

高效的——使得公司可以降低开发和管理他们的数据基础设施的时间和成本。

智能的——提供了一个全面的平台,可以在你的用户需要的时候给他发送观察和信息。

4.2.2 数据库主要表单

➢ 用户注册表单

用户注册表单是用来记载用户注册的情况,便于管理员的管理,查看用户注册信息,如图4-2所示:

图4-2 查看用户注册信息

➢ 管理员表单

管理员表单用来记载管理员的信息,如图4-3所示:

图4-3 记载管理员信息

➢ 新闻发布表单

新闻发布表单用于管理员对网站的一些动态新闻进行发布,使用户能够更好的了解网站动态及商品信息,对于不符合规定的新闻,管理员也可以及时删除,

.

.

帮助网站建设,如图4-4所示:

图4-4 新闻发布

➢ 商品表单

商品表单便于管理员管理各个商品的信息,对于上架超过规定时间的商品或商品已经售空的,管理员可以及时将该商品的信息修改,如图4-5所示:

图4-5用户发布商品信息

➢ 会员管理表单

管理会员信息,注册时间,发布网站公告,管理订单等信息,如图4-6所示:

图4-6 会员管理

4.2.3 数据库连接技术

JDBC技术是Java DataBase Connectivity的缩写,它是SUN公司提供的一种支持基本SQL功能的通用的应用程序接口(Application Programming Interface)。它由一组用Java语言编写的类和接口组成。通过这些类和接口,程序开发人员可以在Java语言中方便地建立与数据库的链接,通过执行相应SQL语句,完成对不同数据库的访问。因此,开发人员使用JDBC API可以不必编写一个应用程序来访问Sybase数据库,又另外编写一个应用程序去访问Oracle数据库,再写一个应用程序访问Microsoft的SQL Server。不但如此,使用Java语言编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上开发不同的应用程序。

简单地说,JDBC能完成下列三件事:

.

.

同一个数据库建立连接; 向数据库建立连接; 处理数据库返回的结果。

JDBC是一种通用低层的应用程序编程接口,它在不同的数据库功能模块的层次上提供一个统一的用户界面。说JDBC是一处低级的API,是指它直接调用SQL命令,它比其他的一些数据库连接API要容易使用些,但它有同样可以作为更高级的,用户办面更友好的API或开发工具基础。

很多可视化的Java开发工具,如Visual Age For Java、Visual Café、J++等都提供了基于JDBC的更面向用户的类和包,直接将关系数据库的表或视图映射为Java类,程序员通过可视化工具直接对Java对象进行操作,而真正需要的SQL调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。另一种使用JDBC API 的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的SQL命令以及Java程序。通过这处方式,用户可以完成对数据库的操作,即使他并不了解SQL语法以及JDBC编程。

数据库访问的三层结构如图4-7所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。

浏览器

图4-7使用中间件的数据库访问三层结构

数据库 Web服务器 中间件 数据库服务器 用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过Web服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本系统采用的正是这样的三层结构的数据库访问模式。

.

.

在三层模型中,命令将被发送到服务的”中间层”,而”中间层”将SQL语句发送到数据库。数据库处理SQL语句并将结果返回”中间层”,然后”中间层”将它们返回用户。其模型如图4-8所示。

图4-8JDBC的三层模型

DBMS 数据库服务器 DBMS专用协议 应用服务器 (事务)服务器 JDBC HTTP,RMI或CORBA调用 Java Applet 客户机(GUI) 因为”中间层”可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层API,这个API可以由“中间层”进行转换,转换成低层的调用。所以在许多种情况下,三层模型可以提供更好的性能,本系统中所采用的就是此种模型。

JDBC是JAVA应用程序与数据库的沟通桥梁。它提供了三项服务功能:一、与数据库建立连接。二、将SQL语句传递给数据库。三、从数据库取得SQL语句的执行结果。当JDBC要与数据库建立连接前,首先,它必须先取得连接此数据库的JDBC驱动程序,Class.forName()即是在执行此项工作。建立数据库连接的第一步骤就是将JDBC驱动程序的类载入至JVM(Java VirtualL Machine)中,本系统中利用java.lang.Class类内的forName()静态函数依据指定的类名称,将JDBC驱动程序载入进来。完成载入驱动程序的步骤后,必须使用

.

.

java.sal.DriverManager类所提供的getConnection()静态函数,取得与数据库间的连接对象。此连接对象的类类型为java.sal.Connection,必须通过它才能将SQL指令传递给数据库,而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得Statement对象才能对数据库执行SQL指令。Statement主要实现两个功能:执行SQL语句以及取得执行结果。在java.sql.Statement的sql对象中执行查询或修改命令的函数后传回的是一个ResultSet对象,这个对象提供了一个存取SQL执行结果的管道,以便通过它将表格数据从数据库中取出。每个Statement对象只能产生一个ResultSet对象。

数据库连接如图4-9所示: .

图4-9数据库的连接处理

是 返回执行结果 SQL是否出错 否 返回错误结果 执行SQL操作 是 建立数据库连接 建立是否成功 否 出错处理 建立JDBC—ODBC桥 数据库的连接处理具体实现如下:

.

.

//建立JDBC——ODBC桥 sun.jdbc.odbc.JdbcOdbcDriver; //桥建立不成功时的错误处理 catch(ClassNotFoundException event){}

//建立与数据库的连接,并发送SQL查询语句,将结果保存到rs对象中

Con=建立JDBC——ODBC桥 Sql=SQL查询语句 执行查询 Rs=返回结果

//SQL出错处理

catch(SQLException e1){}

有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。

Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。

Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。

JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet 的网页,而该 applet 使用的信息可能来自远程数据库企业也可以用 JDBC 通过 Intranet 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、 Macintosh 和UNIX 等各种不同的操作系统)。随着

.

.

越来越多的程序员开始使用Java 编程语言,对从 Java 中便捷地访问数据库的要求也在日益增加。

MIS 管理员们都喜欢 Java 和 JDBC 的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务, Java 和JDBC 可为外部客户提供获取信息更新的更好方法。简单地说,JDBC 可做三件事:与数据库建立连接、发送 SQL 语句并处理结果。

4.3网站主要功能及代码展示

4.3.1网站首页

网站首页以清新的色彩搭配设计,突出简洁大方的效果。在网站首页,用户可以选择自己想要进行的一些操作,比如查询新闻资讯、进行商品查询、查看商品分类等功能,而且还可以简单明了的看到最新商品的相关信息,以便用户更方便的找到自己多需要的二手商品。

4.3.2 用户注册

访客可以进行注册会员,注册会员需要填写用户的用户名、登陆密码、个人资料等信息,用户注册成为会员后,可以在本网站上进行只有会员权限才可以用的功能。

实现个人会员注册功能的主要代码如下: elseif(method.equals(\"PREG\")){

String username =

Filter.escapeHTMLTags(request.getParameter(\"username\").trim());

String password =

Filter.escapeHTMLTags(request.getParameter(\"password\").trim());

String type = \"person\"; String realname =

Filter.escapeHTMLTags(request.getParameter(\"realname\").trim());

String sex =

Filter.escapeHTMLTags(request.getParameter(\"sex\").trim());

.

String sheng =

.

Filter.escapeHTMLTags(request.getParameter(\"sheng\").trim());

String city =

Filter.escapeHTMLTags(request.getParameter(\"city\").trim());

String bir = Filter.escapeHTMLTags(request.getParameter(\"bir\").trim()); String telphone =

Filter.escapeHTMLTags(request.getParameter(\"telphone\").trim());

String email =

Filter.escapeHTMLTags(request.getParameter(\"email\").trim());

String question =

Filter.escapeHTMLTags(request.getParameter(\"question\").trim());

String answer =

Filter.escapeHTMLTags(request.getParameter(\"answer\").trim());

String address =

Filter.escapeHTMLTags(request.getParameter(\"address\").trim());

String lastip = request.getRemoteAddr(); int off = 1;

int flag = memberBean.personReg(username, password, type, realname,

sex, bir,sheng,city, telphone, email, question, answer, lastip, off,address);

if(flag == Constant.SUCCESS){

List siteList = newSystemBean().getSiteInfo(); String sitename = siteList.get(0).toString();

request.setAttribute(\"message\注册成功!恭喜您成为

\"+sitename+\"的注册会员!\");

request.getRequestDispatcher(\"login.jsp\").forward(request, response);

} else{

request.setAttribute(\"message\系统维护中,请稍后再试!\");

request.getRequestDispatcher(\"personreg.jsp\").forward(request, response);

} }

4.3.3 用户登陆

.

.

用于用户登陆进入系统的界面,登陆后,用户可以进行更多的操作,比如把商品添加到购物车、发布商品信息、进行订单管理等,用户需要建立一个账号和密码才能进入使用系统,当用户输入自己的账号和密码时,系统进行验证,如果正确,进入系统;如果错误,则提示用户输入的信息不正确,重新输入信息.该界面还为新用户设置了专门的注册链接,通过点击注册按钮直接进入新用户的注册界面.在登陆的时候,密码框采用密文形式输入,保护用户登陆的安全性。

实现会员登录这一功能的主要代码如下:

public void doGet(HttpServletRequest request, HttpServletResponse response)

}

throwsServletException, IOException {

doPost(request,response);

public void doPost(HttpServletRequest request, HttpServletResponse response)

response.setContentType(Constant.CONTENTTYPE);

request.setCharacterEncoding(Constant.CHARACTERENCODING); HttpSession session = request.getSession(); MemberBeanmemberBean = new MemberBean(); String method =

throwsServletException, IOException {

Filter.escapeHTMLTags(request.getParameter(\"method\").trim());

if(method.equals(\"HEADUSERLOGIN\")){

String reg_user =

Filter.escapeHTMLTags(request.getParameter(\"reg_user\").trim());

String reg_pwd =

Filter.escapeHTMLTags(request.getParameter(\"reg_pwd\").trim());

String reg_type =

Filter.escapeHTMLTags(request.getParameter(\"reg_type\").trim());

.

String lastip = request.getRemoteAddr();

int flag = memberBean.memberLogin(reg_user, reg_pwd, reg_type); if(flag == Constant.SUCCESS){

String info = memberBean.getLastTimeIP(reg_user);

.

int flag2 = memberBean.upmemberLogin(reg_user, lastip); if(flag2 == Constant.SUCCESS){

session.setAttribute(\"member\session.setAttribute(\"type\session.setAttribute(\"info\

request.getRequestDispatcher(\"login1.jsp\").forward(request, response);

} else{

session.setAttribute(\"member\session.setAttribute(\"type\session.setAttribute(\"info\

session.setAttribute(\"message\登陆成功\");

request.getRequestDispatcher(\"login1.jsp\").forward(request, response);

}

}

4.3.4会员中心管理

用户注册成为会员后,可以进入会员中心,在会员衷心,会员可以在这里对本人的个人资料进行管理和修改,也可以在这里发布自己的商品信息,并且对自己购物车内的物品进行处理,同时处理其他会员对自己商品提交的订单。

个人会员修改登录密码的主要代码如下: elseif(method.equals(\"Editpwd\")){

String member=(String)session.getAttribute(\"member\"); String type=(String)session.getAttribute(\"type\"); if(member==null||type==null){ } else{

String oldpwd = MD5.MD5(request.getParameter(\"oldpwd\").trim()); String newpwd =

response.sendRedirect(\"error.jsp\");

MD5.MD5(request.getParameter(\"newpwd\").trim());

.

int flag = memberBean.editPassword(member, oldpwd, newpwd);

.

switch (flag){

caseConstant.SUCCESS:

request.setAttribute(\"message\密码修改成功!\");

request.getRequestDispatcher(\"member/info/editpwd.jsp\").forward(request,

response);

break;

caseConstant.PASSWORD_ERROR:

request.setAttribute(\"message\原始密码错误,请确认权

限!\");

request.getRequestDispatcher(\"member/info/editpwd.jsp\").forward(request,

response); \");

request.getRequestDispatcher(\"member/info/editpwd.jsp\").forward(request,

break;

caseConstant.SYSTEM_ERROR:

request.setAttribute(\"message\系统维护中,请稍后再试!

response);

}

}

}

break;

4.3.5 用户购物选择

用户选中商品后,选中该商品,选择加入购物车,输入想要购入数量,该商品就会添加到用户的购物车中,用户就可以在会员中心进行进一步的操作。

实现购物车功能的主要代码如下:

elseif(method.equals(\"addprep\")){

String spid=request.getParameter(\"spid\").trim(); String num=request.getParameter(\"num\").trim(); String member=(String)session.getAttribute(\"member\");

String str=newComBean().getString(\"select member from sp where

id='\"+spid+\"'\");

.

.

//System.out.println(str); if(str.equals(member)){

request.setAttribute(\"message\不能购买自己的商品!\"); request.getRequestDispatcher(\"index.jsp\").forward(request,

response);

} else{

int flag = hzb.addPrep(spid, Integer.parseInt(num), member,str); if(flag == Constant.SUCCESS){

request.setAttribute(\"message\操作成功!\");

request.getRequestDispatcher(\"index.jsp\").forward(request,

response);

} else{

request.setAttribute(\"message\系统维护中,请稍后再试!\");

request.getRequestDispatcher(\"index.jsp\").forward(request, response);

}

}

}

4.3.6 用户提交订单

用户添加购物车后,在会员管理忠心可以对购物车中的商品进行选择,提交订单,约定交货时间和地点,完成交易。

用户提交订单这一功能实现的代码如下:

elseif(method.equals(\"scdDan\")){

String check[] = request.getParameterValues(\"checkit\"); String member=(String)session.getAttribute(\"member\"); if(check == null){

request.setAttribute(\"message\请选择要提交生成订单的购物记

录!\");

request.getRequestDispatcher(\"member/prep/index.jsp\").forward(request,

response);

.

.

} else{

int id2[]= newint[check.length]; for(int i = 0;iString flag = tb.scdDan(id2,member); if(flag !=null){

request.setAttribute(\"flag\int s = Integer.parseInt(check[i]); id2[i] = s;

request.getRequestDispatcher(\"member/prep/up.jsp\").forward(request, response);

} else{

request.setAttribute(\"message\系统维护中,请稍后再试!\");

request.getRequestDispatcher(\"member/prep/index.jsp\").forward(request, response);

} }

}

4.3.7 系统管理模块设计

管理员可以登录后对网站新闻发布、公告发布、会员管理、商品信息管理等功能进行管理,维护网站的正常运行,管理员登录界面如图4-10所示,管理员管理界面如图4-11所示:

.

.

图4-10 管理员登录界面

图4-11 管理员管理界面

.

.

实现管理员登录这一功能主要代码如下:

publicvoiddoGet(HttpServletRequestrequest, HttpServletResponse response) }

publicvoiddoPost(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException {

throwsServletException, IOException {

.

doPost(request,response);

response.setContentType(Constant.CONTENTTYPE);

request.setCharacterEncoding(Constant.CHARACTERENCODING); try{

String method=request.getParameter(\"method\").trim(); AdminBeanloginbean = newAdminBean(); HttpSession session = request.getSession(); session.setMaxInactiveInterval(1200); SystemBeansystembean = newSystemBean(); String sysdir = systembean.getDir(); if(method.equals(\"one\")){//admin登录

String username = request.getParameter(\"username\"); String password = request.getParameter(\"password\"); if(username == null||username.trim().equals(\"\")){

request.setAttribute(\"message\请正确输入用户名!\");

request.getRequestDispatcher(sysdir+\"/login.jsp\").forward(request, response);

}

elseif(password == null||password.trim().equals(\"\")){

request.setAttribute(\"message\请输入密码!\");

request.getRequestDispatcher(sysdir+\"/login.jsp\").forward(request, response);

} else{

String md5password = MD5.MD5(password); String agent = request.getHeader(\"user-agent\"); StringTokenizerst = newStringTokenizer(agent,\";\");

.

String useros=st.nextToken();

String loginip = request.getRemoteAddr();

int flag = loginbean.adminLogin(username,md5password,

password,useros,loginip);

switch (flag){

caseConstant.SUCCESS:

List list = loginbean.getAdminInfo(username); session.setAttribute(\"user\session.setAttribute(\"list\

request.getRequestDispatcher(sysdir+\"/\").forward(request, response);

break;

caseConstant.NAME_ERROR:

request.setAttribute(\"message\用户名错误!请确认

管理权限!\");

request.getRequestDispatcher(sysdir+\"/login.jsp\").forward(request, response);

break;

caseConstant.PASSWORD_ERROR:

request.setAttribute(\"message\密码错误,请确认管

理权限!\");

request.getRequestDispatcher(sysdir+\"/login.jsp\").forward(request, response);

}

}

}

break;

.

.

5系统平台测试

5.1程序测试的重要性及目的

(1)测试的重要性

软件的测试在软件生命周期中占据重要的地位,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。

(2)测试的目的

在软件设计与开发成功后,对其进行测试是必不可少的一个步骤,在谈到软件测试时,许多人都引用Grenford J. Myers的一个观点:

①软件测试是为了发现错误而执行程序的过程; ②测试是为了证明程序有错,而不是证明程序无错误; ③一个好的测试用例是在于它能发现至今未发现的错误; ④一个成功的测试是发现了至今未发现的错误的测试。

这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。

软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望做的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事情(Do it right)。第二是提供信息,比如提供给开发人员回馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件软件产品本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。

5.2网站完整购物过程展示

5.2.1 网站首页

.

.

打开本网站后,首先看到的是本网站的首页,如图5-1所示:

图5-1 网站首页界面

5.2.2 网站购物过程

第一步,用户可以在本网站注册成为会员,会员注册如图5-2所示:

.

.

图5-2 用户注册界面

第二步,用户注册成为本网站会员后,可以登录会员,会员登录界面如图5-3所示:

.

.

图5-3 会员登录界面

第三步,会员在本网站选中想要购买的商品后,可以选择购买数量并将其添加到购物车,添加购物车如图5-4所示:

.

.

图5-4 用户添加商品到购物车界面

第四步,添加购物车后,用户进入会员中心,选择我的购物车选项就可以看到自己要购买的商品,约定交货时间和地点就可以提交订单,用户提交订单如图5-5所示:

.

.

图5-5 用户提交订单界面

第五步,卖家用户登录后进入会员中心,点击客户提交订单,就可以看到买家提交的订单信息,根据订单信息就可以完成整个交易过程。

经过上述通过对网站整个购物过程的演示对本系统进行测试后,系统基本满足开发的要求,测试结束。

.

.

6 结论

本文通过本网站设计与开发,我从中得出下列结论:

(1)学习一门新技术,最重要的是理论与实践相结合,在掌握好理论知识的基础上,要勤加动手,多去实践,才能真正掌握知识。

(2)一个网站的设计与开发,经验是非常重要的,经验不足的话,就会导致在设计与开发的过程中有考虑不周的的地方,对网站的开发造成影响,在这次的毕业设计当中我积累到了很多的实践经验。

(3)一个网站想要吸引更多的用户去访问和使用,美观和有特色的界面是相当重要的,而且功能要健全。不过由于我对网站设计与开发的经验不足,我设计的图形界面比较简单,并且只是对基本功能进行了开发。

(4)本次开发,我参考了很多本系统的例子,吸取了一些别的本系统的长处,对自己的毕业设计进行了完善,但是还有很多的不足之处,有待以后进一步学习。

由于时间仓促,本次设计由我完成其制作,对我这样一个JSP新手而言所制作的模块还有不完善的地方。数据库的设计也比较简单。还有很多毕业设计中用到JSP语言的知识也不够全面,还有很多地方不能够作到完全的理解和掌握。通过这次毕业设计论文的制作使本人受益匪浅。并且由于毕业设计所用的JSP技术和其中用到JSP语言的其他部分是在课堂上没有接触过的,要用它来做设计必须通过大量自学来掌握,在这个过程中,不仅大大提高了我的自学能力而且让我对JSP的学习有了进一步的认识。由于是独立完成在毕业设计的过程遇到了很多的困难,我求教了不少老师和同学,在这个过程中让我体会到了,一个团队的重要性。

.

.

致谢

在本次毕业设计过程中,得到了指导刘琨老师的大量指导与支持。在此特别感谢刘老师的大力帮助。刘老师的悉心指导和大力支持,在总体结构设计、功能的把握上给予了非常大的帮助,同时也对本网站在设计与开发过程中存在的问题提供了很好的建议,并对我在编程、数据库设计等细节工作上给予了耐心的指导,对于我顺利完成这次毕业论文起到了关键性的作用。

我还要感谢我的母校,以及在大学四年生活中给予我关心和帮助的老师和同学,是他们教会了我专业的知识和做人的道理。通过这次毕业论文我还明白了作为一名大学毕业生,我们要会的不仅仅是在课堂学到的专业理论知识,更重要的是要有实践的能力,理论与实践相结合。我会在以后的工作和学习中不断完善自己,为我最热爱的母校争光,并且也为自己翻开辉煌的篇章。

.

.

参考文献

[1] BruceEckel.《JAVA编程思想》.机械工业出版社,2003年10月 [2]赛奎春.《JAVA工程应用与项目实践》.机械工业出版社, 2002年8月 [3]FLANAGAN.《JAVA技术手册》.中国电力出版社,2002年6月 [4]孙一林,彭波.《JSP数据库编程实例》.清华大学出版社,2002年8月 [5]LEE ANNE PHILLIPS.《巧学活用 JSP》.电子工业出版社,2004年8月 [6]飞思科技产品研发中心.《JSP应用开发详解》.电子工业出版社,2003年9月 [7]耿祥义,张跃平.《JSP实用教程》.清华大学出版社,2003年5月1日 [8]孙涌.《现代软件工程》.北京希望电子出版社,2003年8月 [9]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002年2月 [10]Brown等.《JSP编程指南(第二版)》.电子工业出版社 ,2003年3月 [11]程凯.《计算机技术与应用研究》[J].许昌学院学报,2006年6月

[12]孙卫琴,李洪成.《Tomcat 与 JSP Web 开发技术详解》.电子工业出版社,2003年6月

[13]朱红,司光亚.《JSP Web编程指南》.电子工业出版社,2001年9月 [14]清宏计算机工作室.《JSP编程技巧》.机械工业出版社, 2004年5月

.

因篇幅问题不能全部显示,请点此查看更多更全内容