网上论坛毕业设计论文

更新时间:2024-01-05 21:19:01 阅读量: 教育文库 文档下载

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

河南机电高等专科学校毕业论文

1绪论

1.1选题背景

论坛系统最初是为了给计算机爱好者提供一个互相交流的地方。70年代后期,计算机用户数目很少且用户之间相距很远。因此,网上论坛系统(当时全世界一共不到一百个站点)提供了一个简单方便的交流方式,用户通过 网上论坛可以交换软件和信息。进入21世纪,就进入了经济、社会、技术快速发展的新时代,越来越倾向于网络化、集成化方向发展。同时,人们对网络要求也越来越高,越来越需要一个尽可能自由自在表达自己心里想法的空间,也习惯于通过Internet网络获取信息,发表信息,对社会对生活的理解和建议,不再局限于以前的只有认识的人才可以交流,现在论坛的存在打破了空间与时间、距离的限制,论坛系统最初只是为了给计算机爱好者提供一个互相交流的地方。到了今天,网上论坛的用户已经扩展到各行各业,除原先的计算机爱好者们外,商用网上论坛操作者、环境组织、宗教组织及其它利益团体也加入了这个行列。只要浏览一下世界各地的网上论坛系统,你就会发现它几乎就像地方电视台一样,花样非常多。

1.2主要内容有研究意义

大约是从1991年开始,国内开始了第一个网上论坛站。经过长时间的发展,直到1995年,随着计算机及其外设的大幅降价,网上论坛才逐渐被人们所认识。1996年更是以惊人的速度发展起来。多数业余网上论坛站的站长,基于个人关系,每天都互相交换电子邮件,渐渐地形成了一个全国性的电子邮件网络。于是,各地的用户都可以通过本地的业余网上论坛站与远在异地的网友互通信息。由于业余网上论坛站拥有这种优势,所以使用者都更乐意加入。为了推动中国计算机网络的健康发展,提高广大计算机用户的应用水平。从网友的发帖中,能得到有益的教诲和启发。网友关于各个方面的有益的观点,能被有关部门采纳,而不是网友空自评论,自艾自叹,自喜自悲,一些论点能做到各方观点正确公平的显示,具有参考价值,论坛应具有知识性,趣味性,公平性,和谐性等优点。

1.3论文的组织结构

第一部分:绪论。介绍了论文的选题背景、主要内容和研究意义和本论坛问题的提问。

第二部分:网上论坛的概述。主要是本论坛的一些功能、权限、页面等一些方

1

河南机电高等专科学校毕业论文

面的内容。

第三部分:开发环境概述。其中包括JSP技术、ADO技术、数据库技术。 第四部分:系统需求分析。其中包括现状分析、系统要求分析。

第五部分:系统总体设计。其中包括数据结构设计、系统结构的设计、系统的综合设计、系统的数据实体设计、系统的逻辑模型、系统逻辑模型数据流简要说明。

第六部分:系统主要功能详细设计。其中包括模块的设计、JSP网页数据库连接。

第七部分:系统的运行效果。其中包括运行环境、运行结果。 第八部分:总结。其中包括总结与展望、致谢、参考文献。

2

河南机电高等专科学校毕业论文

2网上论坛概述

网上论坛系统就是提供给注册用户一个平台,普通用户可以通过Internet接入,登录论坛,在这个平台上发表文章、阅读文章、回复文章等等。

此类系统通常有以下四种类型的操作用户:普通用户、版面管理员。不同用户有其不同的操作集,系统通常提供一个统一的登录页面,此页面应能自动识别不同级别的用户,并提供不同的操作界面。与之相应,此类系统通常应具有以下功能:用户注册、用户登录、发表文章、阅读文章、回复文章、分页查找、主题查找、作者查找、个人资料维护、版面管理、版主管理、用户管理、友情链接管理等等,所有操作都可以由用户在客户端浏览器中完成,而服务器端程序会按用户的要求来完成对系统数据的操作,并将结果传给Web服务器,再由Web服务器处理成HTML文件后发送到客户端浏览器。这就是B/S结构应用系统,B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。

C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。B/S结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑能够在前端实现,但是主要事务逻辑在服务器端实现,形成所谓N-Tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript?)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。

将应用程序分成好几个离散逻辑组件,就是多层式结构 (N-Tier) 应用程序。最常见的选择是分成三个部分:表示层、事务逻辑层和数据层(3-Tier),不过也有其它的组合。多层式结构应用程序,在一开始是解决某些与传统客户端/服务器 (主从式) 应用程序相关的问题,但是随着 Web 的出现,此结构已经成为主导新程序之开发的结构。下面就是3-Tier结构各层功能以及经常采用的技术作个简介:

