I摘要当今社会正处在网络时代,信息化大潮席卷全球,网络正以前所未有的速度在我国普及开来。网站以其独特的优势在信息化的过程中占有重要的一席。为了方便信息的交流,在使用JAVA开发了这个快捷、界面友好的交流系统,实现了一个功能相对齐全的论坛系统,网友可以自由地提出问题以及帮助他人解决问题,或者交流经验。论坛用当今主流的网站开发技术jsp语言进行开发。论坛将采用B/S体系结构,人们通过浏览器就可以访问教学网站的主页,保证的服务器的安全。数据库采用免费,小巧,易用的mysql数据库。该论坛功能较齐全,在这里可以自由地发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识。该论坛还有一些特殊的功能,如在线人员显示、强大的搜索功能。本网站严格按照软件项目开发的流程进行开发,对于网站开发的可行性分析、需求分析、概要设计、详细设计以及对网站的测试与维护都有详细的论述和实现过程。本套论坛的优点在于它具有强大的可扩展性和可维护性,非常适合网民创建自己的中小型BBS论坛!关键词:BBS,JAVA,MySQL,JSPII目录第一章引言....................................................1第二章需求分析.................................................2第三章总体设计.................................................4第四章详细设计与实现............................................9第五章系统测试................................................12结论.........................................................13参考文献.......................................................14大连交通大学软件实践1第一章引言进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。随着Internet技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨间题、交换观点的场所,其中,网上论坛扮演了极其重要的角色,随着时间的推移,论坛站点中积存了丰富的信息资源,不但有各类技术资料和新闻文档,还包含着用户的判断和评论,论坛站点己成为Web信息库的重要组成部分,自网上论坛诞生20多年以来,随着Web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,几乎充实着生活工作的每一个方面,无论是商界、政界,还是娱乐界,都有各种论坛。互联网正在融入我们的生活,网络提供给我们的不只是一个获取信息的来源,而且还是一个可以相互交流的空间,网上论坛正是一种供人们进行交流的网络空间,影响和改变着我们的生活。大连交通大学软件实践2第二章需求分析作为一个BBS论坛,它应该具有BBS所有的一些基本功能,包括:用户登陆功能,用户取回密码功能,用户浏览帖子的功能以及用户发表、回复、修改和删除帖子的功能等。接下来,我将详细阐述一下这些功能。(一)、用户登录和注册功能进入登录页面后,对于第一次登陆的用户来说,首先需要注册,单击“新用户注册”按钮即可进入注册界面,注册完成后返回登录界面。输入用户名和密码,点击“登录”按钮,系统即将用户名和密码发送到网络服务器上,与保存在服务器数据库中的信息进行核对。若核对正确,则进入帖子浏览的界面,若不正确,则重新返回登录界面。(二)、用户找回密码功能在有些时候,我们可能会忘记登录密码,这时就用到了密码找回功能,通过正确的回答当初注册时的一些信息即可取回密码。(三)、用户帖子的浏览当用户登录成功后便进入该页面,在该页面可以浏览他人已经发表的主题帖子,1、帖子的总览在主题页面中主要有两部分组成,一是用户的个人信息,再就是他人已经发表的主题帖子,每个帖子都包含了一些简单信息:主题、作者和时间。鼠标单击主题便进入了下一页面——该帖的详细内容页面。2、查看特定帖的详细信息详细内容页面主要包含了该帖的详细内容和他人对此帖的回复,点击“我要回复”便可回复此贴。(四)、用户帖子的发布/修改/删除/回复功能1、帖子的发布登陆成功进入主题页面后,点击“发表新的主题文章”按钮后,便可进入发表帖子的界面。在该页面中填写完信息,点击“发送新的主题”,点击“我要回复”按钮便可对该贴进行回复,如要想对其他回复此贴的人进行回复,可以点击回复人后面的“回复XX楼”按钮对其进行回复。大连交通大学软件实践32、帖子的删除在主题帖子页面中,每幅帖子的最左面都有一个删除按钮,点击此按钮便可删除你所发表的帖子。每个用户(除管理员外)只可删除自己的帖子。(五)、管理员对帖子的查看/发表/删除功能1、管理员查看或发表帖子2、管理员删除帖子综上,得到的系统用例图如图2.1所示。图2.1系统用例图大连交通大学软件实践4第三章总体设计3.1系统框架图3.1功能结构图BBS系统角色管理管理员会员用户前台显示后台管理首页管理个人信息管理个人帖子管理会员信息管理会员帖子管理修改密码发布系统消息修改个人信息修改密码发布帖子修改帖子删除帖子查看帖子查看会员信息删除会员信息大连交通大学软件实践5发帖回帖流程图是一种表明用户发帖回帖过程的流程图,它可以帮助分析人员找出流程中的不合理回路。下面图3.2就用户发帖回帖流程图。:注册用户登陆系统论坛主页发帖模块输入用户名和密码显示论坛分类,查看论坛详细文章发表新文章;回复新帖继续浏览文章图3.2用户发帖回帖流程图3.2数据库设计数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库的设计通常是以一个已经存在的数据库管理系统为基础的。通过对业务流程的分析,得到了系统的实体,以及实体之间关系,根据这些实体与关系之间的联系,得到了系统的E-R图,如图3.3所示。大连交通大学软件实践6图3.3通用BBS论坛ER图E-R模型用实体间联系反映现实世界事物间的内在联系,而数据表的建立是应用程序开发过程中的非常重要的一个环节,必须清楚每一模块要操纵的数据是那些,以及数据间的相互关系,然后建立数据表。本系统数据库使用SQLServer2000,包含以下4个表:用户表(student)、回复表(reply)、讨论表(discuss)。下面分别详细介绍以上各表:表3.1用户表(student)大连交通大学软件实践7表3.2回复表(reply)字段名称数据类型长度是否为空主外键说明idint11否主键编码usernamevarchar20否否用户姓名passwordvarchar20否否密码sexvarchar8否否性别agevarchar4否否年龄birthvarchar20否否生日telephonevarchar12否否电话emailvarchar40否否电邮字段名称数据类型长度是否为空主外键说明idint4否主键编码namevarchar50否否姓名contentvarchar50否否内容timevarchar50否否时间replyvarchar50否否回复大连交通大学软件实践8表3.3讨论表(discuss)字段名称数据类型长度是否为空主外键说明namevarchar50否主键姓名emailvarchar40否否电邮idint4否外键编码subjectvarchar60否否题目usernamevarchar20否否用户姓名contentvarchar655535否否内容timevarchar40否否时间大连交通大学软件实践9第四章详细设计与实现详细设计阶段就是把解决方法具体化,设计出详细规格说明,包含必要的细节,程序员可以根据它们写出实际的程序代码,详细设计也称模块设计,在这个阶段将详细地设计每个模块,具体的实现功能。在详细设计过程中,具体的功能实现过程可以按照软件工程中的方法描述中的交互模型具体描述,力求完全符合客户的真实需求。该系统的设计基于以下几个原则:1.标准化;2.模块化;3.先进性;4.安全性;5.交互性。4.1登录页面%Stringusername=request.getParameter(username);//参数传递,用户名Stringpassword=request.getParameter(password);//参数传递,密码PreparedStatementpstmt=null;//数据库表达式sql=select*fromStudentwhereusername=?andpassword=?;//SQL语句pstmt=conn.prepareStatement(sql);pstmt.setString(1,username);大连交通大学软件实践10pstmt.setString(2,password);rs=pstmt.executeQuery();if(rs.next()){//request.getSession(true);//创建session//保存登录用户到session中session.putValue(username,username);session.putValue(password,password);session.putValue(userIP,request.getRemoteAddr());session.putValue(enter,true);//登录成功主题页面response.sendRedirect(MainForm.jsp);}elseresponse.sendRedirect(login.html);//登陆失败转向登录页面%4.2注册新会员%Stringusername=request.getParameter(username);Stringpassword=request.getParameter(password);Stringsex=request.getParameter(sex);大连交通大学软件实践11Stringage=request.getParameter(age);Stringyear=request.getParameter(year);Stringmonth=request.getParameter(month);Stringday=request.getParameter(day);Stringtelephone=request.getParameter(telephone);Stringemail=request.getParameter(email);Stringmsg=null;username=convert(username);sql=select*fromstudentwhereusername='+username+';rs=stm.executeQuery(sql);//查询数据库if(!rs.next()