软 件 课 程 设 计 报 告
手
机
在
线
销
售
系
统
专 业:计算机科学与技术专业 班级:
小组成员:
指导教师: 职 称:
中
20 年 月
题 目 | 手机在线销售系统 | |
---|---|---|
设计日期 | 20 年 月 日至 20 年 月 日 | |
小组成员 | 在本次设计中承担的任务 | 文档成绩 |
担任小组组长,在设计中主要设计手机销售论坛。 | ||
担任手机销售论坛前台程序的设计和论坛搜索部分。 | ||
担任手机销售论坛的后台管理程序。 | ||
担任手机销售论坛的用户功能的实现。 | ||
指导教师签字: 年 月 日 |
项
目
开
发
总
结
报
告
项目开发总结报告
【摘要】通过网上购物系统的建设以实现对商业零售企业提供信息化管理。建立了B2C的网络销售系统。着重论述了系统功能与实现、数据流程及存储,包括商品目录、用户注册、网上订货与购物、库存查询、后台数据库管理等。
运用HTML语言、JavaScript技术、JSP与后台数据库链接等关键技术建设网上购物系统。实现网上购物系统以下功能:
(1)为客户提供24小时方便快捷的在线订购服务。
(2)商品信息的维护与管理。
(3)高效的商品数据方案,对商品信息进行科学、灵活地分类、存储。
(4)强大、方便、快捷的查询。
(5)订单号模块。
(6)将客户商业逻辑规则融入系统,即根据不同客户属性,提供不同付款方式。
(7)订单管理。
【关键词】B2C、网上购物系统、JSP、数据库
一:引言
以下是根据CNNIC(中国互联网络信息中心)公布的中国B2C电子商务发展报告来进一步分析目前的网上购物的现状。(主要引用其中的分析图表)
由于以上的各种优势,电子商务在我国的发展十分迅速,它已经成为一个非常热门的领域,这就是我们本次课程设计选择网络购物系统的原因!不仅可以学习到网站的制作,还可以对最热门的领域加深了解,为以后的学习或工作积累经验!
1.2 背景
网上订购系统作为B2B,B2C(Business to Customer,即企业对消费者),C2C(Customer to Customer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。
在美、日等信息化程度较高的国家和地区,网络商店发展速度迅猛,美国的世界级超一流的零售商,如沃尔玛凯玛特,家庭仓储、科罗格、J.C培尼等纷纷挤身于网络经商的行列。调查表明:美国的家庭已越来越习惯于在家中从网上购物。
在我国,网上购物从无到有也不过短短几年时间。我国第一家网上购物发生在1996年,燕莎友谊商场首次通过网上商城售出一个景泰蓝,虽然货款的支付不是在网上进行的,但这毕竟为我国零售业奏出了网上购物的先声。根据CNNIC的统计结果,截止2004年1月中国有互联网用户7950万人,而又有40.7%以上的网民在过去的一年里有过网上购物经历,这就说明中国有网上购物的用户达是3235.7万人,并且这一数字还在以17%左右的速度增长,预计到2006年中国网上购物用户将达到6962万人,这说明在中国发展网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。
电子商务的特性有以下几点:商务性、集成性、可扩展性、服务性、安全性、协调性。
一. 商务性
电子商务最基本的特性为商务性,即提供买、卖交易的服务、手段和机会。网上购物
提供一种客户所需要的方便途径。因而,电子商务对任何规模的企业而言,都是一种机遇。
对我们中国的传统企业也不例外。
二. 集成性
a.技术的集成性
由于电子商务整个流成的处理涉及的内容比较多,比如信息,金融,服务等,要使得整个流程能够正常的运转,就需要运用技术去实现,当然技术是越先进的越好,比如从html到asp到jsp到现在的jsp.net,这是一个技术发展的过程,也是现实运用的需要。
b.信息的集成性
互联网上每个人都在搜索对自己有用的信息,因而它就应当提供大量的信息,满足不同用户的需要,现在中国面对客户的商业网站是越来越多了,怎样让客户一最快的速度,搜索到最有用的信息,可能应该是这类网站最应该考虑的。
三.扩展性
这主要是针对系统的稳定性来说的。电子商务的服务系统应当有自身的扩展功能。因为系统应当能承受住一定的负荷,如果在某个高峰访问期导致了服务器的崩溃,结果是可想而知的。
四.服务性
在电子商务环境中,客户不再受地域的限制,运用互联网为媒介的这种贸易,他的合作伙伴可以是地球上其他任一个角落,要想使全球的人都能接受你的所提供的商品,服务质量是最关键的。技术创新带来新的结果,万维网应用使得企业能自动处理商务过程,并不再象以往那样强调公司内部的分工。现在在Internet上许多企业都能为客户提供完整服务,这使得互联网的应用得以充分的发挥。
五.安全性
在电子商务中,安全性是必须考虑的核心问题。欺骗、窃听、病毒和非法入侵都在威胁着电子商务,因此要求网络能提供一种端到端的安全解决方案,包括加密机制、签名机制、分布式安全管理、存取控制、防火墙、安全万维网服务器、防病毒保护等。 随着技术的发展,电子商务的安全性也会相应得以增强。
六.协调性
商务活动是一种协调过程,它需要雇员和客户,生产方、供货方以及商务伙伴间的协调。为提高效率,许多组织都提供了交互式的协议,电子商务活动可以在这些协议的基础上进行。
1.3定义
HTML语言:
HTML(Hyper Text Markup Language 超文本标记语言)是一种用来制作超文本文档的简单标记语言。与常见的字处理文件不同,Web页以超文本标识语言编排格式。HTML文件是带有特定HTML插入标记的用以编排文档属性和格式的标准文本文件。它能独立于各种操作系统平台(如UNIX,WINDOWS等)。自1990年以来HTML就一直被用作World Wide Web上的信息表示语言,用于描述Homepage的格式设计和它与WWW上其它Homepage的连结信息。
JavaScript技术:
JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择
JSP:
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。
数据库原理:
① SOL语言简单介绍
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
②JDBC,ODBC技术介绍
JDBC
----JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java 语言编写的类和接口组成,旨在让各数据库开发商为Java程序员提供标准的数据库API。 JDBC API定义了若干Java中的类,表示数据库连接、SQL指令、结果集、数据库元数据等。它允许Java程序员发送SQL指令并处理结果。通过驱动程序管理器,JDBC API可利用不同的驱动程序连接不同的数据库系统。。
ODBC
----ODBC(Open DataBase Connectivity)是微软倡导的、当前被业界广泛接受的、用于数据库访问的应用程序编程接口(API),它以X/Open和 ISO/IEC的调用级接口(CLI)规范为基础,并使用结构化查询语言(SQL)作为其数据库访问语言。 ODBC总体结构有四个组件:
---- 应用程序 执行处理并调用ODBC API函数,以提交 SQL语句并检索结果。
---- 驱动程序管理器(Driver Manager) 根据应用程序需要加载/卸载驱动程序,处理ODBC函数调用,或把它们传送到驱动程序。
---- 驱动程序 处理ODBC函数调用,提交SQL请求到一个指定的数据源,并把结果返回到应用程序。如果有必要,驱动程序修改一个应用程序请求,以使请求与相关的DBMS支持的语法一致。
---- 数据源 包括用户要访问的数据及其相关的操作系统、DBMS及用于访问DBMS的网络平台。
③ Access数据库
Access是一个数据库管理系统,它之所以被集成到Office中而不是Visual Studio中,是因为它与其它的数据库管理系统(如Visual FoxPro)相比更加简单易学,一个普通的计算机用户即可掌握并使用它。而且最重要的一点是,Access的功能足够强大,足以应付一般的数据管理及处理需要。
1.4参考资料
书籍资料:
《JSP实用编程实例集锦》 清华大学出版社 马文刚等编著
《Java 案例开发》 中国水利水电出版社 张靓等编著
《电子商务网站的设计与实现》华侨大学学报 严桂兰、刘甲耀
参考及专业网站
http://www.cnjsp.org
http://mobile.163.com/
手机销售系统,大体分为四部分:前台,后台,购物车和论坛。
前台JSP页面包括:index.,view,paihang,top,basket,userts……等。其中网站主页为index
后台Access数据库共包括19个表:ad,admin,basket,company,dlpf,guest,hw,logo,member,
Modify,news,newsclass,nsort,ps,pub,sort,sub,system,ts各表。
(1)为客户提供24小时方便快捷的在线订购服务。
(2)商品信息的维护与管理,包括价格的调整、现有商品信息的修改、新商品信息的加入、过时商品信息的删除等。
(3)高效的商品数据方案,对商品信息进行科学、灵活地分类、存储,方便客户迅速从少则几万,多则几十万甚至上百万种商品中找出自己所需商品。
(4)强大、方便、快捷的查询功能。提供关键字查询(如:查找所有“NOKIA ”商品)。
(5)订单号模块所谓订单号模块,就是客户购买完商品后,系统自动分配一个购物号码给客户,以方便客户随时查询账单处理情况。了解现在货物的状态。
(6)将客户商业逻辑规则融入系统,即根据不同客户属性,提供不同付款方式。(如信用卡、支票等)
(7)订单管理。为分销商的EPR系统提供数据接口。管理员可以查看历史记录、订单状态,并且能够在最短的时间内通知用户。
(8)客户论坛。客户可以分享使用心得,在线反映问题,获得最新的新闻资讯!
系统完成了事先制定的功能需求,并且增加了论坛的功能,各项功能使用良好,没有大的毛病。
系统前台流程框图
系统后台流程框图
系统完成时间2005-6-28日,预计完成时间2005-6-29日,基本按时完成。
详细进度 2005-5-15至2005-5-31,需求分析阶段
2005-6-1 至 2005-6-10,详细设计阶段
2005-6-11至2005-6-25,代码编写阶段
2005-6-26至2005-6-27,系统测试阶段
计划费用:
电费: 100元
上网费: 60元
消暑降温费: 100元
开发期限:45天
实际费用:
电费: 100元
上网费: 60元
消暑降温费: 100元
人工费:2000元(5元/机时)
大幅超出预计费用
主要原因:课程设计课程学校收费5元/机时
开始并未计算在内!
在45天时间做出一个比较完善的商务网站说明大家都比较努力。
由于编程经验的不足以及本次使用的是JSP,程序中难免出现各种错误,不过好在本组组长韩庆宾对网站的建设以及JSP有较高的造诣,很多问题在他的帮助下得以解决,才最终完了本系统!本系统虽然在功能上还有待完善,美工上还比较欠缺,但基本的操作都可以实现,也尽我们的能力将差错控制在了最低的限度。可以说,本系统达到了实际应用的标准。
系统使用JSP+Access,在系统的安全性上会有一定的欠缺,这是由于Access本身所造成的!开发初期想使用SQL SERVER或者MYSQL来做系统后台数据库,但由于在数据类型的转换方面老是出错,迫不得已改用Access!而JSP的安全性弥补了Access的不足,JAVA语言的平台无关性便于本系统的推广使用!并且在JSP中使用了JAVA BEAN等新技术。
大部分的错误都是编程经验欠缺以及粗心所致,也有一些其它的错误。
通过本次体统设计,我们了解了一个网站从需求分析到开发测试以及投入使用的全过程。进一步了解了HTML网页设计,接触了JSP,Java Bean等一些网站建设的新技术新方法。通过一次具体的设计,对一些知识有了理性上的认识,为今后的学习与工作积累了宝贵的经验!并且在其中再一次看到了需求分析与详细设计的重要性,只有正确的需求分析才能做出有市场的产品,而完整良好的详细设计可以使你的编码事半功倍,最后就是我们强调良久的团队与合作,本次系统设计我们是为数不多的组队完成之人,在工作中大家互相帮助,相互促进,相互学习,不仅丰富了你的知识,也培养了你的交际与沟通能力!
项
目
开
发
计
划
1引言11
1.1编写目的11
1.2 背景11
1.3定义11
1.4参考资料22
2项目概述22
2.1工作内容22
2.2主要参加人员22
2.3产品22
2.3.1程序22
2.3.2文件22
2.3.3服务22
2.3.4非移交的产品33
2.4验收标准33
2.5完成项目的最迟期限33
2.6本计划的批准者和批准日期33
3实施计划33
3.1工作任务的分解与人员分工33
3.2预算33
3.3关键问题44
4支持条件44
4.1计算机系统支持44
4.2需由用户承担的工作44
5专题计划要点44
项目开发计划
计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。从而使我们从繁杂的事务中解放出来,提高了我们的工作效率。
首先,目前国内很多大中城市的商场还是以售货员站柜台为主,这样给商场带来很多管理上的问题;其次,由于商场是人群集中的地区,这样为管理以及保安等方面也带来很多的不便。第三,目前电子商务正处于高速发展时期,绝大多数的企业已全面实施自己的电子商务计划,所以建立属于自己的网络销售平台已是当务之急。因此,为了解决这些管理以及其他等一些问题,我们迫切需要一种通过网络来进行商品交易的平台。借助Internet/Intranet提供给我们的处理信息及时快捷,因此开发了本套网络购物系统。
编写这份软件项目开发计划的目的是为接下来的概要设计和详细设计打下基础,以及为系统的维护带来方便。
以下为本文件中用到的专门术语的定义:
手机销售系统 订单投诉
客户服务 新闻中心
我的订单 购物车
收银台 前台管理
后台管理 会员管理
手机销售论坛
1.《JSP编程实例集锦》 马文刚等编著 清华大学出版社
2.《数据库原理与技术》 刘方鑫编著 电子工业出版社
项目开发阶段要做的工作就是具体的分工,各个小组成员明确自己负责哪一个模块;某一时间段应该完成什么工作和完成什么文档。
这个阶段是比较重要的,它为接下来的工作打好了基础,关系到整个系统的开发。
参加本项目开发的主要人员有:韩庆宾(组长)、赵丹、徐剑辉和俞少坊。
当系统完成以后,交给用户的系统名称为手机销售系统v1.0版,所用的编程语言是JSP。该系统主要分为四大模块:前台管理、后台管理、会员管理和手机销售论坛。具体的每个模块又可以实现以下的功能:前台管理要实现的有搜索引擎,销售排行,分类查看,公告,新闻,友情连接等功能;后台管理要实现的有商品管理、订单管理、用户管理、手机类别管理、信息管理、常规管理的添加,修改与删除的功能;会员管理要实现的是会员注册、订单查看、购物车、收银台、更改资料等的功能;手机销售论坛的功能是要包括一般论坛的功能,如发帖,回帖这些基本的功能。
系统完成以后,须移交给用户打包的可执行文件或JSP文件,运行必备的Tomcat和JDK程序以及怎样配置环境的说明文档。
当系统完成以后,给用户培训如何安装、一些简单问题维护和运行支持等。以系统交付给用户的日期起算,一年时间内软件开发人员免费向用户提供系统维护的服务。一年以后,系统的维护用户须支付一定的报酬。
系统开发过程中的文档不必交给用户,留做软件开发人员维护之用。
系统完成之后,分别对该系统的四个模块进行验证,标准就是看它能否很好的完成预定的功能。安全性是非常重要的,除了正确对数据库进行查询、插入和删除操作,异常处理是很重要的,要求能够根据不同的异常和错误做出相应的异常处理。一个好的系统必须能很好的做到这一点。
本系统最迟到2005年6月30日必须完成。
本计划于2005年5月23日软件系统设计指导老师批准实施。
对于该系统中的四个模块,具体的分工如下:
韩庆宾:负责完成手机销售论坛,要求论坛的基本功能都要实现,包括发帖,回帖等。
赵丹:负责完成前台管理,要求实现的基本功能包括搜索引擎、销售排行、分类查看、公告、新闻、友情连接等。
徐剑辉:负责完成后台管理,要求实现的基本功能包括商品管理、订单管理、用户管理、手机类别管理、信息管理、常规管理等。
俞少坊:负责完成会员管理,要求实现的基本功能包括会员注册、订单查看、购物车、收银台、更改资料等。
逐项列出本开发项目所需要的劳务(包括人员的数量和时间)以及经费的预算(包括办公费、差旅费、机时费、资料费、通讯设备和专用设备的租金等)和来源。
在该项目的开发的过程中,关键的问题就在于数据库设计的合理性以及对数据库的查询、删除、插入和修改。
所需的计算机系统支持,包括计算机、外围设备、通讯设备、模拟器、编译程序、操作系统、数据管理程序包、数据存储能力和测试支持能力等都是一般的PC系统.
在该项目的开发的过程中,用户的任务就是时刻与软件开发人员保持联系,不断地把新的需求反映给软件开发人员,以便软件开发人员能及时做出调整。
该项目的开发有如下的计划:
需
求
分
析
说
明
书
【摘要】通过网上购物系统的建设以实现对商业零售企业提供信息化管理。建立了B2C的网络销售系统。着重论述了系统功能与实现、数据流程及存储,包括商品目录、用户注册、网上订货与购物、库存查询、后台数据库管理等。
运用HTML语言、JavaScript技术、JSP与后台数据库链接等关键技术建设网上购物系统。实现网上购物系统以下功能:
(1)为客户提供24小时方便快捷的在线订购服务。
(2)商品信息的维护与管理。
(3)高效的商品数据方案,对商品信息进行科学、灵活地分类、存储。
(4)强大、方便、快捷的查询。
(5)订单号模块。
(6)将客户商业逻辑规则融入系统,即根据不同客户属性,提供不同付款方式。
(7)订单管理。
【关键词】B2C、网上购物系统、JSP、数据库
一:引言
以下是根据CNNIC(中国互联网络信息中心)公布的中国B2C电子商务发展报告来进一步分析目前的网上购物的现状。(主要引用其中的分析图表)
由于以上的各种优势,电子商务在我国的发展十分迅速,它已经成为一个非常热门的领域,本需求说明是为那些想进入到电子商务中的个人而编写的,丛中你可以决定它是否是一个值得你进入的领域,以及你需要怎样的条件。
1.2 背景
系统名称:JSP网络购物系统(手机销售系统)
开发小组成员:组长:韩庆宾 组员:徐剑辉,赵丹,俞少坊
各成员分工:
: 论坛
: 后台管理
: 前台管理
: 购物车
1.3定义
HTML语言:
HTML(Hyper Text Markup Language 超文本标记语言)是一种用来制作超文本文档的简单标记语言。与常见的字处理文件不同,Web页以超文本标识语言编排格式。HTML文件是带有特定HTML插入标记的用以编排文档属性和格式的标准文本文件。它能独立于各种操作系统平台(如UNIX,WINDOWS等)。自1990年以来HTML就一直被用作World Wide Web上的信息表示语言,用于描述Homepage的格式设计和它与WWW上其它Homepage的连结信息。
JavaScript技术:
JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择
JSP:
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。
数据库原理:
① SOL语言简单介绍
SQL是英文Structured Query Language的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
②JDBC,ODBC技术介绍
JDBC
----JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java 语言编写的类和接口组成,旨在让各数据库开发商为Java程序员提供标准的数据库API。 JDBC API定义了若干Java中的类,表示数据库连接、SQL指令、结果集、数据库元数据等。它允许Java程序员发送SQL指令并处理结果。通过驱动程序管理器,JDBC API可利用不同的驱动程序连接不同的数据库系统。。
ODBC
----ODBC(Open DataBase Connectivity)是微软倡导的、当前被业界广泛接受的、用于数据库访问的应用程序编程接口(API),它以X/Open和 ISO/IEC的调用级接口(CLI)规范为基础,并使用结构化查询语言(SQL)作为其数据库访问语言。 ODBC总体结构有四个组件:
---- 应用程序 执行处理并调用ODBC API函数,以提交 SQL语句并检索结果。
---- 驱动程序管理器(Driver Manager) 根据应用程序需要加载/卸载驱动程序,处理ODBC函数调用,或把它们传送到驱动程序。
---- 驱动程序 处理ODBC函数调用,提交SQL请求到一个指定的数据源,并把结果返回到应用程序。如果有必要,驱动程序修改一个应用程序请求,以使请求与相关的DBMS支持的语法一致。
---- 数据源 包括用户要访问的数据及其相关的操作系统、DBMS及用于访问DBMS的网络平台。
③ Access数据库
Access是一个数据库管理系统,它之所以被集成到Office中而不是Visual Studio中,是因为它与其它的数据库管理系统(如Visual FoxPro)相比更加简单易学,一个普通的计算机用户即可掌握并使用它。而且最重要的一点是,Access的功能足够强大,足以应付一般的数据管理及处理需要。
1.4参考资料
书籍资料:
《JSP实用编程实例集锦》 清华大学出版社 马文刚等编著
《Java 案例开发》 中国水利水电出版社 张 靓等编著
《电子商务网站的设计与实现》华侨大学学报 严桂兰、刘甲耀
参考及专业网站
http://www.cnjsp.org
http://mobile.163.com/
二.任务概述
2.1 目标
一个典型的B2C电子商务网上订购系统主要功能有:
(1)为客户提供24小时方便快捷的在线订购服务。
(2)商品信息的维护与管理,包括价格的调整、现有商品信息的修改、新商品信息的加入、过时商品信息的删除等。
(3)高效的商品数据方案,对商品信息进行科学、灵活地分类、存储,方便客户迅速从少则几万,多则几十万甚至上百万种商品中找出自己所需商品。
(4)强大、方便、快捷的查询功能。提供关键字查询(如:查找所有“Electronic Cannon”商品)。
(5)订单号模块所谓订单号模块,就是客户购买完商品后,系统自动分配一个购物号码给客户,以方便客户随时查询账单处理情况。了解现在货物的状态。
(6)将客户商业逻辑规则融入系统,即根据不同客户属性,提供不同付款方式。(如信用卡、支票等)
(7)订单管理。为分销商的EPR系统提供数据接口。管理员可以查看历史记录、订单状态,并且能够在最短的时间内通知用户。
2.2 用户特点
本系统操作简单,配置要求低,适用于希望建设自己的电子商务网站的入门人员!不要求专业的知识,维护简单,并且我们会提供在线升级,问题解答等相关服务!
2.3 假定和约束
开发经费:
电费: 100元
上网费: 60元
消暑降温费: 100元
开发期限:45天
三.需求规定
3.1 对功能的规定
3.2对3.2性能的规定
用户认为目前网上交易存在的主要问题:
图3用户认为目前网上交易存在的最大问题
从上面的图中可以看出目前两个最严重的问题是安全性和产品服务。因此交易的安全性是我们系统所强调的!
四.运行环境规定
由于我们定位于初级用户,故对系统的要求不高!但对于网站的稳定运行,我们建议使用专业的服务器!
本系统具有良好的兼容性,充分体现了Java和Access的通用性!可以稳定的运行于WIN98或WIN NT3.0以上版本的WINDOWS操作系统,同时支持各版本的UNIX,LINUX操作系统!
对各类通用及专业软件良好的支持,同时在线服务系统会随时解决您遇到的困难!
数
据
库
设
计
说
明
书
数据库设计说明书
1.引言
编写此文档的目的在于用文档的形式列出数据库中的数据对象与及数据对象之间的关系,探求合理的数据库设计规范,减少数据冗余,实现数据库的高效、准确的数据查询、数据连接工作,并对软件课程设计小组成员的工作起到协助和规范作用。
本需求的预期读者是与学习成绩管理系统软件开发有联系的决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。
此数据库的名称为手机销售系统数据库;
使用此数据库的软件系统是手机销售系统;
任务提出者为手机销售系统制作小组全体成员;
用户为某某手机销售公司;
将安装该软件和该数据库的计算站是某某手机销售公司的某某主机。
字段名称 | 数据类型 | 说明 |
---|---|---|
Admin-id | CHAR | 管理员编号,主键 |
Admin-name | CHAR | 管理员姓名 |
Admin-pass | CHAR | 管理员密码 |
2:basket表:
字段名称 | 数据类型 | 说明 |
---|---|---|
Basket-id | CHAR | 购物车编号,主键 |
Hw-id | CHAR | 手机编号 |
username | CHAR | 客户名 |
Basket-count | CHAR | 购物数量 |
Basket-date | TIME/DATE | 购物日期 |
Basket-check | CHAR | 处理信息 |
cash | CHAR | 手机价格 |
Sub-number | CHAR | 定单号 |
Hw-name | CHAR | 手机名 |
3:hw表
字段名称 | 数据类型 | 说明 |
---|---|---|
Hw-id | int | 手机编号 |
Sort-id | int | 品牌编号 |
Nsort_id | int | 品牌手机编号 |
Hw_name | char | 手机名 |
Hw_cash | int | 价格 |
Hw_content | char | 描述 |
Hw_buys | int | 购买次数 |
Hw_date | char | 出厂日期 |
Hw_pic | char | 手机图片 |
4:member表
字段名称 | 数据类型 | 说明 |
---|---|---|
User-id | INT | 会员编号 |
Username | CHAR | 用户名 |
Userpass | CHAR | 密码 |
Usermail | CHAR | 邮箱 |
Useraddr | CHAR | 地址 |
Usertel | CHAR | 电话 |
Userregtime | TIME/DATE | 注册时间 |
Userregip | CHAR | 注册时的IP |
Userlastip | CHAR | 最后登陆IP |
Userlasttime | TIME/DATE | 最后登陆时间 |
Userturename | CHAR | 会员真名 |
Usertype | CHAR | 会员类型 |
5:new表
字段名称 | 数据类型 | 说明 |
---|---|---|
News-id | INT | 新闻编号 |
Newclass-id | INT | 新闻类型编号 |
News-title | CHAR | 新闻标题 |
News-content | CHAR | 新闻内容 |
News-time | TIME/DATE | 新闻时间 |
6:newsclass表
字段名称 | 数据类型 | 说明 |
---|---|---|
Newsclass-id | INT | 新闻类型编号 |
Newsclass-name | CHAR | 新闻类型名称 |
7:sort表
字段名称 | 数据类型 | 说明 |
---|---|---|
Sort-id | INT | 品牌编号 |
Sort-name | CHAR | 品牌名称 |
8:nsort表
字段名称 | 数据类型 | 说明 |
---|---|---|
Nsort-id | INT | 品牌手机编号 |
Nsort-name | CHAR | 品牌手机名称 |
Sort-id | INT | 品牌编号 |
4.运用设计
4.1 数据字典
传统的数据字典包括以下几种类型的条目:
该系统中的数据流条目有:
管理员=管理员编号+管理员姓名+管理员密码
购物车=购物车编号+手机编号+手机数目+客户姓名+购买日期
手机信息=手机编号+手机名称+品牌类型+手机描述+出厂日期+出售数目
会员信息=会员编号+用户名+密码+用户基本信息+注册时间及IP+最后登陆时间及IP。
(2).文件条目--文件条目给出某个文件的定义,列出它的组成数据项,此外还要给出文件的组织形式。
例:手机信息文件={手机基本信息记录}+{手机购买记录}
主键:手机编号+客户编号
(3).数据元素条目--给出某个数据单项的定义,通常是数据项的值类型。
例:手机基本信息记录中“手机编号”的数据值类型为数值类型,有效值范围为000000~999999。
(4).处理说明条目--给出数据流程图中不再分解的变换处理说明的定义。
此处不再举例说明。
4.2 数据库安全设计
本数据库采用Acess 平台的安全验证机制,能很大程度上保证数据的安全,可以很好的防止数据的泄露,数据在编程时的毁坏。由于Acess与Windows很好的兼容性,可以很好的保证数据的运行安全。
4.3 性能要求
1. 数据精确度
由于采用数据库技术并且用户的应用领域对数据精确度的要求不是太高,所以这点在系统中表现得比较少,但是用户数据的安全性与正确性是完全保证的,所以对用户的使用没有多大的障碍。
2. 时间特性
本系统的数据库较小,所以程序在响应时间,数据更新处理时间上性能是比较突出的。而且也正由于数据量相对较少,故在数据传输时间和系统运行时间上表现的较让人满意。
3. 适应性
该数据库是使用Acess2000在windows xp系统下完成的所以只要是兼容windows的软件或是操作系统,该软件都可以正确地运行,有较好的适应能力与兼容性。而且应用户的特殊需求软件在完成后的维护阶段可以保持一个与其他类软件接口,随时满足用户的使用要求。
用
户
操
作
手
册
操作手册(GB8567——88)
编写这份操作手册的目的是方便选择本系统客户的使用,使大家能够最好的使用本系统的各项功能,发挥出它的每一个闪光点!同时也为本系统的维护提供方便,操作人员或维修人员可以据此进行错误的排查,还有就是可以通过用户对各功能的使用,发现系统的不足,促进我们后继版本的完善,当然我们会提供在线升级,发布相关的补丁。
系统名称:JSP网络购物系统(手机销售系统)
开发小组成员:组长:韩庆宾 组员:徐剑辉,赵丹,俞少坊
各成员分工:
韩庆宾: 论坛
徐剑辉: 后台管理
赵丹: 前台管理
俞少坊: 购物车
本软件为C/S模式,整个网上购物的流程如下图:
。
本系统为网络模式,要正常提供服务应首先开启服务器。这样才可以打开网页。
由于我们采用的是tomcat5.5.4为测试服务器,现在就以它为例讲解。
一、首先安装tomcat5.5.4,假设安装路径为E:\tomcat5.4
二、安装jdk1.5.1,安装目录尽量保持跟tomcat的路径相同。E:\jdk1.5.1
三、修改环境变量:右击"我的电脑"-->"属性"-->"高级"-->"环境变量"
在系统变量中添加如下变量及值:
TOMCAT_HOME 值为E:\tomcat5.4
CATALINA_BASE 值为E:\tomcat5.4
CATALINA_HOME 值为E:\tomcat5.4
JAVA_HOME 值为E:\jdk1.5.1
classpath 值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME% \common\lib\servlet-api.jar;
path 值为%JAVA_HOME%\bin
四、设置数据源。在数据源设置中设置两个数据源shnxn为手机销售系统的数据库db.mdb数据源bbs为论坛的数据库bbs.mdb.
五、在浏览器中输入http://localhost:8080/出现tomcat公司的页面即为成功。
首先进入网站主页。本机测试(http://localhost:8080/jspshop)
外网测试(http://服务器IP:8080/jspshop)
你会看到如下的页面 (图 1)
在主页上你可以登陆会员,也可以在各手机专区间相互跳转,查看一些信息(不要求会员权限的)。
并且在前台有各手机的销售排行,你还可以搜索你所感兴趣的产品,例如:你可以在搜索的文字录入处写6600,然后点击搜索,NOKIA 6600符合要求就会显示出来,如果有你需要的,点击它就会转到相应的产品页面。(图2)
图 1
图 2
当用户登陆以后,如果选中要购买的产品,就点击改产品下方的“订购”
会出现如下界面(图3)
ZD是当前的购物人,购物车包含所选商品的基本信息,订购数量为一下拉列表,
方便购物者的选择。
图 3
确定购买的数量后,店击确认,返回如图4所示界面:
信息包括 订购的商品名称 单价,数量,日期以及合计价格。
图 4
首先进入后台管理页面
本地地址(http://localhost:8080/jspshop/admin/manage.jsp)
外网地址(http://服务器IP:8080/jspshop/admin/manage.jsp)
所有后台对数据库的操作在这都可以完成
图5为添加新商品的界面
图 5
详
细
设
计
说
明
书
手机销售系统详细设计说明
1引言22
1.1编写目的22
1.2背景22
1.3定义22
1.4参考资料22
2程序系统的结构22
3会员管理设计说明44
3.1程序描述44
3.2功能99
3.3性能99
3.4输入项99
3.5输出项1010
3.6流程逻辑1010
4后台管理设计说明1010
4.1程序描述1010
4.2功能描述1414
4.3性能1414
4.4输入项1515
4.5输出项1515
4.6流程逻辑1515
5前台设计说明1616
5.1程序描述1616
5.2功能描述1818
5.3性能1818
6销售论坛设计说明1818
6.1程序描述1919
6.2功能描述2525
6.3性能描述2525
详细设计说明书
本说明书主要是针对程序设计人员的而写的,程序设计人员以后详细设计为参考编写网站程序。
说明:
小组成员:赵丹、徐建辉、俞少坊
JSP、JAVABEAN、TOMCAT、SQL。
参考资料:JSP设计教程、javabean和serverlet等。
功能模块图
购物流程图
子功能模块图
论坛的基本功能都要实现。
一、注册功能:
1.图示
2.主要程序:
<%
String errmsg="错误!";
boolean founderr=false;
String user_name,user_pass,user_pass2,user_adds,user_tel,user_mail,user_postcode;
user_name=errmsg;
user_pass=errmsg;
user_pass2=errmsg;
user_adds=errmsg;
user_tel=errmsg;
user_mail=errmsg;
user_postcode=errmsg;
if(request.getParameter("user_name").equals("")){
errmsg=errmsg+"用户名不能为空,";
founderr=true;
}else user_name=getStr(request.getParameter("user_name"));
if(request.getParameter("user_pass").equals("")){
errmsg=errmsg+"密码不能为空,";
founderr=true;
}else user_pass=getStr(request.getParameter("user_pass"));
if(request.getParameter("user_pass2").equals("")){
errmsg=errmsg+"密码确认不能为空,";
founderr=true;
}else user_pass2=getStr(request.getParameter("user_pass2"));
if(!user_pass.equals(user_pass2)){
errmsg=errmsg+"两次密码不同!";
founderr=true;
}
if(request.getParameter("user_adds").equals("")){
errmsg=errmsg+"地址不能为空,";
founderr=true;
}else user_adds=getStr(request.getParameter("user_adds"));
if(request.getParameter("user_tel").equals("")){
errmsg=errmsg+"电话号码不能为空,";
founderr=true;
}else user_tel=getStr(request.getParameter("user_tel"));
if(!IsMail(request.getParameter("user_mail"))){
errmsg=errmsg+"你的E-mail有错误,";
founderr=true;
}else user_mail=getStr(request.getParameter("user_mail"));
if(request.getParameter("user_postcode").equals("")){
errmsg=errmsg+"邮编不能为空,";
founderr=true;
}else user_postcode=getStr(request.getParameter("user_postcode"));
sql="select * from member where user_name='"+user_name+"'";
rs=mdb.executeQuery(sql);
if(rs.next()){
errmsg=errmsg+"用户名已被别人注册";
founderr=true;
}
%>
字段名称 | 数据类型 | 说明 |
---|---|---|
User-id | INT | 会员编号 |
Username | CHAR | 用户名 |
Userpass | CHAR | 密码 |
Usermail | CHAR | 邮箱 |
Useraddr | CHAR | 地址 |
Usertel | CHAR | 电话 |
Userturename | CHAR | 会员真名 |
判断输入的数据是否正确,如果有错误就转入err.jsp并显示出错误项,如果数据正确则注册成功。
一、商品管理
商品管理主要包括:添加新的商品、商品分类管理、商品查看与修改、商品定单管理(未实现)
②商品修改
①添加新商品<%
if(request.getParameter("action")!=null)
{//-----------------------------------action=save-----------------------------------------------------
if(request.getParameter("action").equals("save"))
{
String hw_name=request.getParameter("hw_name");
………………………..
String errmsg="输入有错!";
boolean founderr=false;
if(Cint(hw_cashs)==0)
{
errmsg="
"+"
founderr=true;
}
…………………………..
if(month>12||day>31||month<=0||day<=0){
errmsg=errmsg+"
"+"
founderr=true;
}else{
datas=new Date(year-1900,month-1,day);
}else
{
hw_name=getStr(hw_name);
company=getStr(company);
hw_content2=encode(getStr(hw_content2));
hw_content=encode(getStr(hw_content));
boolean btuijian=false,bjia=false;
if(tuijian.equals("1")){ btuijian=true;}
if(jia.equals("1")){ bjia=true;}
sql="insert into hw (hw_name,hw_content,hw_content2,hw_cash,sort_id,Nsort_id,company,daili,pifa,hw_sn,chubsh,kaiben,yeshu,";
sql=sql+"data,isbn,zhuang,hw_pic,tuijian,jia)";
sql=sql+"values('"+hw_name+"','"+hw_content+"','"+hw_content2+"',"+Cint(hw_cashs)+","+Cint(sort_ids)+","+Cint(Nsort_ids);
sql=sql+",'"+company+"',"+Cint(dailis)+","+Cint(pifas)+",'"+hwsn+"','"+chubsh+"','"+kaiben+"','"+yeshu+"','"+datas.toLocaleString()+"','"+isbn;
sql=sql+"','"+zhuang+"','"+hw_pic+"',"+btuijian+","+bjia+")";
mdb.executeInsert(sql);
out.print("货物添加成功");
out.print("
");
out.print("返回");
②商品修改
sql="update hw set hw_name='"+hw_name+"',hw_content='"+hw_content+"',hw_content2='"+hw_content2;
sql=sql+"',hw_cash="+hw_cash+",sort_id="+sort_id+",company='"+company+"',daili="+daili+",pifa="+pifa;
sql=sql+",hw_sn='"+hw_sn+"',chubsh='"+chubsh+"',kaiben='"+kaiben+"',yeshu='"+yeshu+"',data='"+data.toLocaleString()+"',isbn='"+isbn;
sql=sql+"',zhuang='"+zhuang+"',hw_pic='"+hw_pic+"',Nsort_id="+Nsort_id+",tuijian="+tuijian+" where hw_id="+hw_id;
mdb.executeUpdate(sql);
out.print("商品修改成功!");
二、订单管理(时间有限未能实现)
三、用户管理
用户管理主要是查看和删除用户,提升用户为VIP用户的功能。
①查看用户:
while(rs.next()&&i<=PageSize){
i++;
int user_id=rs.getInt("user_id");
String user_mail=rs.getString("user_mail");
String user_name=rs.getString("user_name");
String user_adds=rs.getString("user_adds");
String user_postcode=rs.getString("user_postcode");
Date user_regtime=rs.getDate("user_regtime");
String user_type=rs.getString("user_type");
%>
②删除用户:
<%@ include file="conn.jsp"%>
<%
if(request.getParameter("action").equals("deluser")){
int user_id=Integer.parseInt(request.getParameter("user_id"));
sql="select * from member where user_id="+user_id+"";
rs=mdb.executeQuery(sql);
if(!rs.next())
out.print("
else{
sql="delete from member where user_id="+user_id+"";
mdb.executeDelete(sql);
out.print("
}
}
mdb.Close();}
%>
③提升权限:
<%@ include file="conn.jsp"%>
<%
if(request.getParameter("action").equals("up")){
int user_id=Integer.parseInt(request.getParameter("user_id"));
sql="select user_type from member where user_id="+user_id+"";
rs=mdb.executeQuery(sql);
if(!rs.next())
out.print("
else{
sql="update member set user_type='VIP' where user_id="+user_id+"";
mdb.executeUpdate(sql);
out.print("用户升级为VIP会员成功!");
}
}
mdb.Close();
}
%>
四、商品分类管理、信息管理、和常规管理其原理跟上面的是一样的,只是所操作的数据表不同,在这里就不一一列出。
后台管理只要是管理员来操纵的,管理员登录以后可以控制所有相关的数据库内容,主要功能为商品管理(商品的添加、修改、删除、信息查看、商品的分类管理(分两类一个大类一个小类))订单管理(查看和处理客户的订单)、用户管理(查看、删除用户、提升用户权限)、信息管理(网站的一些基本信息)、常规管理
最重要要有相应的异常处理功能,对一些不正常的数据要返回错误
添加商品:
字段名称 | 数据类型 | 说明 |
---|---|---|
Hw-id | int | 手机编号 |
Sort-id | int | 品牌编号 |
Nsort_id | int | 品牌手机编号 |
Hw_name | char | 手机名 |
Hw_cash | int | 价格 |
Hw_content | char | 描述 |
Hw_buys | int | 购买次数 |
Hw_date | char | 出厂日期 |
Hw_pic | char | 手机图片 |
添加新闻:
字段名称 | 数据类型 | 说明 |
---|---|---|
News-id | INT | 新闻编号 |
Newclass-id | INT | 新闻类型编号 |
News-title | CHAR | 新闻标题 |
News-content | CHAR | 新闻内容 |
News-time | TIME/DATE | 新闻时间 |
根据程序中的判断,如果数据不相符就返回相应的结果。如果相符就返回添加成功。所有的错误类型都包含在err.jsp中。
搜索引擎、销售排行、分类查看、公告、新闻、友情连接
一、搜索引擎
2、主要程序:<%String hw_name,sort_id;
if(session.getAttribute("sort_id")==null){
hw_name=getStr(request.getParameter("hw_name"));
sql="select * from hw where hw_name like '%"+hw_name+"%' order by hw_id DESC";
rs=mdb.executeQuery(sql);
}
else{
sort_id=request.getParameter("sort_id");
hw_name=getStr(request.getParameter("hw_name"));
sql="select * from hw where sort_id='"+sort_id+"' and hw_name like '%"+hw_name+"%' order by hw_id DESC";
rs=mdb.executeQuery(sql);
}
if(!rs.next()){
%>
<%}
else{rs.previous();
%>
二、销售排行
2、主要程序<%
sql="select top 11 * from hw order by hw_buys DESC";
rs=mdb.executeQuery(sql);
if(!rs.next())
{
out.print("本站目前没有成交任何商品");
}else
{
rs.previous();
i=0;
int hw_id,daili;
String hw_name;
while(rs.next()&i<=10){
hw_id=rs.getInt("hw_id");
hw_name=rs.getString("hw_name");
daili=rs.getInt("daili");
%>
三、主要页面
图示:
前台设计主要是美工方面的、使用Dreamweaver MX设计界面,要求风格统一,色彩鲜明能勾起顾客的购买欲望,同时网站结构也要分明,是顾客很容易就可以找到想要的商品。网站设计方面我们基本上做到了以上几点。
网页的布局要合理,使人有一目了然的感觉。颜色搭配要合理,不要让人有杂乱的感觉。
论坛设计实现了论坛的一些基本功能,
如
用户功能:用户注册、发表新贴、回复帖子、个性签名(可以自己控制显不显示)、资料修改、搜索帖子、查看在线用户、联系用户。
管理员功能:管理版块、管理用户、帖子编辑(删除、修改)、管理斑竹。
由于程序庞大,在这里只列出了部分主要程序:
package bbsclass;
import java.io.*;
import java.sql.*;
public class jdbc {
public jdbc() {
}
Connection conn = null ;
public java.sql.Connection getConn(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
conn= DriverManager.getConnection("jdbc:odbc:bbs");
}
catch(Exception e){
e.printStackTrace();
System.out.println("hanqingbin");
}
return this.conn ;
}
public String ex_chinese(String str){
if(str==null){
str ="" ;
}
else{
try {
str = new String(str.getBytes("iso-8859-1"),"gb2312") ;
}
catch (Exception ex) {
}
}
return str ;
}
public String getTime() {
String datestr = "" ;
try {
java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-M-d HH:ss") ;
java.util.Date date = new java.util.Date() ;
datestr = df.format(new java.util.Date()) ;
}
catch (Exception ex) {
}
return datestr ;
}
}
二、在线用户状态:showonline.jsp
<%
Guest_List="";
User_List="";
Connection con=yy.getConn();
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs=null;
sql="select * from 在线 where 在线id='"+session.getId()+"'";
rs=stmt.executeQuery(sql);
rs.last();
if (rs.getRow()>0)
{
if (session.getValue("UserName")==null)
sql="update 在线 set 在线后面时间='"+yy.getTime()+"',在线最后时间='"+DateToString()+"' where 在线id='"+session.getId()+"'";
else
sql="update 在线 set 在线用户名='"+session.getValue("UserName")+"',在线后面时间='"+yy.getTime()+"',在线最后时间='"+DateToString()+"' where 在线id='"+session.getId()+"'";
stmt.executeUpdate(sql);
}else
{
sql="insert into 在线(在线id,在线用户名,在线开始时间,在线后面时间,在线最后时间,在线IP地址) ";
if (session.getValue("UserName")==null)
sql=sql+" values('"+session.getId()+"','客人','"+yy.getTime()+"','"+yy.getTime()+"','"+DateToString()+"','"+request.getRemoteAddr()+"')";
else
sql=sql+" values('"+session.getId()+"','"+session.getValue("UserName")+"','"+yy.getTime()+"','"+yy.getTime()+"','"+DateToString()+"','"+request.getRemoteAddr()+"')";
//out.println(sql);
stmt.executeUpdate(sql);
}
Time_Str=DateToString();
Online_Time=Integer.parseInt(Time_Str);;
Online_Time=Online_Time-60;
sql="delete from 在线 where 在线最后时间<'"+Online_Time+"'";
stmt.executeUpdate(sql);
//out.println(Online_Time);
sql="select 在线用户名 from 在线 where 在线用户名<>'客人' order by 在线最后时间 desc";
rs=stmt.executeQuery(sql);
rs.last();
User_Num=rs.getRow();
if (User_Num>0)
{
for (int i=1;i<=User_Num;i++)
{
UserName=rs.getString("在线用户名");
User_List=User_List+""+UserName+"  ";
}
}
sql="select 在线用户名 from 在线 where 在线用户名='客人' order by 在线最后时间 desc";
rs=stmt.executeQuery(sql);
rs.last();
Guest_Num=rs.getRow();
if (Guest_Num>0)
{
for (int i=1;i<=Guest_Num;i++)
{
Guest_List=Guest_List+"客人  ";
}
}
%>
三、帖子查询:search.jsp
//out.println(S_Member);
if ((S_Member==null) || (S_Member.equals("null")))
{
//out.println("OK");
if (S_Time.equals("0"))
Time_Sql="";
else
Time_Sql=" datediff('d',[发表日期],now()) < "+S_Time+" and ";
if (S_User.equals(""))
User_Sql="";
else
User_Sql=" 贴子作者='"+S_User+"' And";
if (S_Board.equals("all"))
Board_Sql="";
else
Board_Sql=" 版块id="+S_Board+" And";
if (S_Area.equals("content"))
sql="Select * from 贴子 Where "+Time_Sql+User_Sql+Board_Sql+" 贴子内容 like '%"+S_Key+"%' order by 贴子id desc";
else if (S_Area.equals("title"))
sql="Select * from 贴子 Where "+Time_Sql+User_Sql+Board_Sql+" 贴子名称 like '%"+S_Key+"%' order by 贴子id desc";
else if (S_Area.equals("both"))
sql="Select * from 贴子 Where "+Time_Sql+User_Sql+Board_Sql+" 贴子内容 like '%"+S_Key+"%' or "+Time_Sql+User_Sql+Board_Sql+" 贴子名称 like '%"+S_Key+"%' order by 贴子id desc";
}else
{
sql="Select * from 贴子 Where 贴子作者='"+S_Member+"'";
//sql="Select * from 贴子 Where 贴子作者='admin'";
}
//out.println(sql);
String fid=request.getParameter("fid");
Connection con=yy.getConn();
Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs=null;
rs=stmt.executeQuery(sql);
rs.last();
RecordCount=rs.getRow();
PageCount=(RecordCount % PageSize==0)?(RecordCount/PageSize):(RecordCount/PageSize+1);
String Page=request.getParameter("page");
if (Page!=null)
{
ShowPage=Integer.parseInt(Page);
if (ShowPage>PageCount)
ShowPage=PageCount;
else if(ShowPage<0)
ShowPage=1;
}else
ShowPage=1;
if (RecordCount>0)
{
rs.absolute((ShowPage-1)*PageSize+1);
for (int i=1;i { Note_Id=rs.getString("回复id"); if (Note_Id.equals("0")) Note_Id=rs.getString("贴子id"); Note_Name=rs.getString("贴子名称"); Note_Author=rs.getString("贴子作者"); Replay_Name=rs.getString("回复用户"); Replay_Time=rs.getString("回复时间"); Forum_Id =rs.getString("版块id"); %> 四、发贴主要程序 { Connection con=yy.getConn(); Statement stmt=con.createStatement(); if (Return_Id!="0") { sql="update 贴子 set 回复次数=回复次数+1 where 贴子id="+Return_Id; stmt.executeUpdate(sql); sql="update 论坛栏目 set 贴子数量=贴子数量+1,最后发表人='"+session.getValue("UserName")+"',最后发表时间='"+yy.getTime()+"' where 论坛id="+Board_Id; stmt.executeUpdate(sql); }else { sql="update 论坛栏目 set 贴子数量=贴子数量+1,最后发表人='"+session.getValue("UserName")+"',主题数量=主题数量+1 where 论坛id="+Board_Id; stmt.executeUpdate(sql); } sql="update 用户表 set 发贴次数=发贴次数+1 where 用户名='"+session.getValue("UserName")+"'"; stmt.executeUpdate(sql); sql="insert into 贴子(版块id,回复id,贴子名称,贴子内容,发表日期,贴子作者,贴子长度,显示签名,贴子图片,IP地址,回复用户,回复时间)"; sql=sql+"values("+Board_Id+","+Return_Id+",'"+Note_Title+"','"+Note_Content+"','"+yy.getTime()+"','"+session.getValue("UserName")+"',"+Note_Content.length()+","+Note_Singid+",'"+Note_Icon+"','"+request.getRemoteHost()+"','"+session.getValue("UserName")+"','"+yy.getTime()+"')"; //sql=sql+"values('"+Board_Id+"','"+Return_Id+"','"+Note_Title+"',"+Note_Content+","+yy.gettime()+",'lichao','"+Note_Content.length()+"','"+Note_Singid+"','"+Note_Icon+"','"+request.getRemoteHost()+"','lichao','"+yy.gettime+"')"; //out.println(sql); stmt.executeUpdate(sql); if (Return_Id=="0") { %> 您的贴子发表成功,正在处理您的提交信息,稍后自动返回 <% }else { %> 您的贴子发表成功,正在处理您的提交信息,稍后自动返回 五、回帖主要程序 <% String Board_id=request.getParameter("fid"); String Note_id=request.getParameter("noteid"); String Return_id=request.getParameter("Returnid"); Connection con=yy.getConn(); Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSet rs=null; if (Note_id!=null) { sql="Select 贴子内容 from 贴子 Where 贴子id="+Note_id; rs=stmt.executeQuery(sql); while (rs.next()) Note_Content=rs.getString("贴子内容"); }else Note_Content=""; if (Note_id!=null) Note_Content="[quote]"+Note_Content +"[/quote]"; if (Return_id!=null) { sql="Select 贴子名称 from 贴子 Where 贴子id="+Return_id; rs=stmt.executeQuery(sql); while (rs.next()) Note_Title="回复:"+rs.getString("贴子名称"); }else Note_Title=""; sql="Select 论坛名称 From 论坛栏目 Where 论坛id="+Board_id; //out.println(sql); rs=stmt.executeQuery(sql); while (rs.next()) Board_Name=rs.getString("论坛名称"); %> 论坛上的一些基本功能都要实现:用户注册、发贴、回帖、查看在线用户、给用户发邮件、后台管理等。 论坛最忌的就是数据量庞大,所以数据库要优化好,尽量减少冗余数据。还要考虑到安全性的问题,以保护会员安全。要能重复利用相同的模块,以减少系统开销。 测 试 分 析 与 测 试 计 划 软件测试分布在编码、测试和验收等几个阶段,是软件开发时期最繁重的任务,也是保证软件可靠性最主要的手段。 测试的目的是发现程序的错误,而不是证明程序是没有错误,设计测试用例和纠错,是搞好软件测试的两项关键技术。选择测试用例的目标,是用尽可能少的测试数据,达到尽可能大的程序覆盖面,发现尽可能多的软件错误和问题。 编写本测试计划是为了软件测试人员能够更好地、有的放矢地进行测试,尽可能地找出软件中的错误。 以下为本文件中用到的专门术语的定义: 手机销售系统 订单投诉 客户服务 新闻中心 我的订单 购物车 收银台 前台管理 后台管理 会员管理 手机销售论坛 1.《JSP编程实例集锦》 马文刚等编著 清华大学出版社 2.《数据库原理与技术》 刘方鑫编著 电子工业出版社 该系统主要分为四大模块:前台管理、后台管理、会员管理和手机销售论坛。具体的每个模块又可以实现以下的功能:前台管理要实现的有搜索引擎,销售排行,分类查看,公告,新闻,友情连接等功能;后台管理要实现的有商品管理、订单管理、用户管理、手机类别管理、信息管理、常规管理的添加,修改与删除的功能;会员管理要实现的是会员注册、订单查看、购物车、收银台、更改资料等的功能;手机销售论坛的功能是要包括一般论坛的功能,如发帖,回帖这些基本的功能。 系统完成以后,测试主要是看系统能否很好的完成预期的功能,以及异常处理做得怎么样,程序的可维护性和可扩展性如何。在这里测试主要采用的是黑盒测试。 以下给出四个模块的测试。 前台管理主要实现的功能包括搜索引擎、销售排行、分类查看、公告、新闻、友情链接等。对上述功能分别测试。 后台管理主要实现的功能包括商品管理、订单管理、用户管理、手机类别管理、信息管理、常规管理等。对上述功能分别测试。 会员管理主要实现的功能包括会员注册、订单查看、购物车、收银台、更改资料等。对上述功能分别测试。 手机销售论坛有好几个版快,如三星,飞利浦等都有各自的论坛版快。这个模块的测试就是看能否在各自的论坛版快中发帖回帖,以及版主对帖子的修改和删除功能。 基于JSP的BBS实现 摘 要 现今的社会是一个信息飞速发达的社会,其中在信息的交流当中,互联网占据着一个非常重要的位置。人们可以通过在互联网上收到最新的消息,也可以通过互联网进行信息的交流。而论坛就是大家进行信息交流的其中一个渠道。 论坛的概念:论坛(BBS)是Bulletin-Board-System的缩写,即电子公告栏。它是一种在Internet网上开放的信息服务系统,通过论坛用户可以方便的实现信息的交换和文件的共享。 本文主要完成了基于JSP技术的信息交流论坛的设计和实现,主要实现了客户端和服务器端的动态交互。该系统包含六个模块:论坛用户登陆注册模块,论坛账户信息模块,论坛文章发布模块,公告/制度模块,版块管理模块,信息管理模块。论文详细描述了模块的结构、功能以及具体设计过程。系统采用了JSP技术以及JavaBeans组件技术和JDBC技术实现。 关键词:JSP,BBS,MYSQL,JavaBeans,系统设计 Bulletin-Board-System realization based on JSP Abstract Nowadays is a flourishing society that information travels fast. Among the exchanges of information, the Internet occupies a very important position, through which people can receive the latest news, and can exchange with each other as well. And the forum is an outlet for everyone to exchange information, which can also make the exchange of information convenient. The concept of the forum: The forum (BBS) is the abbreviation of the Bulletin- Board- System, namely the column of the electronics announcement. It is a service system that is open on Internet, through which, the forum customer can conveniently realizes the commutation of the information and the share of the documents. In this text, it mainly completed the design and realizations of information exchanges forum based on the JSP technique. And it main carry out a dynamic state between the customer and the server. There are six molds piece: The forum customer debarkation registers the mold piece, the forum bank account information mold piece, the forum article releases the mold piece, announce/ the system mold piece, a management mold piece, information management mold piece. The thesis has described module structure、function detailed and has designed process concretely. System has adopted the JSP technology and the JavaBeans module technology and the JDBC technology have come true. KeyWord: JSP, BBS, MYSQL, JavaBeans, System design 目 录 摘 要I AbstractII 绪 论1 第一章 系统概述2 1.1设计目标2 1.2 研究方法2 1.3项目中涉及的技术2 1.3.1 JSP技术2 1.3.2 JavaBeans技术3 1.3.3 JDBC技术3 1.4设备要求4 第二章 需求分析5 2.1需求规格5 2.1.1系统组成5 2.1.2功能性需求5 2.1.3非功能性需求7 2.2开发环境的选择7 第三章 概要设计8 3.1总体设计8 3.2系统结构与程序的关系10 3.3运行模式10 3.4接口设计10 3.4.1用户接口10 3.4.2外部接口10 3.4.3内部接口11 3.5数据结构设计11 3.5.1系统ER图11 3.5.2逻辑结构设计要点11 3.5.3物理结构设计要点13 3.5.4数据结构与程序的关系13 3.6功能模块设计16 3.6.1总体设计16 3.6.2功能模块设计16 3.7系统故障处理设计18 3.7.1出错信息18 3.7.2补救措施19 3.7.3系统维护设计19 第四章 详细设计20 4.1用户注册登陆模块20 4.1.1功能说明20 4.1.2功能实现20 4.1.3程序运行过程截图23 4.2帐户信息模块24 4.2.1功能说明24 4.2.2功能实现25 4.2.3程序运行过程截图28 4.3文章发布模块28 4.3.1功能说明28 4.3.2功能实现28 4.3.3程序运行过程截图29 4.4公告制度模块29 4.4.1功能说明29 4.4.2功能实现29 4.4.3程序运行过程截图31 4.5版块管理模块31 4.5.1功能说明31 4.5.2功能实现31 4.5.3程序运行过程截图33 4.6信息管理模块34 4.6.1功能说明34 4.6.2功能实现34 4.6.3程序运行过程截图36 第五章 结论37 参考文献(References)38 致谢39 随着互联网日益深入社会生活,BBS开发技术发展至今,从CGI,ASP,到PHP已经日趋成熟,功能也更加丰富,但携着Sun公司的Java技术所实现的“一次编写,到处运行”的优势,继承这一衣钵的JSP技术越来越受到人们的注视。BBS作为一种对外的展示窗口,进行内外信息交流,已成为大众的广泛需要。为了进行更好的交流,用户想就自己的专业和爱好能和其他的用户进行及时专业的交流,这就有了论坛,这样以来我们就可以在网络这个虚拟的空间中方便地实现交流。Internet上发布信息主要是通过网站来实现的,获取信息是要在网站论坛中和Internet“海洋”中按照一定的检索方式将所需要的信息的。因此论坛建设在Internet应用上的地位显而易见,它已成为现代人勾通和获取信息的重要组成部分,从而倍受人们的重视。现在各个大学网站都有BBS论坛,在BBS上,同学与同学之间,老师之间可以非常轻松的进行交流,有网络的地方,不同的地区和国家的各种不同的人都可加入到BBS上进行交流。这也节省了大量的教育资源,和充分的利用教育资源。 Java是未来的主流开发技术,具有很多优势。JSP则是Java在Internet/Intranet Web上的重要应用技术,得到了广泛的支持和承认,它可以和各种Java技术完好地结合在一起,从而实现非常复杂的应用。本网站使用JSP + JavaBeans和后台数据库MYSQL在WEB系统开发的,从而创建一个更为稳定,高效,安全的运行环境。 本文主要讨论了基于B/S模式的一种JSP论坛的设计与实现,主要功能是实现客户端和服务器端的动态交互。其中有六个模块:论坛用户登陆注册模块,论坛帐户信息模块,论坛文章发布模块,公告/制度模块,版块管理模块,信息管理模块。实现论坛的基本功能,具体功能的实现利用JavaBeans组件技术。 BBS是互联网一种人与人之间交互的必备工具,特别是做网站必备。以前我们一直用留言本形式,但是随着您的网站的大规模化,越来越多的迫切需要一种可以易于维护和易于交流的平台,那就要用BBS。BBS可以通过WEB浏览器访问,并且实现在线交流等诸多功能。网民们便逐步开始接受这种使用方便快捷、功能日渐强大的系统。在它上面网民们可以发贴和发布各种各样的信息,讨论各式话题。随着中国网络的普及和计算机及其外设的大幅度降价,Internet这个概念逐渐深入人心。中国网民的数量呈几何级数量增长,BBS的普及程度也直追Email。每个网站几乎都拥有自己的BBS或者BBS链接, BBS社区提供给用户的服务是全面而且非常友好的,用户在社区中可以根据自己的喜好设置不同的显示风格,根据自己的需求定制各种服务。 本虚拟社区是采用JSP + JavaBeans + MYSQL开发的。运行平台:JDK 1.5 + Tomcat5.5 + MYSQL + Windows XP。 采用模块化思想,分为3层: a.数据存储层:使用MYSQL来存放BBS的所有数据,包括用户信息,文章数据用户消息,系统数据,关键问题,数据库的规划。 b. 系统功能层:完成BBS的基本功能,由多个并列模块组成,向下调用MYSQL的数访问数据库,向上接受处理请求,将处理的结果返回上层,根据请求类型,返回成败结果和其他数据。而且模块高度灵活,可以方便的修改增加。 c. 服务层:直接和客户机对话,根据客户机的请求,调用功能模块取得数据,然后将数据发送回客户端,根据客户端的类型,分别开发不同的服务模块,并且尽可能合理进行抽象,使对不同的服务层,能共用系统功能层的模块。 JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。 JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。 在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。 什么是JavaBeans?JavaBeans就是Java的可重用组件技术。最初,JavaBeans的目的是为了将可以重复使用的软件代码打包标准。特别是用与帮助厂家开发在综合开发环境(IDE)下使用的java软件部件。这些包括如Grid控件,用户可以将该部件拖放到开发环境中。从此,JavaBeans就可以扩展为一个java web 应用的标准部件,并且JavaBeans部件框架已经扩展为企业版的 Bean(EJB)。JavaBeans是描述JAVA的软件组件模型,有点类似于Microsoft的COM组件概念。在JAVA模型中,通过JavaBeans可以无限扩充JAVA程序的功能,通过JavaBeans的组合可以快速的生成新的应用程序。对于程序员来说,最好的一点就是JavaBeans可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBeans实现了同样的功能扩充。JSP对于在Web应用中集成JavaBeans组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为JSP应用带来了更多的可伸缩性。JavaBeans组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。在实际的JSP开发过程中,读者将会发现,和传统的ASP或PHP页面相比,JSP页面将会是非常简洁的,由于JavaBeans开发起来简单,又可以利用Java语言的强大功能,许多动态页面处理过程实际上被封装到了JavaBeans中。 JDBC是一种可用于执行SQL语句的Java API(Application Programming Interface,应用程序设计接口)。它由一些Java语言写的类、界面组成。JDBC给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。 Java 具有坚固、安全、易于使用、易于理解和从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java 应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。 通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问Sybase,写另一个程序访问Oracle,再写一个程序访问Microsoft的SQL Server。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统(DBMS)。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用。Java和JDBC的结合可以让开发人员在开发数据库应用时真正实现“Write Once,Run Everywhere!” JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet的网页,而该 applet 使用的信息可能来自远程数据库。企业也可以用 JDBC 通过Intranet 将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、 Macintosh 和 UNIX 等各种不同的操作系统)。随着越来越多的程序员开始使用 Java 编程语言,对从 Java中便捷地访问数据库的要求也在日益增加。 主机类型: 服务器(IBM兼容机)最低配置 CPU:P3-850MHz; 内存:256MB 硬盘:20GB 网卡:10/100MB自适应 客户机(IBM兼容机)最低配置 CPU:P3-450MHz; 内存:128MB 硬盘:10GB 网卡:10/100MB自适应 系统可以分为以下几个功能模块: 2. 帐户信息模块 表2-3 文章发布模块 4、公告/制度模块 表2-4 公告/制度模块 5.版块管理模块 表2-5 版块管理模块 6. 信息管理模块 表2-6 信息管理模块 本系统界面友好,使用方便,运行稳定。是一种典型的BBS系统。 系统需求分析阶段: Microsoft Windows XP 系统代码开发阶段:Windows XP+ JDK1.5 + tomcat5.5 +MYSQL。 系统GUI/LOGO辅助设计工具:Photoshop8.0,Dreamware8.0。 我们采用基于B/S结构的三层应用模型来实现BBS系统。Browser/Server计算方式是一种两层结构的体系。随着技术的进步以及需求的改变,更多的层次划分出来。目前,在Internet应用体系结构中,事物处理被划分为3层,即:Web Browser—Internet Server—Database Server。在这种体系结构中,业务的表达通过简单的Web Browser来实现,用户通过Web Browser提交表单,把信息传递给Internet Server,Internet Server根据用户的请求,分析出要求数据库服务器进行的查询,交给数据库服务器去执行,Database Server把查询的结果反馈给Internet Server,在由Internet Server用标准的HTML语言反馈给Web Browser。 三层应用模型同传统的C/S(Client/Server)模型相比,提高了系统的可扩展性、安全性和可重用性。它将应用逻辑与用户界面和数据访问相剥离,这样便使系统的维护变得简单,同时可以通过采用组件技术,降低数据库服务器的负担,从而提高性能。 典型C/S计算的特点: 低了开发及管理成本。而C/S的应用不论是安装、配备还是升级,都需要在所有的客户机上实施。 B/S技术维护工作主要集中在服务器端,客户端的维护工作量十分少。而C/S结构中客户机和服务器的维护工作量都较大。Web Browser技术简明易用,一旦用户掌握了Web Browser的用法,也就掌握了使用系统上各种信息资源的钥匙。 本虚拟社区是采用JSP + JavaBean + MYSQL开发的一套网络虚拟社区系统。通过BBS系统和别人讨论计算机软件、硬件、Internet、多媒体、以及程序设计等等各种有趣的话题。 图3.1 网络结构图 图3.2 系统结构图 表3-1 各项功能需求模块的实现同各块程序的分配关系 图3.3 本系统的各个模块的运行顺序 本系统采用的标准的HTML编写,内部套用JavaScript、CSS,风格统一,用户可通过一个窗体即可完成所有的输入工作,本模块不涉及大图片、音频和视频等,这样能保证输出时的快速性。用户可以直观的查看数据和填写数据,尽可能的简化操作,其主界面简便易于使用。 系统的数据库连接主要采用JDBC的方式,这样的连接方法简单,避免了过多的配置,数据库的访问全部由操作系统内部来完成。数据库的接口采用JavaBean连接实现。使用MYSQL来存放BBS的所有数据,包括用户信息,文章数据,用户消息,系统数据等。 JavaBean完成Jsp程序和数据库的连接;方便对数据库的读写,提高重用度,减少代码量。 根据UML系统模型,可以确定系统中的各种实体以及它们之间的关系。本系统的实体包括管理员数据实体(Numb1)、用户数据实体(User)、帖子数据实体(btable)等。 M 浏览 浏览 帖 子 用户 1 M 管理 管理 N 管理员 1 1 图3.4 系统ER图 数据库表结构 1.Board表 表3-2 Board表 2. Numb1表 表3-3 Numb1表 3. Onlcount表 表3-4 Onlcount表 4.Online表 表3-5 Online表 5.btable表 表3-6 btable表 6.User表 表3-7 User表 系统数据库采用MYSQL。今天的商业环境要求不同类型的数据库解决方案。性能、可伸缩性及可靠性是基本要求,MYSQL 给数据管理与分析带来了灵活性。从数据管理和分析角度看,MYSQL可以作为一个完备的数据库和数据分析包。作为重要的基准测试可伸缩性和速度奖的记录保持者,MYSQL 是一个具备完全功能支持的数据库产品,提供了对可扩展标记语言 (XML) 的核心支持以及在 Internet 上和防火墙外进行查询的能力。 服务器端程序采用JDBC来访问数据库: ---------------------------------------------------------------------------------------------------------------- Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://"+"localhost"+"/"+numb1,"root",""); ---------------------------------------------------------------------------------------------------------------- 上面两条Java语句完成数据库的连接,而下面几条语句则完成最基本的信息数据查询操作。 ---------------------------------------------------------------------------------------------------------------- package numb1.com; import java.lang.*; import java.sql.*; public class db{ private Connection con; private Statement st; private ResultSet rs; private String host="localhost"; private String user="root"; private String pw=""; private String db="numb1"; private String Dri="com.mysql.jdbc.Driver"; private String url="jdbc:mysql://"+host+"/"+db; public String getStr(String s){ String str=s; try{ byte b[]=str.getBytes("ISO-8859-1"); str=new String(b); return str; } catch(Exception e){return null;} } public String gb2iso(String qs){ try{ if (qs == null) return "NULL"; else return new String(qs.getBytes("gb2312"),"iso-8859-1"); } catch(Exception e){ System.out.print("gb2iso error:"+e.getMessage()); } return "NULL"; } public void close(){//关闭连接 try{ if(rs!=null)rs.close(); }catch(Exception e){ System.out.print("rs"+e.getMessage()); } try{ if(st!=null)st.close(); }catch(Exception e){ System.out.print("st"+e.getMessage()); } try{ if(con!=null)con.close(); }catch(Exception e){ System.out.print("con"+e.getMessage()); } } public ResultSet query(String sql)throws Exception{ try{ Class.forName(Dri).newInstance(); con=DriverManager.getConnection(url,user,pw); st=con.createStatement(); rs=st.executeQuery(sql); return rs; }catch(SQLException e){ System.out.print(e.getMessage()); return null; } } public void update(String sql)throws Exception{ try{ Class.forName(Dri).newInstance(); con=DriverManager.getConnection(url,user,pw); st=con.createStatement(); st.executeUpdate(sql); st.close(); con.close(); }catch(SQLException e){ System.out.print(e.getMessage()); } } } 通过上面的Java语句,服务器端就完成了对数据库的连接,并且实现了对数据库的查询、更新等操作。 --------------------------------------------------------------------------- BBS系统总体上分6个模块,模块之间相互连接,互相作用,从用户的注册,登陆退出到发表文章,回复文章,对BBS系统的管理都可以通过简单的操作来完成。论坛系统设计简洁明了,没有过多的附属功能。 要完成论坛的各项操作,用户必须登陆论坛系统,如果没有论坛帐户,用户注册是必须的。用户命令如果是退出,则清除用户的状态信息,并返回BBS 首页,如果是登录则使用JDBC连接数据库,取得用户输入的帐号和密码并查询数据库,将得出的结果和用户输入的信息做比较,验证正确,显示用户已经登陆到系统,错误将返回消息让用户从新输入。如果用户想注册帐户,则返回注册页面,用户填写信息后,将检测信息的正确性,如果帐号允许注册,则完成帐号的注册,将信息写入到数据库中,如果帐户已经存在,则返回错误信息,告诉用户帐号存在,请用户从新输入,并完成注册,进程结束。 图3.5 用户注册登陆模块 (2)帐户信息模块 当用户登陆系统后,在个人中心中,可以通过修改资料的链接来修改个人资料(其中帐户名是不允许修改的),通过我的话题来查看和修改自己发布的文章。 图3.6 帐户信息模块 (3) 文章发布模块 用户登陆系统后可以查看其他所有用户发的文章,并可以发布自己的话题,也可响应回复其他用户和自己发表的话题。 图3.7 文章发布模块 (4) 公告制度模块 论坛管理员可以通过后台管理系统发布论坛公告,今日话题,并可以设置版面图标。 (5) 版块管理模块 论坛管理员可以通过后台管理系统控制论坛的版块,管理员可以完成下列功能:添加分类或版面,版面配置或删除;并可以对已存在的版块设置属性。 (6) 信息管理模块 信息管理模块主要完成下面的功能。信息配置;添加管理员; 编辑管理员;设定等级;配置权限;重新登录;安全退出;用户等级;用户列表。 以上的功能完成了整个论坛的配置,用户的管理,管理员的管理都可以通过对应的链接来完成。 表3-8出错或故障情况一览表 当出现帐号,密码等通常的错误时,用户可以重新输入信息,即可解决,或是重新启动客户端,当出现无法连接数据库或者是查询中的错误,通常系统管理员重新启动服务即可解决,由于数据库的连接错误是全局的,所以重新启动服务是最佳的操作。 用于系统的检查与维护的检测点和专用模块,在这个版本中没有出,将会在后续开发中增加,例如自动重新启动服务,自动纠正数据的错误。以及用户数据的安装问题,密码的加密问题。 要完成论坛的各项操作,用户必须登陆论坛系统,如果没有论坛帐户,用户注册是必须的。用户命令如果是退出,则清除用户的状态信息,并返回BBS 首页,如果是登录则使用JDBC连接数据库,取得用户输入的帐号和密码并查询数据库,将得出的结果和用户输入的信息做比较,验证正确,显示用户已经登陆到系统,错误将返回消息让用户从新输入。如果用户想注册帐户,则返回注册页面,用户填写信息后,将检测信息的正确性,如果帐号允许注册,则完成帐号的注册,将信息写如到数据库中,如果帐户已经存在,则返回错误信息,告诉用户帐号存在,请用户从新输入,并完成注册,进程结束。 ---------------------------------------------------------------------------------------------------------------- 登陆页面:login.jsp 部分代码: <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> <%@ include file = "include/config.jsp" %> <% String p=request.getParameter("page");p=ht.donull(p); String bdid=request.getParameter("bdid");bdid=ht.donull(bdid); String bbsid=request.getParameter("bbsid");bbsid=ht.donull(bbsid); String name=""; String root=""; String sendredir="first.jsp"; String sql; ResultSet rs; if(p.indexOf("display")!=-1){ sendredir=p+".jsp?bdid="+bdid+"&bbsid="+bbsid; }else if(p.indexOf("main")!=-1){ sendredir=p+".jsp?id="+bdid; } %> <% String id=(String)request.getParameter("id");id=ht.donull(id); String mm=(String)request.getParameter("pw");mm=ht.donull(mm); boolean test; if(id.compareTo("")!=0 && mm.compareTo("")!=0){ if(online_enable == "on"){ test=onLine.Login(id,request.getRemoteAddr()); }else{ test=true; } if(test){ sql="select*from numb1 where userid='"+id+"' and pw='"+mm+"'"; rs=con.query(sql);rs.next();if(rs.getRow()!=0){ session.setAttribute("id",id); sql="select step, name from user where userid='"+id+"'"; rs=con.query(sql);rs.next(); if(rs.getRow()!=0){ root=rs.getString(1); name=con.getStr(rs.getString(2)); session.setAttribute("root",root); session.setAttribute("name",name); } sql="select ontims from online where userid='"+id+"'"; rs=con.query(sql);rs.next(); int count=rs.getInt(1)+1; String ip=request.getRemoteAddr(); sql="update online set ontims="+count+",lastip='"+ip+"',lastim=now() where userid='"+id+"'"; con.update(sql); response.sendRedirect(sendredir); 上面代码实现用户登陆界面,对用户信息进行验证,如果用户名和密码没有错误,则进入论坛系统,可以拥有注册用户所有的权限。否则提示错误信息。 ---------------------------------------------------------------------------------------------------------------- 注册页面reg.jsp 部分代码: function check_form(theform) { if (theform.id.value.length<4) { alert("对不起,您的ID长度不够!"); theform.id.focus(); return false; } if (theform.mm1.value.length<4) { alert("对不起,您的密码长度不够!"); theform.id.focus(); return false; } if (theform.mm1.value==""||theform.mm2.value==""||theform.mm1.value!=theform.mm2.value) { alert("您输入密码的方式不正确,请确认后正确输入!"); theform.mm1.focus(); return false; } if (theform.mail.value=="") { alert("请输入您的E-mail,以便您的密码遗失后取回密码!"); theform.mail.focus(); return false; } if (theform.mail.value.indexOf('@') == -1|| theform.mail.value.indexOf('.') == -1|| theform.mail.value.charAt(0)==".") { alert("Email地址格式不正确!"); theform.mail.focus(); return false; }//value if (theform.name.value=="") { alert("请输入您的昵称!"); theform.name.focus(); return false; } } function KeyFilter(){ if (!((event.keyCode>96 && event.keyCode<123)||(event.keyCode>47 && event.keyCode<58)||(event.keyCode=95))) return false; } 上面代码实现对用户信息的验证,提示新用户需要注意的问题,那些选项是必须填写的,那些是可选的,并过滤一些非法字符,使注册功能更完善。 ---------------------------------------------------------------------------------------------------------------- 用户登陆页面login.jsp 图4.1 用户登陆页面 用户注册页面reg.jsp 图4.2 用户注册页面 当用户登陆系统后,在个人中心,可以通过修改资料的链接来修改个人资料(其中帐户名是不允许修改的),通过我的主题来查看和修改自己发布的文章。 ---------------------------------------------------------------------------------------------------------------- 主题显示:pcmain.jsp 部分代码: <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> <%@ include file = "include/config.jsp" %> <% String id=(String)session.getAttribute("id");id=ht.donull(id); String root=(String)session.getAttribute("root");root=ht.donull(root); String name=(String)session.getAttribute("name");name=ht.donull(name); String bdid=request.getParameter("id"); String stringpage=request.getParameter("page");//stringpage为未处理的字符串型的页码数 String table=""; String bdname=""; String logo=""; String information=""; String focus=""; String main="main.jsp"; String display="display.jsp"; String reer=""; String sql; int retimes,readtimes; int x=0;//计数器 int count=0; int showrow=36;//每页显示条数 int pages=1;//当前页数 int startrow; //本页开始条数 int allcount=0; //本页文件名 String f_name=request.getRequestURI().substring(request.getRequestURI().lastIndexOf("/")+1,request.getRequestURI().lastIndexOf(".")); if(root.compareTo("")==0){root="0";} int step=Integer.parseInt(root); pages=ht.getInteger(stringpage,1); if(!ht.isNumber(bdid)){ out.print("6.2功能描述
6.3性能描述
1引言
1.1编写目的
1.2背景
1.3定义
1.4参考资料
2计划
2.1软件说明
2.2测试内容
2.2.1前台管理测试
测试用例一:在搜索栏输入“诺基亚7710”,期望结果是显示一条“诺基亚7710”的记录,单击进入具体介绍“诺基亚7710”的页面。
测试用例二:搜索栏输入为空,即直接单击“搜索”,期望结果是弹出“请输入搜索内容!”的页面。
测试用例三:在搜索栏输入“诺基亚10”,期望结果是弹出“对不起,没有你要找的商品!”的页面。2.2.2后台管理的测试
测试用例一:对于要添加的属性项目,型号名称、市场价、会员价和VIP价填入如下内容(诺基亚10,1780,1650,1550),期望结果是弹出“添加成功!”的提示。
测试用例二:对于要添加的属性项目,型号名称、市场价、会员价和VIP价填入如下内容( “ ”,1780,1650,1550),期望结果是弹出“请输入型号名称!”的提示,并返回到添加新商品的页面。
测试用例三:对于要添加的属性项目,型号名称、市场价、会员价和VIP价填入如下内容(诺基亚10,1780,“ ”,1550),期望结果是弹出“请输入会员价!”的提示,并返回到添加新商品的页面。
测试用例四:对于要添加的属性项目,型号名称、市场价、会员价和VIP价填入如下内容(诺基亚10,1780,1650,“ ”),期望结果是弹出“请输入VIP价!”的提示,并返回到添加新商品的页面。
单击该项功能,会列出一系列手机的信息,如商品名称、会员价和VIP价,每条记录后都有两个功能删除和修改。以(诺基亚10,1650,1550)这条记录为例,点击“删除”,期望结果显示删除成功的提示;点击“修改”,把这条记录修改为(诺基亚10,1750,1550)确定后,显示修改成功的提示。2.2.3会员管理测试
测试用例一:对会员注册时要填的项目(用户名,密码,密码确认,E-mail,,地址,电话,邮编,真实姓名),填入下列内容(jiawei,845960,845960,[email protected],江苏徐州,3594884,221008,xujianhui),期望结果是提示注册成功。
测试用例二:对会员注册时要填的项目(用户名,密码,密码确认,E-mail,,地址,电话,邮编,真实姓名),填入下列内容(jiawei,845962,845960,[email protected],江苏徐州,3594884,221008,xujianhui),期望结果是提示两次的密码必须一致。
测试用例三:对会员注册时要填的项目(用户名,密码,密码确认,E-mail,,地址,电话,邮编,真实姓名),填入下列内容(jiawei,845960,845960,“ ”,江苏徐州,3594884,221008,xujianhui),期望结果是提示E-mail不能为空。
会员注册时的这几个属性(用户名,密码,密码确认,E-mail,,地址,电话,邮编,真实姓名),设置的时候都不为空,少了任何一项都会出现少了该项的提示。2.2.4手机销售论坛的测试
绪 论
第一章 系统概述
1.1设计目标
1.2 研究方法
1.3项目中涉及的技术
1.3.1 JSP技术
1.3.2 JavaBeans技术
1.3.3 JDBC技术
1.4设备要求
第二章 需求分析
2.1需求规格
2.1.1系统组成
3.论坛文章发布模块:用户登陆系统后可以查看其他所有用户发的文章,并可以发布自己的话题,也可响应回复其他用户和自己发表的话题。
4.公告/制度模块:论坛管理员可以通过后台管理系统发布论坛公告,今日话题等功能,论坛的制度上可以设置对文章操作的得分,发帖数,精华帖。
5. 版块管理模块:论坛管理员可以通过后台管理系统控制论坛的版块,管理员可以完成下列功能:任命斑竹,修改版块等操作。
6.信息管理模块。社区信息配置;添加管理员; 编辑管理员;设定等级;配置权限;重新登录;安全退出;用户等级。
以上的功能完成了整个论坛的配置,用户的管理,管理员的管理都可以通过对应的链接来完成。
以下是该BBS系统软件的功能模块图:
BBS软件系统
注册登陆
帐户信息
文章发布
公告制度
版块管理
信息管理
图2.1 BBS系统软件的功能模块图
2.1.2功能性需求
1.用户注册登陆模块
表2-1 用户注册登陆模块
模块名称:用户注册登陆
模块标识:A1
其中可能涉及到的操作有以下几种: 用户登录:管理员及用户可以根据用户名及密码登陆系统。 用户注册:用户可以独立注册论坛帐户。修改数据:管理员可以修正错误数据,比如用户信息等。用户退出:用户退出时,变成游客权限,只能浏览帖子。
表2-2 帐户信息模块
模块名称:帐户信息
模块标识:A2
该模块主要在个人中心中,对用户信息及发表文章进行操作。其中可能涉及到的操作有以下几种:添加,删除,修改个人信息。查看,修改或删除本用户发表过的文章消息。更换照片,修改签名,预览签名。
模块名称:文章发布
模块标识:A3
该模块主要完成整个BBS系统面向用户的各种功能。其中可能涉及到的操作有以下几种:1 发布论坛话题:用户可以通过此功能发布论坛话题,也就是常说的发帖。2 回复话题:用户可以回复任何已存在的话题,同时可以加上自己的个性签名。
模块名称:公告/制度
模块标识:A4
论坛管理员(站长)可以通过后台管理任命斑竹,拥有最高权限。斑竹只能在自己的版块发布论坛公告,最新话题,可以对帖子置顶,删除,锁定等操作。
模块名称:版块管理模块
模块标识:A5
论坛管理员可以通过后台管理系统控制论坛的版块,管理员可以完成下列功能:任命斑竹,修改版块等操作。
模块名称:信息管理
模块标识:A6
信息管理模块主要完成下面的功能:社区信息配置;添加管理员; 编辑管理员;设定等级;改变权限;会员管理;安全退出;用户等级。
2.1.3非功能性需求
2.2开发环境的选择
第三章 概要设计
3.1总体设计
经过分析,B/S结构适合本系统,它具有以下优点:
3.2系统结构与程序的关系
3.3运行模式
功能模块
相关程序
注册登陆
reg.jsp;login.jsp;online.jsp;shutdown.jsp;pcmain.jsp
帐户信息
first.jsp;modify.jsp;repassword.jsp;modifype.jsp;showpenname
文章发布
send.jsp;reply.jsp;display.jsp
公告制度
actboardset.jsp;inform.jsp
版块管理
adminmast.jsp;changeroot.jsp;addmast.jsp
信息管理
madmin.jsp;mdel.jsp;medit.jsp;msend.jsp;mshow.jsp
3.4接口设计
3.4.1用户接口
3.4.2外部接口
3.4.3内部接口
3.5数据结构设计
3.5.1系统ER图
3.5.2逻辑结构设计要点
字 段
类 型
长 度
允 许 空
Id
Int
11
Btable
varchar
20
Name
Varchar
30
Logo
Varchar
100
yes
Inform
Varchar
160
yes
Focus
Varchar
200
yes
Boardmast
Varchar
255
字 段
类 型
长 度
允 许 空
Userid
Varchar
20
Pw
Varchar
20
Mail
Varchar
40
yes
Tim
Datetime
字 段
类 型
长 度
允 许 空
Id
Int
11
Page
Varchar
80
Time
Varchar
10
Userid
Varchar
20
Username
Varchar
20
Ip
Varchar
15
字 段
类 型
长 度
允 许 空
Userid
Varchar
20
Ontims
Int
11
yes
Txt
Int
11
yes
Point
Int
10
yes
Penname1
Varchar
250
yes
Penname2
Varchar
250
yes
字 段
类 型
长 度
允 许 空
Id
Int
11
super
Int
11
Boardid
Int
11
title
Varchar
40
Txt
Text
Userid
Varchar
20
Username
Varchar
20
Time
Datetime
ip
Datetime
editime
Varchar
250
yes
字 段
类 型
长 度
允 许 空
userid
Varchar
20
Step
Int
11
Root
Varchar
75
Question
Varchar
30
yes
Answer
Varchar
30
yes
Face
Varchar
50
Name
Varchar
20
Sex
Varchar
5
yes
Mail
Varchar
5
yes
Qq
Varchar
15
yes
Tel
Varchar
15
yes
Job
Varchar
20
yes
3.5.3物理结构设计要点
3.5.4数据结构与程序的关系
3.6功能模块设计
3.6.1总体设计
3.6.2功能模块设计
3.7系统故障处理设计
3.7.1出错信息
错误类型
错误代号
异常类型
输出信息
处理方法
1
用户帐号不存在
ERR_01
NULL
无此帐号
请用户注册
2
用户密码错误
ERR_02
Check Error
密码错误
重新输入
3
数据库连接错误
ERR_03
Connect
无法连接数据库
告诉用户错误。
4
数据库查询错误
ERR_04
Select
查询数据库出错
请客户稍后重试
5
数据库查询错误
ERR_04
Insert(创建帐号)
无法创建帐户
请客户稍后重试
6
数据库查询错误
ERR_04
Delete(删除好友)
无法删除好友
请客户稍后重试
7
数据库查询错误
ERR_04
Updata(更新数据)
无法更新数据库
请客户稍后重试
8
用户没有权限
ERR_05
Permissions(权限)
用户没有权限
告知用户
3.7.2补救措施
3.7.3系统维护设计
第四章 详细设计
4.1用户注册登陆模块
4.1.1功能说明
4.1.2功能实现
4.1.3程序运行过程截图
4.2帐户信息模块
4.2.1功能说明
4.2.2功能实现
}else{
sql = "SELECT btable, name, logo, inform, focus, page FROM board WHERE id="+bdid;
ResultSet board=con.query(sql);board.next();
if(board.getRow()==0){
out.print("
}else{
table=board.getString(1);
bdname=con.getStr(board.getString(2));
logo=con.getStr(board.getString(3));
information=con.getStr(board.getString(4));
focus=con.getStr(board.getString(5));
main=board.getString(6)+main;
display=board.getString(6)+display;
java.io.File f1=new java.io.File(absDir+relDir+main);
java.io.File f2=new java.io.File(absDir+relDir+display);
if(!f1.isFile()){main="main.jsp";}
if(!f2.isFile()){display="display.jsp";}
//验证页面
if((main.compareTo(_self)!=0)){
response.sendRedirect(main+"?id="+bdid);
}else{
//计算本版总贴数
if(table.compareTo("")==0){table="btable1";}
sql="SELECT COUNT(id) FROM "+table+" WHERE boardid="+bdid;
ResultSet bcount=con.query(sql);bcount.next();
if(bcount.getRow()!=0){
allcount=bcount.getInt(1);
}
//计算页数
sql="SELECT id, title, clas, super, recommendation, locked, userid, username, lastid, lastname, readtimes, retimes, lastretime FROM "+table+" WHERE boardid="+bdid+" AND up='n' ORDER BY lastretime DESC" ;
ResultSet rs=con.query(sql);
rs.last();
count=rs.getRow();
int pcount=count/showrow;
if(count%showrow>0){pcount=pcount+1;}
if(pcount<2)pcount=1;
if(pages<2)pages=1;
if(pages>pcount)pages=pcount;
startrow=(pages-1)*showrow+1;
if(online_enable == "on"){
String uId,uName,ip=request.getRemoteAddr();
if(id.compareTo("")==0){
uId="guest";
uName="guest";
}else{
uId=id;
uName=name;
}
onLine.addUser(uId,uName,(_self+"?id="+bdid),ip,onTime);
}
%>
本页面实现对文章的分页显示功能,验证页面,对各个版块的主题进行显示和处理,可以提高用户的浏览速度,结构更整洁。
----------------------------------------------------------------------------------------------------------------
主题显示:pcmain.jsp
图4.3 主题显示
用户登陆系统后可以查看其他所有用户发的文章,并可以发布自己的话题,也可响应回复其他用户和自己发表的话题。
----------------------------------------------------------------------------------------------------------------
文章发表:send.jsp
部分代码:
<%
String bdid=request.getParameter("id");
String id=(String)session.getAttribute("id");
String bdname="";
String main="main.jsp";
if(id==null){response.sendRedirect("login.jsp");}else{
String sql="select name, page from board where id="+bdid;
ResultSet rs=con.query(sql);rs.next();
if(rs.getRow()!=0){
bdname=con.getStr(rs.getString(1));
main=rs.getString(2)+main;
}
con.close();
%>
本页面提供用户的发帖功能,用户可以根据自己的需要发表帖子,可以选择自己的类型,比如普通,原创,转帖等类型,有签名功能,还可以使用多彩文本,给用户提供更完美的选择。
---------------------------------------------------------------------------------------------------------------
文章发表:send.jsp
图4.4 文章发表
论坛管理员可以通过后台管理系统发布论坛公告,今日话题。
论坛的制度上可以设置对文章操作的客户积分,发帖数,精华帖等功能。
公告信息:boardset.jsp
部分代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%
String id=(String)session.getAttribute("id");id=ht.donull(id);
String root=(String)session.getAttribute("root");root=ht.donull(root);
String bdid=request.getParameter("bdid");
String table="";
String logo="";
String bdname="";
String inform="";
String focus="";
String bdmast="";
boolean test=false;
if(root.compareTo("")==0){root="0";}
int step=Integer.parseInt(root);
String sql="select btable,name,logo,inform,focus,boardmast from board where id="+bdid;
ResultSet rs=con.query(sql);rs.next();
if(rs.getRow()!=0){
table=rs.getString(1);
bdname=con.getStr(rs.getString(2));
logo=rs.getString(3);
inform=con.getStr(rs.getString(4));
focus=con.getStr(rs.getString(5));
bdmast=con.getStr(rs.getString(6));
String mast[]=ht.split(bdmast,"*");
for(int i=0;i if(mast[i].compareTo(id)==0){ test=true; } } }con.close(); if(step>2 || test){ %> 本页面是给管理员提供了对版块更好的管理,可以通过发布公告给本论坛的用户最新的通知,还有发表今日话题,能更快的对论坛进行有效的管理。 --------------------------------------------------------------------------------------------------------------- 公告信息:boardset.jsp 图4.5 公告信息 论坛管理员可以通过后台管理系统开控制论坛的版块,管理员可以完成下列功能:添加分类或版面,版面配置或删除. -------------------------------------------------------------------------------------------------------------- 权限列表:rootlist.jsp 部分代码: <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> <% String root=(String)session.getAttribute("root");root=ht.donull(root); String user_id=request.getParameter("id");user_id=ht.donull(user_id); String user_name=""; String user_ontimes=""; String user_txts=""; String user_retxts=""; String user_point=""; String user_popu=""; String user_sup=""; String user_recom=""; String duty=""; int user_step=0; boolean test=true; if(root.compareTo("")==0){root="0";} int step=Integer.parseInt(root); if(step<4){ out.print("4.4.3程序运行过程截图
4.5版块管理模块
4.5.1功能说明
4.5.2功能实现
}else{
String user="select step,root,name from user where userid='"+user_id+"'";
ResultSet use_rs=con.query(user);use_rs.next();
if(use_rs.getRow()==0){
test=false;
}else{
user_step=use_rs.getInt(1);
String user_root[]=ht.split(con.getStr(ht.donull(use_rs.getString(2))),"*");
if(user_root.length>1) duty=""+user_root[1]+"";
user_name=con.getStr(use_rs.getString(3));
}
con.close();
String online="select ontims,txt,re,point,popu,suptxt,recomtxt from online where userid='"+user_id+"'";
ResultSet onl_rs=con.query(online);onl_rs.next();
if(onl_rs.getRow()==0){
test=false;
}else{
user_ontimes=onl_rs.getString(1);
user_txts=onl_rs.getString(2);
user_retxts=onl_rs.getString(3);
user_point=onl_rs.getString(4);
user_popu=onl_rs.getString(5);
user_sup=onl_rs.getString(6);
user_recom=onl_rs.getString(7);
}
con.close();
if(!test){
out.print("
}else{
%>
论坛管理员可以通过后台管理系统控制论坛的版块,管理员可以完成下列功能:任命斑竹,取消斑竹,改变权限等功能。
---------------------------------------------------------------------------------------------------------------
权限列表:rootlist.jsp
图4.6 权限列表
信息管理模块主要完成下面的功能。
留言管理;添加管理员; 编辑管理员;设定等级;配置权限;重新登录;安全退出;用户等级。
以上的功能完成了整个论坛的配置,用户的管理,管理员的管理都可以通过对应的链接来完成。
---------------------------------------------------------------------------------------------------------------
留言管理:msend.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%
String acid=request.getParameter("id");
%>
本页面主要实现对注册用户之间的留言管理,可以方便的在用户之间留言,这样增加了消息的隐蔽性,其他用户是接收不到的。
---------------------------------------------------------------------------------------------------------------
留言管理:msend.jsp
图4.7 留言管理
在该系统的开发过程中采用了当今流行的多种热门技术,在开发过程中严格遵守正规软件系统开发的流程,本系统在开发过程中利用JSP和JavaBean相结合的技术充分体现了java这一语言一次开发处处运行的特点。开发中严格遵守软件工程中技术和说明文档的书写和备份,为系统测试和维护提供一个良好的书面说明。
本系统实现了大部分论坛所拥有的功能。使用了JSP和JavaBean相结合的这门技术使系统的可移植性得到很大的提高,在系统将来使用范围进一步扩大的情况下本系统可以在原有的基础上作升级和拓展。
[1]彭木根. 数据仓库技术与实现[M]. 电子工业出版社,2002-6
[2]Lou Agosta. 数据仓库技术指南[M]. 人民邮电出版社,2000-11
[3]Efrem G.Mallach. Decision Support and Data Warehouse Systems. 清华大学出版社,2001-1
[4]Marty Hall著,邓英才译. Servlet与JSP核心技术. 人民邮电出版社,2001-10
[5]Michael Abbey, Michael J. Corey, lan Abramson 著,王兰成译. Oracle 8i初学者指南. 机械工业出版社,2001-4
[6]耿祥义. JAVA课程设计. 清华大学出版社, 2001-6
[7]飞思科技产品研发中心编著. JSP应用开发详解. 电子工业出版社,2002-1
[8]飞思科技产品研发中心编著. JAVA TCP/IP应用开发详解. 电子工业出版社,2002-1
[9]网冠科技编著. JavaScript时尚编程百例. 机械工业出版社,2001.
[10]Hans Bergsten著.何健辉,许俊娟译. JSP设计. 中国电力出版社,2004-11
[11]Hans Bergsten. Java Server Pages. 3rd Edition. O'Reilly Publisher, December 2003.
在本系统的开发过程中得到了多方面的帮助和协作,在此感谢学校领导给予的重视和指导老师胡军多方面帮助,同时感谢所有在项目开发过程中提供帮助的人员。
感谢我的导师胡军老师,他严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;你循循善诱的教导和不拘一格的思路给予我无尽的启迪。这篇论文的设计细节和数据,都离不开你的细心指导。你严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。帮助我能够很快的融入这个新的设计。感谢我的室友们,来自各个地区,相聚到这个陌生的城市里,是你们和我共同维系着彼此之间兄弟般的感情,维系着寝室那份家的融洽。我们在一起的日子,我会记一辈子的。
在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!