表示层主要运行于客户端浏览器,采用Script语言编写。HTML、JavaScript、VBScript是此类应用系统中展示层最常用的脚本编制语言,结合CCS以及ActiveX

3

河南机电高等专科学校毕业论文

技术,能设计出交互相当灵活功能又相当强大的客户端网页。

事务逻辑层设计通常有三个选择:JSP网页、COM或COM+组件、DBMS中所执行的预存程序。将程序代码的一部分,建立成执行于数据库管理系统 (DBMS) 中的预存程序,使数据与程序代码储存在相同的位置,有助于最佳化执行效率,但是,预存程序都依赖于特定的数据库系统,在编写和侦错方面都相当复杂,只适宜于大型的商业应用系统。以 COM 对象的方式,编写中间层 (Middle Tier) 事务逻辑,可以使用全功能的语言,来产生经过编译的执行程序,执行效率也相当高,此外,在 COM 对象中包装事务逻辑,还可以清楚地将此程序代码与网页内含的展示程序代码分隔,这样可以使应用程序更易于维护,但是,COM对象的部署也有一定的麻烦,新编写的组件对象,只有在服务器重新启动后才能被应用程序调用。用JSP 网页设计事务逻辑相对来说比较简单,但是,JSP网页采用脚本语言来编写事务逻辑,比如VBScript,程序代码只有在执行时才被翻译,这样会降低执行效能,此外,JSP 网页中的程序代码也是难以维护的,因为事务逻辑程序代码与建立使用者接口的展示程序代码彼此混杂在一起。

数据层较为灵活,视系统规模可选择Sybase、Oracle、My SQL、SQL server或者MS Access。

综上所述,结合网上论坛系统实际需要,本网上论坛系统采用B/S结构。论文设计开发的系统为通用网上论坛系统,系统应该具备较大的可伸缩性,应该能适应最基本应用最广泛的WEB平台。另外,通用系统应该具备较大的可扩展性,因此,这次设计开发的网上论坛事务逻辑层设计采用JSP网页;至于数据层,本系统采用最基本的MS Access数据库系统。

4

河南机电高等专科学校毕业论文

3开发环境概述

设计开发的网上论坛系统要求客户端支持IE6.0以上或与之兼容的浏览器软件,客户端硬件最低要求对应于IE6.0的硬件平台要求,服务器端要求支持JSP以及MS Access数据库。

论坛的开发环境和开发工具为:Windows xp,JSP,Access数据库。

3.1关键技术

3.1.1 JSP技术

JSP技术是一种类似HTML语言(Hypertext Markup Language超文本标识语言)、Script与CGI(Common Gateway Interface通用网关接口)的结合体,简单的讲它是一种运行于服务器的脚本语言,但是其运行效率比CGI更高、程序编制也比HTML更方便且更有灵活性,程序安全性及保密性也远比Script好。 3.1.2 ADO技术

ADO(ActiveX Data Objects)是微软公司提供给网页开发者在网页中存取数据库的最新技术,它也是JSP内置的重要组件,ADO主要的目的是为了存取或修改数据源的数据、或增加数据到指定的数据源,数据源不仅包括数据库,而且还包括了dBase、Excel、Foxpro、Access或文本文件等一些小型的数据表,所以,只要是ODBC驱动程序所能存取的数据源皆是ADO存取的对象。ADO主要是由Connection对象、Command对象、Parameter对象、Recordset对象、Field对象、Property对象及Error对象等七个对象与Fields数据集合、Properties数据集合、Parameters数据集合及Errors数据集合等四个数据集合所组合而成。

3.2数据库技术

3.2.1 Access数据库

数据库(Database)是一系列信息资源的集合。在一个数据库中,与一个项目有关的所有信息都可以叫做一条记录(Record)。每一条记录都是由一系列的字段(Field)组成的。一系列记录的集合就构成了数据表格(Table)。对于一个简单的“平面文件”的数据库来说,它仅包含了一个数据表格,而对一个“关系型”数据库来说,它却包含两个或两个以上的数据表格,表格的各字段之间存在这一种或多种关系(有时可以把这种关系叫做“链接” )。

简单的平面文件数据库的用途非常有限,而关系型数据库却能够包含数据以百

5

河南机电高等专科学校毕业论文

万计甚至以亿计的记录,并可以利用复杂的标准对这些记录进行操作,例如排序和统计。把它们叫做“关系型”数据库,是因为需要在这些数据表格的字段之间建立特定的链接关系。关系型数据库的优点在于:通过将一个表格中的字段与另一个表格中的字段联系起来,两个表格之间的信息可以相互调用,可以避免信息的重复记录,也可以避免管理上的混乱。因此关系型数据库可以减小数据库的体积,这对于大型的数据库来说具有非常重要的意义。

