引 言WEB技术不断发展的现在,跨入二十世纪后期,我们吃惊地发现一批通过网络传输信息的新的形式正在从“三大媒介”中的突围出来,从而有了突飞猛进的发展,而BBS论坛在其发展过程中,由一个互联网的日常应用发展成一种日益普遍的社会现象。论坛服务系统的管理已经成为国内网络思想教育以及互联网舆论的主要问题。在网络上,几乎我们每一个人都有自己在某些一定的领域中有感兴趣的话题、情感或心理上的诉求而进行交流的需要,这种需求引发了网络虚拟社区的诞生。针对一些国内以及国外的论坛发展以及管理状况做比较研究,对国内论坛管理水平的提高有很大的意义。BBS,即电子公告板,它是一种基于远程登录协议访问互联网的形式。随着网络而兴起的服务,那么基于WEB的BBS也开始强调其交流性,于是论坛(Forum)数学和工程计算软件第一章 设计相关背景和技术1.1论坛的国内外发展史1.西方国家BBS诞生于21世纪之前的70年代的美国,主要用于其成员之间的信息交流与网络通讯,因为那时还没有搜索引擎,浏览器、更不用说个人网站了。BBS的主要功能就是进行信息的发布,这些信息主要包括新闻信息、交易信息、用户自己发表的感言和网上的互动。随着web技术逐渐的成熟,发展,其他功能更强的应用出现了,逐渐挤掉了BBS。
对新闻信息、个人言论、交易信息的发布这三个功能各自单独演化,发展成三个以下类型的网站分别对应新闻类、博客类和电子商务类。第四个功能互动式问答在将来也会被分离出来但现在还没有出现该领域的网站。进入到21世纪的前十年,电子公告板把主要的应用转移到了Forum上,逐渐演化出现在的BBS论坛。因此,WEB技术的发展,使得电子公告板的影响力正逐渐的减小,现在我们以美国为例,现在只有少数BBS论坛的存在是主要用于提出和解决问题的,而绝大多数高校基本上已经没有BBS论坛的存在了,而集中表现在针对软件或商品的技术支持电子公告板和技术类的等。对于中文BBS是属于人气极旺的,因为它的管理机制简单,不会有言论的约束,用户们可以自由的进行言论的交互。通过以上的阐述发现西方国家对BBS的直接研究是很少的,而间接的研究主要集中在针对网络社会中的行为方式、价值观念、人际关系和社会结构方面等,也就是在对网络社会、虚拟社区方面。对虚拟社区的研究主要包括自身特征及社会问题等进行研究。2.中国港台地区20世纪80年代,西方的电子公告板传入中国台湾地区,并在20世纪90年代中山大学电子计算中心推出TANet BBS(中文环境的论坛)之后,自此风靡台湾各个大学。
甚至一些大学竟然有100多个BBS站之多。相比之下,香港地区的BBS数量却是比不上台湾大学的,并且部分院校的BBS不对外开放,据调查显示香港网民经常使用BBS讨论组的比例只有5%。但是,香港地区的BBS发展势头却是比台湾地区快。因为BBS在台湾地区出现的时间早,从柯舜智开始涌现出许多关于BBS的文章发表,有更多的人参与到它的研究中,尤其是在人与人之间的沟通交流问题,会议日程设置问题,身份的验证等方面的研究有很强的代表意义,它有很好的前瞻性。自然对于BBS的研究成果是比较丰硕的。3.中国大陆BBS论坛的发展和现状北京长城站成为中国大陆最早的BBS论坛,由于20世纪90年代国内互联网普及的条件限制,所以当时每天用户访问量也就只有十几人。在此3年后的春天,曙光BBS站继北京长城站作为中国大陆第一个网络BBS站而开通。由于计算机及其外设的大幅度降价、使得互联网在国内的快速发展已经快达到普及的程度,BBS和Forum逐渐被网民所认识认识,并以惊人的速度发展扩大成长起来。国内的BBS在二十世纪九十年代的时候到达了一个巅峰状态,网络上涌现了各种各样的网站论坛,因为竞争的关系网络论坛功能更加全面,涉及范围更加广泛,用户数量越来越多。
在此之后,由于发展的速度以及无序和不妥善的管理,在网络泡沫(表示发展太快,太神奇的网络)的冲击之下,很多论坛迅速消亡了。自此,国内的BBS进入一个崭新的时代。据统计,每年使用BBS的网民数量都会大幅度增长,由此可见BBS论坛作为国内互联网的应用在互联网中依然有很重要的地位。在大多数研究者看来,因为论坛易用、实用、简单的特点减减突显,相信BBS论坛在将来会向个性化和专业化的方向发展。1.2 开发工具的介绍1.2.1 spring介绍Spring是开源框架,它由Rod Johnson创建。SpringSpring框架时,我们主要是用Spring容器的两个特性就是IoC和AoP。IoC全称Inverse of Control(反向控制或控制反转)。 是类之间存在控制权,此处所说的控制权指的就是对对象的创建和使用, 比如我们现在有类college和类school,而我们之前的做法就是在college中调用school,那么控制权就在college中,这样做的耦合度较高, 如果修改了school,college也要做修改。 我们使用Spring框架后,控制权由spring容器来管理。当college想调用school时,需要由Spirng容器通过进行注入用配置文件。
此方案有一种完整而简洁的美感,他把对象的依赖关系有序的建立起来,简化了对象依赖关系的管理,很大程度上简化了面向对象系统的复杂性。AOP是面向切面编程(也叫面向方面,英文Aspect Oriented Programming的缩写),是不修改源代码的前提下统一给程序动态添加功能的一种技术它是通过预编译的方式和运行期动态代理来实现的。 例如:Struts2中的拦截器,就是使用AOP的思想。使用这种思想编写程序,会使程序更加灵活。1.2.2Hibernate介绍1、什么是hibernate? Hibernate对JDBC进行了封装,对对象进行持久化,并且是一种全自动的工具 这是一种框架,能得到众程序员的喜欢,主要是因为它的优点:、提高生产力。、更面向对象化。、移植性好。、透明持久化。不需要特定SQL优化的时候适合使用,如果要批量的进行更新、删除都不适合,包括统计 (1)配置文件《1》全局配置文件:hibernate.cfg.xml:主要用来实现整个应用程序中使用的数据库,以及这个应用程序中的对象关系映射; 例子:注意:1、我们所写的每一个程序的全局配置文件名称都应该是hibernate.cfg.xml,并且默认放在工程的根目录下,也就是与源程序代码同级。
每一个工程只能有一个全局配置文件,如果要使用别的位置的配置文件,调用 configuration的有参的构造方法,指定这个配置文件的位置。如果不是用工具编写的,那么这个配置文件应该跟.classpath放在一块。2、对象--关系映射文件命名规则:className.hbm.xmlORM 的具体细节Class to TableIdentifier to PKProperties to columnsjava type as database type3作用:使程序中实体类与数据库的表一一对应。1.3 建立设置开发和运行环境1.3.1.安装支持环境,服务器,开发工具表1-1运行平台安装位置软件名称安装路径jdk1.7.0_05C:Program FilesJavajdk1.6.0_02Tomcat 6.0.20D:Myeclipse 8.6D:SoftWare1.3.2.安装MySQL数据库从网上下载MySQL的驱动程序包安装上,mysql-essential-5.0.87-win32.msi文件按照提示步骤安装,安装结束后,在编码方面会有问题,这时需要安装的目录下找到my.ini修改其中的编码字符集(default-character-set)第一个修改为gbk第二个修改为utf8,所有的开发环境最好在没有装SQL之前装,如果安装过MySQL不能用,那么下次安装前一定要将之前的安装文件删除干净。
1.3.3 配置环境变量安装Java JDK1.6最重要的也是最容易出错的是设置环境变量。一共需要设置3个环境变量:Path,Classpath和Java_Home(大小写无所谓)。 Windows系统中设置环境变量如下图: ?点击“高级”选项卡,选择“环境变量”。?在“系统变量”中设置Path,Classpath和Java_Home 3个环境变量,如果就选择“编辑”,选“新建”。 ?JAVA_HOME指明JDK安装路径,就是刚才安装时所选择的路径(假设安装在C:Program FilesJavajdk1.6.0_02),包括lib,bin,jre文件夹(JAVA_HOME变量,因为以后运行tomcat,Eclipse等都需要依靠JAVA_HOME)。 Path使系统在任何路径下识别java命令,设为:%JAVA_HOME%bin;%JAVA_HOME%jrebin Classpath为加载类java所需要的路径,类在classpath中,java命令才识别,设为:.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar (要加.表示当前路径) 特别注意:◆环境变量值的结尾没有任何符号毕业设计论坛,不同值之间用;隔开(unix中用:)。
◆CLASSPATH变量值中的.表示当前目录。 在下,java –version就可以查看到版本;入java命令,可以看到此命令的帮助信息;javac(编译)命令可以看到此命令的帮助信息(R)Dual-Core CPU T4400 @2.20GHz需求分析要是开发人员通过用户以文档形式或者口述所提出的需求,,将需求,再由需求定义转换。论坛中可以发表个人的帖子来阐述自己的一些观点,在这里首先通过注册使之成为论坛的用户,注册成功后可以发表个人见解。管理员可以对注册的用户进行管理。论坛的目的是为广大的网民提供一个可以自由地发表自己言论的地方。论坛主要具有以下:用户注册功能,用户登录功能,管理员登陆,发表文章功能,查询帖子功能,浏览帖子功能,个人信息修改功能。 1.系统业务开发在用户与开发人员对问题的综合需求,这些需求包括功能性能,环境,用户界面需求。在系统开发好以后,需要进行测试,我们也可以在系统开发过程中进行测试(单元测试),完成后进行统一的系统层面的测试,测试包括对系统的健壮性、稳定性、正确性以及效率方面等,并且要搜集有意义的意见,对系统进行有效的改进。3.用户注册功能本系统有注册功能,所有没有注册过的用户,不能操作论坛的增删改功能,只能对论坛上的内容进行浏览。
4.用户登录功能用户有了进入系统的身份验证号码,还应该设置用户登录的界面 。登陆的用户可以对自己的帖子进行增删改查的操作。设计风格要简捷、美观、易于操作。5.发表主题功能用户的主要目的就是进入系统后,能够发表帖子,所以应该设计发表帖子功能。设计风格要简捷、美观、易于操作。6.查看帖子具体内容功能查看帖子具体内容功能是方便用户点击自己想了解的帖子名称,所以查看功能是必须存在的,对用户提供有选择的观看,只要输入一些关键字就可以了。设计风格要简捷、美观、易于操作。7.浏览帖子功能对于所有注册登录的用户以及未登录的人提供浏览帖子的功能。设计风格要简捷、美观、易于操作。8.个人信息修改模块用户的信息不应该是终身不变的毕业设计论坛,比如简介和昵称等内容,应该可以随自己的愿望来修改自己的信息。设计风格要简捷、美观、易于操作。9.退出功能为了完成用户的安全退出需要提供退出功能,将session销毁,同样需要设计风格简捷、美观、易于操作。2.2系统的性能要求对系统性能的要求包括对数据处理响应时间,系统的灵活性,输入输出精确度,故障处理要求和运行所需求的环境规定等的要求。2.2.1系统时间特性的规定在时间性能各方面的处理时间均不超过10秒,例如:当用户注册登录后马上能看到自己发表的主题和帖子。
注意:有时传送时间由当地的网络决定。2.2.2系统灵活性说明对该网站的灵活性的要求,即判断该系统是否能够灵活的适应需求的变化,主要体现在以下几个方面如:1.本网站可以运行在IE6以上的所有版本上;2.本网站支持能扩大改进,既支持添加新功能模块,一个模块的改变不会影响其他的模块。2.2.3输入输出要求可以对错误的不完整的数据进行校验(JS校验和validition.xml校验),从而保证了数据的一致性与完整性,这样输出就能满足用户的需求。2.2.4故障处理要求如果系统出现问题,我们会在第一时间及时更正,保证用户的使用不受影响。2.2.5运行环境规定1.硬件设备:服务器端客户端(R)Dual-Core CPU T4400 @2.20GHz。2.支持软件:服务器端(R)Dual-Core CPU T4400 @2.20GHz/,客户端WIN7/IE9/Chrome。3.接口:本网站的接口为80,数据通信协议为TCP/IP。论坛中使用的技术有S.S.Hstruts+spring+hibernate),JSP,等。S.S.H。里面有很优秀的设计理念及模式应用。如,strutsMVC框架,要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案而spring属于应用程序框架,struts与hibernate的粘合剂,使其达到完全解耦的状态等JSP的运用主要是知道JSP语法的应用和JSP的几大对象的使用等,还有一些乱码的处理,汉字的处理等。
数据库的操作比较重要。动态网站就是操作数据库的数据,对数据库的数据进行调度,所以需要熟悉使用SQL语句进行添加,查询,修改和删除等操作。3.1系统功能描述本论坛用户分为三种:普通用户、版主和论坛管理员。他们可以操作的功能是不同的,其中,普通用户有:注册新用户、进入论坛、浏览论坛、查看帖子。版主较普通用户来说还可以进行帖子管理,包括删除,修改帖子,发表新贴、查看和修改自己的个人信息等。论坛管理员拥有的权限,可以进行论坛用户管理、帖子管理。3.2系统功能结构图图3-1在线论坛结构图Session中的所有信息,才能保证数据的安全,而下次再进入论坛时必须重新登录。通过上面的分析可知,此系统中的操作是有顺序的,比如:只有先登录后才能进行一些操作,可以通过下面的流程图中能看到。下图为系统的执行过程。图3-2系统流程图3-2看出,用户登录系统之后可以做一些操作,可以根据不同的用户可以执行不同的操作。3.3数据库设计3.3.1数据表需求分析 1.用户表: 用于存放用户的一些信息。2.发表帖子表:用于记录所有用户发表的帖子。3.管理员表:用于存放管理员的信息。8.根据以上的分析,确定本系统中的实体有:用户实体:存放用户的信息;帖子实体:帖子实体和用户存放多对多的联系;图3-3 E-R实体图根据以上的设计,数据的字段设计如下:用户表(user):用于保存用户的注册信息此表共设有7个字段,userId是主键,userName为用户名,userPassword为密码。
表3-1 用户表(clubuser)名称名称字段名称数据类型长度非空(1可空)用户iduserIdInt110用户名userNameNvarchar160用户昵称userNicknameNvarchar200用户密码userPasswordNvarchar120用户邮箱userEmailNvarchar1000用户生日userBirthdaytimestamp0用户个性签名userRemarksmallint2001栏目表(post):用于存放栏目的表,共设有5个字段,postId是主键,userId是用户编号(外键)。 表3-2 栏目表(BBS_Cate)字段名称数据类型长度非空(1可空)ID号postIdint110用户IDuserIdInt110主题名topicvarchar1000作者mattervarchar1000发帖时间postTimetimestamp0第四章 详细设计经过上面的需求分析、设计、分析,进而进入实际的开发也就是论坛的详细设计,各个模块设计如下:4.1系统的主界面模块设计首页:用户进入后会看到的页面,包括导航条(用户注册,用户登录,管理员登陆),界面简单,背景图片给人一种温馨的感觉,这样才能吸引用户的眼球。
图4-1 ID号,也就是注册。注册的时候使用validation.xml进行了验证,还进行了用户名的控制,不允许使用与数据库中相同的用户名。主要是通过查询数据库里的内容看是否和输入的文本框的内容相同,如果相同则提示“用户名已经存在”,还判断了用户名,密码等不允许为空和邮箱是不是合法等(下图只显示不许为空的状态)。图4-2图4-3 图4-4 图4-主题帖子模块主要包括:发表帖子,查看帖子,删除帖子,分页显示。发表帖子:主要是注册过的并且登录进来的用户设计的功能,进入发表新帖的页面添加标题和内容后,点击发表就可以发表帖子了。图4-6 图4-图4- 分页设计界面4.5系统的管理模块系统管理也就是管理员对后台的操作,包括用户管理,论坛管理。用户管理:用户管理主要是管理员对所有已经注册的存在于数据库中的用户进行的管理,都是在用户表完成的操作。设置管理员:在struts.xml文件中有对于管理员身份的判断,通过后才可以进入这个页面删除:就是删除里面的帖子,在删除的时候会有提示,询问用户是否删除。如果点确定则删除帖子,如果点取消则不删除帖子。这个是用脚本控制的,实现技术是直接删除传过去的帖子的ID的操作,删除会在数据库里面删除了该帖子。
图4-图4-一个软件在开发中不可能会没有错误,所以需要用大量的数据进行测试,在测试中发现Bug,改正,才能保证程序的健壮性。下面对系统做了一些测试。表5-1模块名用户管理模块开发人员版本号1.0用例作者设计日期201年6月日测试类型功能测试测试工具无用例ID用例名称测试目的输入描述预期结果实际结果测试数据ser001用户注册保证数据正确性1输入用户名和密码,邮箱。2.提交。1.可以正常的输入信息2.进入界面2. 进入界面,,,@163.comUser 002用户登录保证数据的一致性输入注册过的用户名和密码,和验证码进入到主页面登录成功 ,,ser 003资料修改保证数据的更新1.输入密码和,2.提交修改提示修改成功修改后数据已经被修改,@163.comUser 004修改密码保证数据的安全提示修改成功重新输入登录成功 ,,5.2帖子管理模块测试表5-2管理模块测试开发人员版本号1.0用例作者设计日期2013年6月日功能测试测试工具无用例ID用例名称测试目的输入描述预期结果实际结果测试数据Admi005发表帖子测试数据完整性择标题和内容在主页显示帖子在主页显示发表的帖子Break Down,路人都看穿我对你的依赖就让我迷失在你眼神的海。
。。。Admi 006删除帖子保证数据安全性选择要删除的帖子删除掉选择的数据删除成功Admi 007查看帖子保证数据的一致性点击帖子名称显示帖子标题及内容显示帖子标题及内容Break Down,路人都看穿我对你的依赖就让我迷失在你眼神的海。。。。结 论随着网络技术的发展,,几乎每一个网民都有感兴趣的话题或某种情感、心理的诉求进行交流,这种需引发了的诞生。本人结合具体需要,开发了论坛。本论坛实现了的功能。通过线大家可以交流、讨论问题、发布各类信息(广告,房屋租赁信息等),利用大家的力量解决一些个人难以解决的问题。从查找课题资料开始到系统完成,经历较长一段时间,在这期间,从理论上还是从实践上学到了很多知识,看了很多的JSP和数据库方面的书,书中的一些实例,自己很少做这样系统,只能克服种种困难,并且尽量完善这些功能,在开发过程中常常遇到问题经过不断的调试已经。目前系统已经具备后台管理,用户管理,发表帖子主要功能,可以投入使用,由于本系统界面简捷,使用起来还是非常的。由于本人水平和时间原因,还有个别功能,以后的学习和工作中,将努力使系统。25