论坛程序的设计与实现.docx
- 文档编号:26973631
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:33
- 大小:1.32MB
论坛程序的设计与实现.docx
《论坛程序的设计与实现.docx》由会员分享,可在线阅读,更多相关《论坛程序的设计与实现.docx(33页珍藏版)》请在冰豆网上搜索。
论坛程序的设计与实现
成人本科生毕业论文
题目:
论坛程序的设计与实现
导师:
姓名:
学号:
系别:
专业:
教学中心:
摘要
论坛又名网络论坛BBS,全称为BulletinBoardSystem(电子公告板)或BulletinBoardService(公告板效劳)。
是Internet上的一种电子信息效劳系统。
1、利用论坛的超高人气,能够有效为企业提供营销传播效劳。
而由于论坛话题的开放性,几乎企业所有的营销诉求都能够通过论坛传播取得有效的实现。
2、专业的论坛帖子策划、撰写、发放、监测、汇报流程,在论坛空间提供高效传播。
包括各类置顶帖、一般帖、连环帖、论战帖、多图帖、视频帖等。
3、论坛活动具有壮大的聚众能力,利用论坛作为平台举行各类灌水、帖图、视频等活动,调动网友与品牌之间的互动。
4、事件炒作通过炮制网民感爱好的活动,将客户的品牌、产品、活动内容植入进传播内容,并展开持续的传播效应,引发新闻事件,致使传播的连锁反映。
5、运用搜索引擎内容编辑技术,不仅使内容能在论坛上有好的表现,在主流搜索引擎上也能够快速寻觅到发布的帖子。
6、适用于商业企业的论坛营销分析,对长期网络投资项目组合应用,精准的预估以后企业投资回报率和资本价值。
因此,研究BBS和了解JSP应用软件的开发,提高自身的开发和就业能力具有重要的意义。
关键词:
动态效劳网页,论坛,用户治理
第1章 绪论
作为Internet上一种先进的,易于被人们所同意的信息检索手腕,WorldWideWeb(简称WWW)进展十分迅速,成为目前世界上最大的信息资源宝库。
其内容范围跨越了教育科研、文化事业、金融、商业、新闻出版、娱乐、体育等各个领域,其用户群十分庞大,因此,建设一个好的Web站点关于一个机构的进展十分重要。
最近几年来,随着网络用户要求的不断提高及运算机科学的迅速进展,专门是数据库技术在Internet中的普遍应用,Web站点向用户提供的效劳将愈来愈丰硕,愈来愈人性化。
咱们发觉如此一个事实,一个用户在访问一个网站时一样来讲只对该网站的部份内容感性趣,而且这种爱好会持续一段时刻。
这点启发了咱们,若是能依照用户的喜好为不同的用户显示其个性化的页面,即着重显示该用户感爱好的内容,将为用户节约大量的检索时刻,而且如此的网页显然是更具有吸引力的。
一些站点已经在这方面作出了必然的尝试,通常采纳的方式是,在用户登岸时为其提供一系列的选项,利用户能够对站点进行一些自主的设置。
如此做能够使站点呈现必然程度的个性化,可是对用户来讲,仍是比较烦琐,而且在用户了解一个站点前让其对站点进行设置,其结果未免有些粗糙。
于是咱们构思了如此一种方案,对用户登岸后的动作进行跟踪,分析,挖掘用户点击的规律,即用户前后点击的关联规那么,如此,在用户点击一个主题(链接)以后,系统能够自动生成一页面,其中包括了该主题下用户常常关注的内容(假设干链接),如此便在不必用户作出任何额外工作的情形下实现了为用户量身订做的个性化页面。
要实现如此的功能,离不开后台数据库的支持。
用户验证信息,搜集到的用户点击信息,主题层次信息,分析得出的关联规那么表等大量的数据都由数据库治理系统治理。
本文中数据库效劳器端采纳了MicrosoftAccess数据库作为MYSQL数据源。
整个个性化页面生成系统要紧由利用Dreamweaver_MX开发的关联规那么采掘系统和利用JSP技术实现的个性化Web页面生成器两部份组成。
关联规那么采掘系统对数据库中的历史记录进行分析,产生用户关联规那么表;页面生成器那么负责记录用户行为和依照关联规那么表动态生成用户个性化Web页面。
二者通过数据库效劳器和Web效劳器连接。
本文作者要紧完成Web效劳器端的用户治理、帖子治理、版面治理、数据库治理、阅读和查找、短消息功能等设计、实现与完善和整个实验网站的组织成立和测试工作。
第2章 系统技术及运行环境
2.1JSP技术简介
JSP(JavaServerPages)是由SunMicrosystems公司提倡、许多公司参与一路成立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP技术利用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处置逻辑。
网页还能通过tags和scriptlets访问存在于效劳端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web效劳器在碰到访问JSP网页的请求时,第一执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一路返回给客户。
插入的Java程序段能够操作数据库、从头定向网页等,以实现成立动态网页所需要的功能。
JSP与JavaServlet一样,是在效劳器端执行的,通常返回给客户端的确实是一个HTML文本,因此客户端只要有阅读器就能够阅读。
JSP的标准的最后版本是1999年9月推出的,12月又推出了标准。
目前较新的是标准,标准的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
效劳器在页面被客户端请求以后对这些Java代码进行处置,然后将生成的HTML页面返回给客户端的阅读器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具有了Java技术的简单易用,完全的面向对象,具有平台无关性且平安靠得住,要紧面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的效劳器,如IBM、Oracle、Bea公司等,因此JSP迅速成为商业应用的效劳器端语言。
JSP可用一种简单易懂的等式表示为:
HTML+Java=JSP。
(1)一次编写,处处运行。
除系统之外,代码不用做任何更改。
(2)系统的多平台支持。
大体上能够在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相较ASP/.net的局限性是显而易见的。
(3)壮大的可伸缩性。
从只有一个小的Jar文件就能够够运行Servlet/JSP,到由多台效劳器进行集群和负载均衡,到多台Application进行事务处置,消息处置,一台效劳器到无数台效劳器,Java显示了一个庞大的生命力。
JSP
(4)多样化和功能壮大的开发工具支持。
这一点与ASP很像,Java已经有了许多超级优秀的开发工具,而且许多能够免费取得,而且其中许多已经能够顺利的运行于多种平台之下。
(5)支持效劳器端组件。
web应用需要壮大的效劳器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面挪用,以增强系统性能。
JSP能够利用成熟的JAVABEANS组件来实现复杂商务功能。
2.2数据库链接
Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。
Sun公司还开发了JDBC-ODBCbridge,利用此技术Java程序能够访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,因此Java程序能访问诸如Oracle、Sybase、MSSQLServer和MSAccess等数据库。
另外,通过开发标识库,JSP技术能够进一步扩展。
第三方开发人员和其他人员能够为经常使用功能创建自己的标识库。
这使得Web页面开发人员能够利用熟悉的工具和犹如标识一样的执行特定功能的构件来进行工作。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技术,而且能扩展到支持企业级的散布式应用中。
作为采纳Java技术家族的一部份,和Java2(企业版体系结构)的一个组成部份,JSP技术能够支持高度复杂的基于Web的应用。
由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为JavaServlets,因此JSP页面具有Java技术的所有益处,包括健壮的存储治理和平安性。
作为Java平台的一部份,JSP拥有Java编程语言“一次编写,遍地运行”的特点。
2.3mysql语句简介
1、mysql语句简介
MySQL是一个广受Linux社区人们喜爱的半商业的数据库。
MySQL是可运行在大多数的Linux平台(i386,Sparc,etc),以及少许非Linux甚至非Unix平台。
2、安装
能够在MySQL站点上取得大多数要紧的软件包格式(RPM、DBE、TGZ),客户端库和各类语言“包装”(Wrapper)能够分开的RPM格式取得。
RPM格式的安装没有多大麻烦,而且无需初始配置。
在(以RedHat RPM为例)生成一个初始脚本,故MySQL守护进程在多用户模式下重启时被启动运行。
MySQL的守护进程(mysqld)消耗很少的内存(在运行的奔腾133上,每一个守护进程利用500K内存和另外4M共享内存的开销)并在只有在执行真正的查询时才装载处处置器上,这意味着对小型数据库来讲,MySQL能够相当轻松地利用而可不能对其他系统功能有太大的阻碍。
3、数据类型
字段支持大量数据类型是件好事。
通常的整数、浮点数、字符串和数字均以多种长度表示,并支持变长的BLOB(Binary Large OBject)类型。
对整数字段由自动增量选项,日期时刻字段也能专门好的表示。
MySQL与大多数其他数据库系统不同的是提供两个相对不经常使用的字段类型:
ENUM和SET。
ENUM是一个列举类型,超级类适于Pascal语言的列举类型,它许诺程序员看到类似于'red、'green'、'blue'的字段值,而MySQL只将这些值存储为一个字节。
SET也是从Pascal借用的,它也是一个列举类型,但一个单独字段一次可存储多个值,这种存储多个列举值的能力或许可不能给你一些印象(并可能要挟第三范式概念),但正确利用SET和CONTAINS关键字能够省去很多表连接,能取得专门好的性能提高。
4、SQL兼容性
MySQL包括一些与SQL标准不同的转变,他们的大多数被设计成是对SQL语言脚本语言的不足的一种补偿。
但是,另一些扩展确实使 MySQL不同凡响,例如,LINK子句搜索是自动地忽略大小写的。
MySQL 也许诺用户自概念的SQL函数,换句话说,一个程序员能够编写一个函数然后集成到MySQL中,而且其表现的与任何大体函数如SUM()或AVG ()没有什么不同。
函数必需被编译道一个共享库文件中(.so文件),然后用一个LOAD FUNCTION命令装载。
它也缺乏一些经常使用的SQL功能,没有子选择(在查询中的查询)。
视图(View)也没了。
固然大多数子查询能够用简单的连接(join)子句重写,但有时用两个嵌套的查询试探问题比一个大连接容易。
一样,视图仅仅为程序员隐蔽where子句,但这正是程序员们期望的另一种便利。
5、存储进程和触发器
MySQL没有一种存储进程(Stored Procedure)语言,这是对适应于企业级数据库的程序员的最大限制。
多语句SQL命令必需通过客户方代码来和谐,这种情形是借助于相当健全的查询语言和给予客户端锁定和解锁表的能力,如此才许诺的多语句运行。
6、参考完整性(Referential Integrity-RI)
MySQL的要紧的缺点之一是缺乏标准的RI机制;但是,MySQL的制造者也不是对其用户的愿望置假设罔闻,而且提供了一些解决方法。
其中之一是支持唯一索引。
Rule限制的缺乏(在给钉字段域上的一种固定的范围限制)通过大量的数据类型来补偿。
不简单地提供检查约束(一个字段相关于同一行的另一个字段的之值的限制)、外部关键字和常常与RI相关的“级联删除”功能。
有趣的是,当不支持这些功能时,SQL分析器容忍这些语句的句法。
如此做目的是易于移植数据库到MySQL中。
这是一个专门好的尝试,而且它确实以后支持该功能留下方便之门;但是,那些没有认真阅读文档的的人可能误以为这些功能事实上是存在的。
7、平安性
自始至终我对MySQL最大的抱怨是其平安系统,它唯一的缺点是复杂而非标准,另外只有到挪用mysqladmin来重读用户权限时才发生改变。
通常的SQL GRANT/REVOKE 语句到最近的版本才被支持,可是至少他们此刻有了。
MySQL的编写者普遍地记载了其特定的平安性系统,可是它确实需要一条可能是别无它法的学习进程。
8、备份和恢复、数据导入/导出
强制参考一致性的缺乏显著地简化备份和恢复,单靠数据导入/导出就可完美复制这一功能。
LOAD DATA INFILE命令给了数据导入专门大的灵活性。
SELECT INTO命令实现了数据导出的相等功能。
另外,既然MySQL不利用原始的分区,所有的数据库数据能用一个文件系统备份保留。
数据库活动能被记载。
与通常的数据库日记不同(存储记录转变或在记录映像之前/以后), MySQL记载实际的SQL语句。
这许诺数据库被恢复到失败前的那一点,可是不许诺提交(commit)和回卷(rollback)操作.
9、连接性
MySQL客户库是客户/效劳器结构的C语言库,它意味着一个客户能查询驻留在另一台机械的一个数据库。
但是MySQL真正的强项处于该库中的语言“包装器(wrapper)”, Perl、Pathon和PHP只是一部份。
Apache的Web效劳器也有许多模块例如目录存取文件等许诺各类各样的Apache配置信息(例如目录存取文件)利用MySQL,应用程序接口简单、一致而且相但完整。
另外、多平台ODBC驱动程序可自由取得。
10、以后
MySQL的开发继续以快速进行着。
事实上,开发步伐对大多数开放源代码是一种挑战。
本文提到的几个抱怨中有很多新功能正在解决,但是,我将不对还没确实存在的特点做评判。
开发者们向我说明了在以后的开发中把增加查询功能和提高查询速度作为最高优先级。
11、总结
Mysql是数据库领域的中间派。
它缺乏一个全功能数据库的大多数要紧特点,可是又有比类似Xbase记录存储引擎更多的特点。
它象企业级RDBMS那样需要一个踊跃的效劳者守护程序,可是不能象他们那样消费资源。
查询语言许诺复杂的连接(join)查询,可是所有的参考完整必需由程序员强制保证。
MySQL在Linux世界里找到一个位置-提供简练和速度,同时仍然提供足够的功能使程序员快乐。
数据库程序员将喜爱其查询功能和普遍的客户库,数据库治理员会感觉系统缺乏要紧数据库功能,他们会觉察它对简单数据库(在不能保证购买大牌数据库时)是有价值的。
2.4tomcat简介
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人一起开发而成。
由于有了Sun的参与和支持,最新的Servlet和JSP标准老是能在Tomcat中取得表现,Tomcat5支持最新的Servlet2.4和JSP2.0标准。
因为Tomcat技术先进、性能稳固,而且免费,因此深受Java爱好者的喜爱并取得了部份软件开发商的认可,成为目前比较流行的Web应用效劳器。
目前最新版本是6.0。
2.5JDK简介
JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。
自从Java推出以来,JDK已经成为利用最普遍的JavaSDK。
JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。
JDK是学好Java的第一步。
而专门运行在x86平台的Jrocket在效劳端运行效率也要比SunJDK好很多。
从SUN的JDK5.0开始,提供了泛型等超级有效的功能,其版本也不断更新,运行效率取得了超级大的提高。
2.6运行环境
为了保证成绩治理系统运行的效率和靠得住性,效劳器应具有较高的软硬件配置,客户端的要求不是很高。
此应用程序可普遍运行于国际互联网即Internet,也可适用于内部的局域网。
其运行要求如下:
软件环境:
客户端:
Windows95/98/2000/XP,InternetExplorer(IE)等。
效劳器端:
WindowsNT/Windows2000,,IE等;或Windows98,PersonalWebServer(PWS),IE等。
数据库:
采纳Access,运行于效劳器端。
硬件环境:
效劳器CPU:
PIII500以上,内存:
512M以上。
客户机CPU:
P200MMX以上,内存:
32M以上。
第3章需求分析
3.1编写目的
论坛又名网络论坛BBS,全称为BulletinBoardSystem(电子公告板)或BulletinBoardService(公告板效劳)。
是Internet上的一种电子信息效劳系统。
它提供一块公共电子白板,每一个用户都能够在上面书写,可发布信息或提出观点。
它是一种交互性强,内容丰硕而及时的Internet,电子信息效劳系统。
用户在BBS站点上能够取得各类信息效劳,发布信息,进行讨论,谈天等等。
BBS多用于大型公司或中小型企业,开放给客户交流的平台,关于初识网络的新人来讲,BBS确实是用于在网络上交流的地址,能够发表一个主题,让大伙儿一路来探讨,也能够提出一个问题,大伙儿一路来解决等,是一个人与人语言文化共享的平台,具有实时性、互动性。
3.2任务目标
3大体性能
系统包括要紧的功能:
新用户的注册,会员密码取回,会员登录,用户自己修改信息,治理员删除用户,游客阅读留言,会员新增留言,会员留言答复,治理员删除留言这些功能,能够应付一样的用户需要。
3开发目标
那个系统预期的目的是为了做成交互式的网页,方便客户端和阅读器端之间的交流。
通过论坛,人们能够彼此交流沟通,把疑惑在论坛里发布,大伙儿献计献策,一起窗习,一起进步。
3应用目标
网上论坛系统是一个会员登录留言系统。
网上游客能够阅读论坛上的帖子,而且能够注册成为用户。
论坛注册会员能够修改自己的资料信息,申请版主,发表帖子,让大伙儿踊跃参与讨论。
论坛治理员能够便于治理论坛,包括阅读游客留言,审核留言,关于不健康或是无益于社会稳固的留言能进行删除操作,会员治理和论坛版主治理等等。
第4章 整体设计
4.1系统设计思想
4网上论坛系统说明
此网上论坛能够实现:
游 客:
查看帖子、注册新用户。
注册用户:
查看帖子、发新帖子、在线发布信息、答复信息、修改个人资料、在线短消息。
治理员:
发布公告、帖子治理、论坛设置、版面治理、用户治理、友谊连接、短消息治理、数据库备份。
网上论坛系统整体分析
通过上面的功能说明,咱们能够将论坛的制作分为四大部份:
(1)会员注册和登岸模块:
那个模块的功能,确实是新来网友能够填写注册资料,通过审核后便成为本论坛的正式会员,并能够以会员身份登岸论坛。
(2)版块及文章显示模块:
显示论坛的各大版块和所有会员最新发表的一些文章主题。
(3)发表文章模块:
为会员提供发表文章的地址,和答复主题等。
(4)论坛治理模块:
版主以上职务能够进行对文章处置,置顶,加精华,删除等,还有确实是治理员对论坛进行综合治理。
了解了具体的功能需求后,就能够够按模块的开始论坛的设计了。
固然,这些模块的只是在功能上对论坛结构的划分,事实上并非能够完全的把他们独立出来
进行设计。
关于这种较小的应用,也没有必要进行完全的模块化设计,在良好的计划下直接写程序代码或许来的更为简单一些。
4.2数据库设计思想
4.2.1数据库的选择
mysql的优势
1.它利用的核心线程是完全多线程,支持多处置器。
2.有多种列类型:
1、2、3、4、和8字节长度自有符号/无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、和ENUM类型。
3.它通过一个高度优化的类库实现SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分派。
没有内存漏洞。
4.全面支持SQL的GROUPBY和ORDERBY子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。
你能够在同一查询中混来自不同数据库的表。
5.支持ANSISQL的LEFT0UTERJOIN和ODBC。
6.所有列都有缺省值。
你能够用INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的决省值。
7.MySQL能够工作在不同的平台上。
支持C、C++、Java、Perl、PHP、Python和TCLAPI。
4.2.2数据库设计
(1)治理员表
编号
字段名
数据结构
说明
1
name
文本
用户名
2
Pswd
文本
密码
3
bd
数字
权限标示
(2)用户表
编号
字段名
数据结构
说明
1
Userid
数字
用户序号
2
Name
文本
用户名
3
Pswd
文本
密码
4
Userinfo
文本
用户信息
5
Grade
数字
等级
6
Topicnum
数字
总发帖数
7
Lasttime
日期/时间
最后登陆时间
8
Tnum
数字
当天发帖数
9
Wnum
数字
周发帖数
10
Friend
文本
好友
11
favorites
文本
爱好
(3)帖子表
编号
字段名
数据结构
说明
1
Id
数字
帖子ID
2
Bd
数字
所属版块
3
Topic
文本
主题
4
Tinfo
文本
内容
5
Userid
数字
用户ID
6
Posttime
日期/时间
发表时间
7
Type
数字
帖子类型
8
Hits
数字
查看数
9
Retime
日期/时间
最后回复时间
10
Renum
数字
回复数
(4)投票表
编号
字段名
数据结构
说明
1
Id
数字
序号
2
Content
文本
内容
3
Votnum
数字
投票数
4
Type
数字
类型
5
Outtime
日期/时间
投票时间
6
Voteduser
文本
投票者
(5)上传文件表
编号
字段名
数据结构
说明
1
Id
数字
序号
2
Bbsid
数字
BBS序号
3
Filename
文本
文件名称
4
Filetype
数字
类型
5
Uploadtime
日期/时间
上传时间
6
Name
文本
名字
7
url
文本
上传地址
8
Hits
数字
查看数
9
Filesize
数字
文件大小
(6)版块表
编号
字段名
数据结构
说明
1
Id
数字
版块ID
2
Fid
数字
所属ID
3
Bdinfo
文本
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 论坛 程序 设计 实现