建立WEB站点时,我可以使用两种主要的数据库:Microsoft SQL Server 和 Microsoft Access。Micro SQL Server是一种功能齐全的客户机/服务器数据库产品,适用于系统经常被大量的用户查询的情况。对于查询次数有限的情况,则可以采用中小型数据库的代表产品Microsoft Access。Microsoft Access是理想的入门级产品,其中提供了大量的向导,可以辅助完成数据库的创建和管理。 3.2.2 结构查询语言(SQL)

SQL是结构查询语言(Structure Query Language)的英文缩写,它是使用关系模型数据库的应用语言,由IBM在七十年代开发出来的,实现了关系型数据库中的信息检索。利用SQL语言,可以查询和管理自已的数据库。常用的SQL查询命令有:Select、Insert、Delete、Update等。

Javascript是一种比较随意的语言,这就并不意味着不一定必须明确地声明变量的类型。此外,在很多情况下,Javascript脚本语言在需要的时候可以进行自动转换。 JavaScript是Java与HTML结合的产物,HTML文档中可以嵌套JavaScript命令,但是JavaScript语句不需要编译,浏览器可以直接执行JavaScript语句。可以利用JavaScript结合CCS可以创建交互能力很强的WEB界面。

6

河南机电高等专科学校毕业论文

4系统需求分析

二十一世纪是信息高速发展的时代,而网络的普及已经是当今社会发展的必然趋势。社会的各个行业也已经认识到应用网络的重要性和方便性。因此,网络在人们的生活中、工作中已经必不可少。因此一个方便的网上书店系统在人们的日常生活中发挥着重大的作用。

4.1现状分析

随着网络技术的发展,Internet已成为最具市场潜力的技术领域,使用Web技术设计的数据库应用软件,是目前Internet市场的主流,各种Web应用如电子商务,在线讨论等都采用这种方式实现。互联网的优势在于用户能同时从不同网站、不同数据库中存取数据,所以现在论坛越来越成为网上交流的一种捷径,它相当于一个很多人都可以参加的大舞台,为广大网友提供一个彼此交流的空间,让网民们在网上畅所欲言。

4.2系统功能分析

网上论坛系统要实现的最基本的功能就是能够发贴,回复贴子,浏览贴子等功能,扩展的功能就是,新用户注册可以注册,管理员可以更改普通用户的信息,删除普通用户的功能,管理员可以禁止不良用户的进入,可以对公告、论坛、用户进行管理,普通用户还可以进行搜索信息,管理员可以搜索用户,可以做到全面管理。

4.3系统要求分析

按照本课题的建设和系统设计需求,对网上论坛系统进行了初步调研,确定出该系统目前的主要需求,由于这个系统是一个关于对娱乐新闻的论坛,所以对于页面的要求非常高由于该系统的使用对象多,要求有较好的权限管理,论坛是一个开放的平台,对于一些发布不良影响的消息,可以对其进行管理,管理员能对用户进行管理,良好的界面,可以让网友可以了解到他所了解的内容,管理员要及时的更新信息。

7

河南机电高等专科学校毕业论文

5系统总体设计

5.1数据结构的设计

本系统总共用到了五个表,基本的情况如下: 公告(公告ID、公告标题、公告内容、公告时间)

论坛栏目(论坛ID、论坛名称、创建时间、版主姓名、版主密码、贴子数量、主题数目、最后发表人、最后发表时间)

贴子(贴子ID、版块ID、回复ID、贴子内容、发表日期、贴子作者、点击次数、回复次数、显示签名、贴子图片、IP地址、回复用户、回复时间)

用户表(用户ID、用户名、用户密码、用户性别、用户邮箱、手机号码、居住地址、OICQ、出生日期、用户图像、签名、发贴次数、访问次数、用户等级、注册日期、是否在线、身份认证)

在线(在线ID、在线用户名、在线开始时间、在线后面时间、在线最后时间、在线IP地址)

5.2系统结构的设计

系统结构大概来讲主要包括:登录页面、注册页面、用户页面、管理员页面、发贴子、发表主题等系统最基本的页面。如下简单系统结构如图5-1所示:

公告管理 论坛管理 用户管理 发贴 管理员 普通用户 注册信息 登录 注册 首页 图5-1 系统结构图

8

河南机电高等专科学校毕业论文

5.3系统的综合设计

5.3.1 系统界面

