1前言随着计算机网络的飞速发展,网民人数越来越多,BBS论坛作为一种交流思想和感情的桥梁,快捷方便,正受到越来越多网友的喜爱,并深刻地影响人类的交流方式。BBS是互联网一种人与人之间交互的必备工具,特别是做网站必备。BBS可以通过WEB浏览器访问,并且实现上传文件等诸多功能。网民们便逐步开始接受这种使用方便快捷、功能日渐强大的系统。在它上面网民们可以张贴和发布各种各样的信息,讨论各式话题。随着中国网络的普及和计算机及其外设的大幅度降价,Internet这个概念逐渐深入人心。中国网民的数量呈几何级数量增长,BBS的普及程度也直追Email。每个网站几乎都拥有自己的BBS或者BBS链接,BBS社区提供给用户的服务是全面而且非常友好的,用户在社区中可以根据自己的喜好设置不同的显示风格,根据自己的需求定制各种服务1.引言1.1.编写目的本文档作为BBS的详细设计说明文档,用于与用户确定最终的目标,并成为协议文本的一部分,同时也是本系统设计人员的基础文档。1.2.软件背景BBS论坛,或者称为社区,是电子商务网站中一种常见功能,也是互联网上一种极为常见的互动交流服务。它为上网用户提供了也各自由的讨论区。通过论坛可以向用户提供开放性的分类专题讨论区服务,同时注册的用户可以根据需要在论坛上发表文章,交流技术经验,或者提出问题并表达自己的观点。不仅如此,上网的用户还可以在论坛中看到他人发表的文章,并且能够对该文章进行评论。2一般情况下,BBS按不同主题分为多个布告栏,其设立多是依据使用者的要求和喜好,但多具有信件交流、软件交流、信息发布等功能。目前,大部分BBS由教育机构、研究机构或商业机构管理,大多有自己的拨入电话号码,用户只需电脑、调制解调器和电话线就可通过电话拨号登录BBS站点。本BBS论坛旨在为本校学生和校外人员提供交流、探讨的平台。帮助大家的更好的交往,可以更好丰富大家的生活、提高大家的积极性。1.3.定义Jsp(JavaServerPages)JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Servlet技术Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。Spring技术Spring是一个开源框架,是为了解决企业应用程序开发复杂性由RodJohnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Hibernate技术Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了3非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。JavaAjax通过AJAX,JavaScript可使用JavaScript的XMLHttpRequest对象来直接与服务器进行通信。通过这个对象,JavaScript可在不重载页面的情况与Web服务器交换数据。AJAX在浏览器与Web服务器之间使用异步数据传输(HTTP请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。Web应用程序较桌面应用程序有诸多优势;它们能够涉及广大的用户,它们更易安装及维护,也更易开发。Struts只是一个MVC框架(Framework)用于快速开发JavaWeb应用。Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(CustomTag)。但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑。JDBC(JavaDataBaseConnectivity,java数据库连接)它是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序。2.系统的结构4前台模块发布帖子个人空间浏览帖子回复帖子好友管理查看个人信息修改给人信息删除修改帖子最新热门十大主题个人相册积分等级留言板前台模块5后台模块版块管理版主管理帖子管理公告管理会员管理邮件管理加精置顶删帖后台模块3.程序描述随着计算机网络的飞速发展,网民人数越来越多,BBS论坛作为一种交流思想和感情的桥梁,快捷方便,正受到越来越多网友的喜爱,并深刻地影响人类的交流方式。本BBS论坛旨在为本校学生和校外人员提供交流、探讨的平台。帮助大家的更好的交往,可以更好丰富大家的生活、提高大家的积极性。本BBS论坛主要功能为:会员注册新会员注册,提供会员信息,检验新会员信息的有效性会员登陆输入用户名和密码,检验用户信息,基于角色授权;会员管理管理员由程序员设置一个,管理员可以对会员信息进行部分更改,主要包括6用户角色调整,会员禁言等;论坛版块管理管理员可以添加,修改,隐藏论坛版块;帖子管理管理员可以对所有帖子进行置顶,删除,加精等操作,版主可以对本版块帖子进行置顶,删除,加精等操作;帖子发表注册用户可以在所以版块中发表新主题帖;帖子回复注册用户可以回复帖子;帖子浏览注册用户可以任意浏览权限内的帖子,未注册用户只能浏览,不能回复;帖子检索用户可以提供关键字检索可见主题帖,注册用户可以查看自己发表的帖子;好友查看注册用户可以添加好友,便于查看好友的帖子,以及给好友发送消息,留言等邮件管理管理员或者版主可以给会员发邮件,对于帖子被转移等情况进行通知会员禁言对于违反论坛规矩的会员进行禁言处理,严重着封号处理。4.模块设计说明4.1.功能模块设计通过对系统进行详细的需求分析,获得了一个最优的设计方案,将系统划分为若干功能子模块。为了方便后期的设计与编程工作,在划分系统功能模块时尽量注重模块的独立性,努力做到高内聚,低耦合。74.1.1.用户注册登录模块要完成论坛的各项操作,用户必须登陆论坛系统,如果没有论坛帐户,用户注册是必须的。如果是登录则使用mysql连接数据库,取得用户输入的帐号和密码并查询数据库,将得出的结果和用户输入的信息做比较,验证正确,显示用户已经登陆到系统,可以根据权限的不同进入到不同的页面,错误将返回消息让用户从新输入.如果用户想注册帐户,则返回注册页面,用户填写信息后,将检测信息的正确性,如果帐号合法允许注册,则完成帐号的注册,将信息写入到数据库中,如果帐户已经存在,则返回错误信息,告诉用户帐号存在,请用户重新输入,并完成注册,进程结束。4.1.2.帐户信息模块当用户登陆系统后,在个人工具箱中,可以通过点击个人资料修改的链接来修改个人资料(其中帐户名是不允许修改的),通过最近发表的话题来查看和修改自己发布的帖。84.1.3.文章发布模块用户登陆系统后可以查看其他所有用户发的文章,并可以发布自己的话题,也可响应回复其他用户和自己发表的话题。4.1.4.公告制度模块9论坛管理员可以通过后台管理系统发布论坛公告,发布的公告包含主题,详细信息,发布时间等信息。在论坛主页面里有一个版面显示的是公告,可以显示最近时间发布的公告信息。4.1.5.版块管理模块论坛管理员可以通过后台管理系统控制论坛的版块,管理员可以完成下列功能:添加分类或版面,版面配置或删除;并可以对已存在的版块设置属性(包括名称,类别,隐藏,属性,默认风格,主题,回复,排序等)。4.1.6.信息管理模块信息管理模块主要完成下面的功能:添加版主;编辑版主;设定等级;配置权限;用户等级;管理团队;用户列表;黑名单;用户查询。以上的功能完成了整个论坛的配置,用户的管理,管理员的管理都可以通过对应的链接来完成。4.2.功能提供完善的用户登录功能,要求为不同用户提供分级权限。提供标准的发贴、删贴功能,并且每一个帖子的内容不加限制,帖子必须能显示发贴时间、作者,点击数,回复数,最后回复者,最后回复时间。提供回帖功能,每个回帖有父贴。父帖与子帖是一对多的关系,删除父帖后,子帖也连带被删除。10提出精华区的概念,为每个版面都提供一个精华区,其中内容是多次提出的热点问题。完全是模式,即只要有浏览器即可访问本BBS系统。4.3.设计方法基于WEB的通用BBS系统其系统定义部分采用面向对象的系统分析方法,采用MVC模式,利用SSH框架实现,其中用struts中的action实现了显示层和逻辑层的分离,通过建立各个功能的action类实现了对业务逻辑的处理,hibernate实现了面向对象的思想,把表中的各个表以各个类的属性和方法来实现,实现了数据的持久化操作,通过DAO层的类为实现对数据操作的具体实现类,spring是为struts和hibernate服务的,也就是为各个层之间的类的接口服务的,能够实现了依赖注入,配置各个类。采用面向对象分析的方法,把各个信息都以面向对象的方法实现。各个层之间的关系:114.3.1.系统主页面Main.asp这是BBS网站的HomePage,程序首先进行用户身份判断。本系统用户身份信息经登录后保存在SESSION对象的USERNAME和ADMINBOARD两个变量里。匿名用户(既Guest)这两个变量为空或没有定义;普通用户USERNAME变量有用户在本系统注册的会员昵称,但其ADMINBOARD变量没有定义或为空;版主用户其ADMINBOARD变量保存有他管理版面的ID;如果ADMINBOARD变量为“0”则为管理员。依据程序对用户所做的判断,插入相应用户的功能操作菜单。这就实现了不同层次对象的同一方法的不同功能。页面显示层Action业务逻辑层DAO层实体类层数据库Spring实现Hibernate实现Service层124.3.2.各级别功能的实现方法公有功能是可以为比其级别高的用户所继承的功能。因此,公有功能ASP网页只进行比其级别低的用户身份的识别,如果此用户级别低则拒绝继续访问。此外,高级别的用户可以进行功能重载,譬如,匿名用户只能查看本系统会员列表,但是,超级会员在查看的同时,还可以进行管理操作,如修改,删除等。下面是所有公用功能的重载列表:Guest::useradmin.asp查看本论坛注册会员列表Super::useradmin.asp查看并管理本论坛注册会员列表Guest::adminorlist.asp查看本论坛版主列表Super::adminorlist.asp查看并管理本论坛版主列表Adminor::articleadmin.asp自已管理辖版面范围内的贴子维护Super::articleadmin.asp本论坛所有版面贴子维护Adminor::linkadmin.asp添加或维护自已曾添加的友情链接Super::linkadmin.asp