设计开发的网上论坛系统的初始界面是用户登录,用户可以通过初始界面提供的统一的用户登录接口,登录进入各自的操作界面。 5.3.2 系统功能

设计开发的网上论坛应具有通常网上论坛网站应该具有的基本功能,包括用户注册、用户登录、发表文章、阅读文章、回复别人的文章、分页查找、主题查找、作者查找、个人资料修改、在线人数统计等,此外,用户在发表贴子时,能输入带格式文本,用户在发表或回复一篇贴子时,系统可以统计贴子数。

设计开发的网上论坛的操作用户按不同级别依次可分为:普通用户、系统管理员;普通用户可以在登录之后发表信息,修改资料等功能,系统管理员可以对发布公告、论坛话题、普通用户的资料、发贴子等所有功能。

普通用户功能要求:发表或回复贴子、个人资料维护、退出、搜索、查看公共信息。

系统管理员功能要求:贴子管理、发布公告、普通用户资料管理、论坛基本设定、版面管理、退出、搜索、查看公共信息、友情链接管理。 5.3.3 系统性能

对于贴子查看、发表贴子以及回复贴子这类频繁发生的系统操作,要采取适当的技术优化这类数据操作,以提高数据存取效率。 5.3.4 安全性保密性可靠性

高级别用户的所有管理操作要有针对普通级别用户的身分识别功能,以防止低级别的用户越权执行高级别用户才具有的操作功能。

5.4系统的数据实体

根据论坛的功能需求,论坛管理和维护以下几种数据元素:普通用户、系统管理员、论坛、论坛版面、贴子、友情链接。 5.4.1 普通用户实体

普通用户包含这样一些基本属性:用户名、用户密码用户EMAIL、用户真名、性别、出生年月日、联系方式、OICQ等属性。其中,用户名为用户唯一标志,不允许重名。用户发表贴子的数量是作为衡量此用户在本论坛活跃程度的一个标志。

9

河南机电高等专科学校毕业论文

5.4.2 系统管理员

系统管理员是这个系统中权限最大的,因此,他除了包含普通用户所有的基本属性以外,还应包含以下几个属性:用户名、用户密码用户EMAIL、用户真名、性别、出生年月日、联系方式、OICQ等属性,贴子管理、发布公告、普通用户资料管理、论坛基本设定、版面管理、退出、搜索、查看公共信息、友情链接管理。 5.4.3 论坛

论坛基本信息比较稳定,只能为超级管理员所维护,此实体包括以下一些基本属性:论坛ID、论坛名称、创建时间、版主姓名、版主密码、贴子数量、主题数目、最后发表人、最后发表时间。 5.4.4 版面

论坛版面包含这样一些基本属性:明星档案、明星相册、明星资料、粉丝团、进入论坛、搜索、修改资料、退出。 5.4.5 贴子

贴子包含以下一些基本属性:贴子ID、版块ID、回复ID、贴子内容、发表日期、贴子作者、点击次数、回复次数、显示签名、贴子图片、IP地址、回复用户、回复时间。

5.5系统的逻辑模型

5.5.1 系统逻辑模型数据流简要说明:

(1)用户与信息处理系统之间

系统的输入数据流:注册资料、登录数据;

系统的输出数据流:贴子内容、会员列表、版主列表、版面列表、人气贴子列表、热门话题列表;

加工逻辑:注册加工、登录加工。 (2)会员用户与信息处理系统之间

系统的输入数据流:注册资料修改、发表贴子、回复贴子;

系统的输出数据流:贴子内容、会员列表、版主列表、版面列表、人气贴子列表、热门话题列表;

加工逻辑:注册资料修改、发表贴子,回复贴。 (3)版主与信息处理系统之间

系统的输入数据流:注册资料修改、发表贴子、回复贴子、友情链接维护、发

10

河南机电高等专科学校毕业论文

布公告、管理版面贴子维护;

系统的输出数据流:某篇贴子内容、会员列表、版主列表、版面列表、人气贴子列表、热门话题列表;

加工逻辑:注册资料修改、发表贴子、回复贴子、友情链接维护、发布公告、管理版面贴子维护。

11

河南机电高等专科学校毕业论文

6系统主要功能详细设计

6.1模块的设计

基于JSP的通用网上论坛其系统定义部分采用面对对象的系统分析方法,并结合传统的结构化分析方化,设计出其系统模型,如果采用面向对象的程序设计语言开发系统,则可以很方便地从系统分析阶段平滑地过渡到设计阶段。下面就部分模块实现做一下简要说明: 6.1.1 系统主页面

这是网上论坛网站的首页,这个页面就是一个简单的登录页面,其中一些信息不用登录就可以看到,如果想要更多需求的话,是需要登录的,如果以前是本论坛的用户可以直接输入自己的用户名密码进行登录,如果是新用户想要进入的话,那就要先进行注册,在这里,也为新用户提供了注册页面。 6.1.2 系统管理员和普通用户权限实现

管理员是本论坛权限最大的用户,所有的功能都可以实现,比如像是对发布论坛、用户资料的更改、用户禁启功能、用户的删除等等很多;而对于普通用户,他们则只是拥有一些基本的功能。

6.2 JSP网页数据库的连接

本系统的数据库的连接其中也有需要手工来做的一些连接,在“开始”→“管理工具”→“数据源(ODBC)”里面进行配置,详细内容如图6-1所示。

数据库连接操作是一个相当频繁的操作,可以采用适当的技术来进行数据库连接优化,以提高数据库连接性能。在JSP的数据库编程中,connection对象是不可能离开的一个对象,在对数据库进行任何的操作,比如更新记录,插入,删除,检索等,都必须借助于connection对象来完成。形象地来说,connection对象就是程序与数据库沟通的管道,所有对数据库的操作,都必须经过它,因此,无论以何种方式连接数据库前,总是少不了执行下列的代码: Connection con=yy.getConn();

Statementstmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

12

河南机电高等专科学校毕业论文

图6-1 数据库连接

建立一个connection对象的实例变量,然后才能在它的基础上建立recordset对象或是command对象来操作数据库。既然connection对象是如此的重要,那么如何优化和管理好connection对象对数据库程序来说是极其重要的,它关系到程序的性能。

每当一个客户执行数据库操作时,就需要借助一个connection对象,而每个connection对象就会占用服务器的一部分资源,而数据库的同时连接数不可能是无限的,因此。在考滤要提供高性能的数据库Web程序时,需要考虑如何去减少服务器的开销。一般来说。每个JSP页面中建立一个connection对象,都会在服务器中产生一个对数据库的连接。而不同的页面的connection对象是不能共享的。那么。可不可以使同一个用户所访问的不同页面共享一个connection连接通道呢。

Connection con=yy.getConn();

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, Result Set.CONCUR_READ_ONLY);

sql=\用户表 set 用户密码='\where where 用户名='\

stmt.executeUpdate(sql);

在这个数据库连接中,使用了session对象,首先,建立一个objDBConn的连接对象,然后连接到数据表userlist中,取得连接句柄后,把它保存在session(\dbconn\这个session变量中,在打开记录集前,从session(\中取出句

13

河南机电高等专科学校毕业论文

柄,借助于session对象。可以使不同的JSP页面共用一个连接对象,减少了对服务器内存的开销,而也不需要担心,当一个客户因为错误操作导致服务器不能释放该被占用的session连接对象,因为每个客户的session对象是有一定的生存期限的,过了这个期限,服务器就会自动把它释放掉。

6.3 系统模块的实现

6.3.1 登录界面的实现

登录界面中主要显示了公告标题,公告内容,公告时间等内容,其中主要的代码实现如下:

<%

Connection con=yy.getConn();

Statement stmt=con.createStatement(); ResultSet rs=null;

String sql=\公告标题,公告内容,公告时间 from 公告 order by 公告id desc\

String Notice=\int i=0;

rs=stmt.executeQuery(sql); //rs.last(); //if (rs.getRow()>0) //{

while ((rs.next())&&(i<5)) {

String Time=rs.getString(\公告时间\Time=Time.substring(5,16);

Notice=\公告标题\color=black>\公告内容\color=gray> \i++; }

out.println(Notice);

14

河南机电高等专科学校毕业论文

%>

6.3.2 论坛管理页面的实现

论坛管理页面主要显示了论坛id、论坛名称、版主姓名等内容,具体代码如下: <%

String fid=request.getParameter(\Connection con=yy.getConn(); Statement

stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

ResultSet rs=null;

String sql=\论坛id,论坛名称,版主姓名 from 论坛栏目 Where 论坛id=\

rs=stmt.executeQuery(sql); //out.println(sql); while (rs.next()) {

Forum_Name=rs.getString(\论坛名称\Forum_Id=rs.getString(\论坛id\Forum_Mastor=rs.getString(\版主姓名\}

//stmt.close(); %>

对论坛管理页面的删除、修改等操作的主要代码如下:

href='board_manager.jsp?modifyid=<%=Notice_Id%>'>修改

href='queryboard_manager.jsp?deleteid=<%=Notice_Id%>'

onclick=\确定删除选定的纪录吗?')){return true;}return false;}\删除 if (Delete_Id!=null)

15

河南机电高等专科学校毕业论文

{ try{

sql=\论坛栏目 Where 论坛id=\stmt.executeUpdate(sql);

sql=\贴子 where 版块id=\stmt.executeUpdate(sql); }

catch(Exception e){ }

//out.println(sql);

out.println(\content='1;url=board_manager.jsp'> \return; }

if (!Notice_Content.equals(\{

sql=\用户表 where 用户名='\rs=stmt.executeQuery(sql); rs.last(); if(rs.getRow()==0) {

out.println(Notice_Content);

response.sendRedirect(\return; }else {

sql=\用户表 set 用户等级='斑竹' where 用户名='\stmt.executeUpdate(sql); }

16

河南机电高等专科学校毕业论文

}

if (Notice_Id.equals(\

sql=\论坛栏目(论坛名称,版主姓名,创建时间,最后发表时间) values('\\else

sql=\论坛栏目 set 论坛名称='\版主姓名='\论坛id=\//out.println(sql); stmt.executeUpdate(sql);

out.println(\content='1;url=board_manager.jsp'> \%>

在网页上使用SQL指令处理数据的访问,需要使用ADO组件的Connection对象建立数据连接,以便让下达SQL指令到服务器端的数据库,处理表中的记录。JSP网页数据库的连接所介绍的方法,首先建立一个Connection对象;然后再打开DSN-less,同时,根据将要进行数据操作的类型,设置其Mode属性;最后,使用Connection对象的Execute方法下达SQL指令,通常在使用Execute方法执行SQL指令前,应该指定其CommandTimeOut属性。以会员注册为例,用户填写完注册资料以后,提交系统,系统进行用户资料插入操作:

<%

’读取用户提交的资料至各变量 <%!String

User_Name,User_Password,sql,User_Sex,User_Email,User_Address,User_Mobile,User_Oicq,User_Birthay,User_Icon,User_Class,User_Sign;%>

<%

Connection con=yy.getConn(); Statement

stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

17

河南机电高等专科学校毕业论文

sql=\用户表 set 用户密码='\where where 用户名='\

stmt.executeUpdate(sql); %>

这是最基本的数据库操作方式,特别是对于表的插入、删除和更新记录以及单条数据的查询操作,是三种方式中最为简单有效的一种。设计开发的网上论坛论坛中,用户身份验证、发表贴子以及回复贴子等相关数据库操作相当频繁,对数据存取效率有相当的要求,至于在数据存取的灵活性方面要求不高,因此,大部分都是采取ADO组件Connection对象配合SQL语法这种数据库操作方式。 6.3.3.搜索页面的实现

搜索面页面其中包括对文章、关键字、时间、用户、主题等内容进行搜索,其主要代码如下:

if ((S_Member==null) || (S_Member.equals(\{

//out.println(\if (S_Time.equals(\Time_Sql=\else

Time_Sql=\发表日期],now()) < \if (S_User.equals(\User_Sql=\else

User_Sql=\贴子作者='\if (S_Board.equals(\Board_Sql=\else

Board_Sql=\版块id=\if (S_Area.equals(\

sql=\贴子 Where \贴子内容 like '%\贴子id desc\

18

河南机电高等专科学校毕业论文

else if (S_Area.equals(\

sql=\贴子 Where \贴子名称 like '%\贴子id desc\

else if (S_Area.equals(\

sql=\贴子 Where \贴子内容 like '%\贴子名称 like'%\贴子id desc\

}else {

sql=\贴子 Where 贴子作者='\//sql=\贴子 Where 贴子作者='admin'\}

//out.println(sql);

String fid=request.getParameter(\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(\if (Page!=null) {

ShowPage=Integer.parseInt(Page); if (ShowPage>PageCount) howPage=PageCount;

19

河南机电高等专科学校毕业论文

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(\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\%>

href=\>

 

href=\target=\

href=\

20

河南机电高等专科学校毕业论文


作者:

href=\

<%

if (!rs.next()) break; }} else { %>

<%}%>

6.4 JSP网页安全性的实现方法

在用浏览器浏览HTML网页时,浏览器会将HTML文件原封不动地全部下载下来,然后再由浏览器解释执行,因而很容易就能看到HTML文件的全部源代码,这对于那些含有保密内容的网页来说是十分不安全的。为了提高网页的安全性,主采用了JSP网页,前面说过,JSP网页是一种动态网页,它是由服务器中的JSP程序运行产生的动态页面,而JSP的源代码又是全部保存在服务器上的,所以从客户端的角度,JSP源代码是保密的。所以,可以利用JSP网页JSP源代码的保密性来实现JSP网页只能被具有相应权限的合法用户访问。

本系统有会员身份权限限制的功能网页相当多,频繁地要求用户输入用户名以及密码,然后比较数据库中会员注册表数据以确认用户身份,再根据用户的身份来确定是否具有本网页的访问权,将会消耗大量的服务器资源,极大地增加Web服务器的负担。此时,可以利用JSP的内置对象Session。

当一位尚未建立Session对象的用户浏览到WEB站点的JSP程序时,JSP就会自动产生一个新的Session对象,并且指定唯一的SessionID编号。此后,在浏览

21

河南机电高等专科学校毕业论文

此JSP程序和即将在站点内浏览其它JSP程序的过程,称为一个Session期间。WEB服务器可以凭借读取JSP程序时传送的SessionID判断用户是否仍在Session期间,直到Session对象TimeOut属性所设置的时间,默认20分钟或执行Abandon方法。每当读取新的JSP程序后,TimeOut属性都会归零,重新计算,所以除非没有浏览站点,否则Session期间绝对超过20分钟。

每一位用户都可以拥有一组专用的Session变量。虽然每位用户的Session变量名称相同,但是其内容可就不同,而且只有该用户拥有权利读写自已的Session变量,可以利用Session的这个特性来实现JSP网页的安全保护。

在论坛设计了一个JSP网页home.jsp,如果用户想以普通会员的身份发表贴子,或以版主身份管理版面,或以超级管理员身份进行论坛管理,则用户在进入系统之前必须通过home.jsp进行登录denglu.jsp会将用户输入的用户名及密码拿来与数据库中的资料相对比,以确定用户的身份。

home.jsp部分核心源代码如下:

if ((User_Name.equals(\response.sendRedirect(\else {

Connection con=yy.getConn();

Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

ResultSet rs=null;

sql=\用户表 Where 用户名='\用户密码='\

rs=stmt.executeQuery(sql); rs.last(); if (rs.getRow()>0) {

if (rs.getString(\认证身份\{

response.sendRedirect(\

22

河南机电高等专科学校毕业论文

return; }

确定了用户的会员身份以后,在每个需要进行身份识别的JSP网页插入身份识别代码,如果此用户具有访问这个JSP网页的权限,则输出其相应的HTML文件,否则,系统转到用户登录网页要求用户重新登录以取得访问此JSP功能网页的合法身份。例如,论坛基本信息设置JSP网页需要系统管理员身份,在本网页前必须插入以下一段代码:

<%

if((session.getValue(\ss\系统管理员\

{

response.sendRedirect(\你的权限不够,请与系统管员联系统!

\

return; }

6.5在贴子中实现超文本信息输入和显示

论坛可以由管理员设置是否支持UBB标签,UBB标签就是不允许使用HTML语法的情况下,通过论坛的特殊转换程序,以至可以支持少量常用的、无危害性HTML效果显示。下面为设计开发的网上论坛支持的UBB具体使用说明:

[B]文字[/B]:在文字的位置可以任意加入您需要的字符,显示为粗体效果明。 [I]文字[/I]:在文字的位置可以任意加入您需要的字符,显示为斜体效果。 [U]文字[/U]:在文字的位置可以任意加入您需要的字符,显示为下划线效果。 [quote]引用[/quote]:在标签的中间插入文字可以实现HTMl中引用文字效果。 [URL=HTTP://www.163.com]网易[/URL]:有两种方法可以加入超级连接,可以连接具体地址或者文字连接。

[EMAIL=MAILTO:sch_bing@163.com]feng[/EMAIL]:有两种方法可以加入邮件连接,可以连接具体地址或者文字连接。

用户在发表看法的时候,不仅可以修改文字的格式,同时系统还提供了一些心情图标,用户可以根据自己的需求选择不同的心情图标。

23

河南机电高等专科学校毕业论文

7系统的运行效果

7.1运行环境

把设计开发的网上论坛布置在如下所述最基本的应用环境下,运行是非常理想的。

服务器端需要安装Windows Xp 系统、Web服务器、MS Access 2000数据库、IE6.0浏览器等。

在经过超级会员一系列的论坛基本设置以后,就可以开始在论坛上发表贴子查看贴子回复贴子及进行其它论坛操作。系统的反应很快,读出页面基本上不需要多少时间,一晃就能出来。经过对论坛各项功能操作测试,系统具有较好的稳定性。 把设计开发的网上论坛布置在互联网上,网站提供的基本功能包括:支持JSP以及Tomcat5.0,支持Access数据库,但此数据库文件必须放置在。经过试运行,尽管速度有些慢,其系统运行相当稳定。

7.2运行结果

系统首页界面如图7-1所示:

图7-1 系统首页

24

河南机电高等专科学校毕业论文

“登陆”按钮界面如图7-2所示:

图7-2 登陆界面

“搜索”按钮界面如图7-3所示:

图7-3 搜索界面

25

河南机电高等专科学校毕业论文

“发新帖”按钮界面如图7-4所示:

图7-4 发帖界面

“管理”按钮界面如图7-5所示:

图7-5 管理界面

26

河南机电高等专科学校毕业论文

8总结与展望

在计算机网络飞速发展的今天,网上论坛已经成为人们网上交流的重要平台,因此对网上论坛的研究是十分必要的。

设计和开发了一个最基本的基于WEB的网上论坛系统,可扩展性很大,科学的开发过程也极有利于系统的扩充与扩展。系统现在采用的是MS Access数据库,视需要可以移植到MS SQL Server或者其它大中型数据库系统环境下,只需改动少数几个JSP功能模块文件。系统的分析与定义都结合了现在流行的面向对象方法以及传统的结构分析与设计方法。

通过这次毕业设计,我从中学到了许多新的知识,而且通过这次毕业设计,培养了我综合多门学科中的知识、迅速规划并开发出目标系统的能力,以及编程能力也有了很大的提高。另外也有许多心得体会,所谓系统开发如人生百味,酸甜苦辣皆有之。

严格按工程的方法来设计系统相当重要,不能认为基于Web的数据库管理的网上论坛系统很小,可以无需花太多的时间来做系统分析,甚至可以无需经过系统定义而直接进入系统编码阶段。系统分析过于简单,系统定义过于抽象,则在系统设计与编码阶段遇到的困难就越多,特别是其中若不得不做一些功能性甚至系统结构性方面的变动,将面对许多重复性的工作。在设计开发网上论坛过程中重复工作过多,将会极大地影响系统开发的积极性,进而影响整个系统的质量。在这一点上,我体会尤深。我的体会是,系统分析越充分,系统定义越具体,那么后续的系统设计与开发工作就越有效率,且系统的质量也越有保障。

回顾设计开发网上论坛的开发过程,总结起来那就是,软件的开发是相当辛苦的,但成功以后的喜悦也是非常美妙的,而且我发现,其中投入的心血越多,成功以后你所获得的快乐与充实感也更多更强。

27

河南机电高等专科学校毕业论文

致谢

几个多月的毕业设计就要结束了,在这几个多月的时间里,我感到自己的收获是很大的,使我在专业技能等很多方面都有了很大的提高。

在这次毕业设计过程中,得到了我的指导老师马世霞老师的大力支持,在此表示衷心的感谢!

通过这次毕业设计,使我感到计算机知识更新的速度和自己知识的不足。 最后,感谢河南机电高等专科学的各位老师的教导,感谢计算机科学与技术系领导给我提供这次非常好的学习实践的机会!

另外,在系统开发过程中我参阅了学校图书馆的很多图书,我校图书馆拥有大量的图书,供作者借阅,不仅使我们的学习环境得以改善,更为我们的自学提供了更大的空间。感谢学校给我们提供了这样一个舒适、先进的学习环境,感谢各位老师对作者的支持和关怀!

恭祝母校的明天更辉煌!

恭祝全体老师身体健康、工作顺利!

28

河南机电高等专科学校毕业论文

参考文献

[1]段永红.基于JSP的网站建设[M].北京:清华大学出版社,2008. [2]王凤龄.ACCESS实用教程[M].北京:电子工业出版社,2008. [3]曹淑琴.JSP技术的网站建设[M].北京:清华大学出版社,2008. [4]吴玉新.JSP后台解决方案[M].北京:人民邮电出版社,2008. [5]黄明.JSP信息系统设计与开发实例[M].机械工业出版社,2007. [6]刘禾.精通JSP架站技巧[M].中国青年出版社,2008. [7]张群瞻.网页三剑客培训教程[M].冶金工业出版社,2007. [8]胡杰.动态网页设计基础教程[M].科学出版社, 2008. [9]陈伟清.JSP—原理与算法[M].北京:清华大学出版社,2007.

[10] Mehmed kantardzic.JSP—概念、模型、方法和算法[M]. 电子工业出版社,2005. [11]黄亚楼.JSP的数据预处理[M].北京:清华大学出版社,2006. [12]王珊.数据库系统导论[M].机械工业出版社,2005.

[13]傅立宏.JSP通用模块及典型系统开发实例导航[M].北京:人民邮电出版社,2006. [14]盖天宇.JSP数据库系统开发案例精选[M].北京:人民邮电出版社,2005.

29

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

Top