软件毕业设计报告

时间:2024.4.20

BBS系统设计报告

   学 生 姓 名                      

   指 导 教 师                     

   专       业                      

   学       院                _     

20##年11月24日


摘  要

BBS论坛系统是采用java语言进行设计实现的,采用Tomcat作为后台服务器,以SQL Server作为数据服务器,使用接口、实现类、实体类、JSP进行逻辑控制,表现层用JSP页面显示,用于在网络上为网民提供一个信息发布、获取的场所。实现了查看、发表、删除帖子功能,论坛帖子版块控制,注册用户可以修改自己的个人信息、增加好友与黑名单,管理员可以对用户、帖子,版块、版块权限和用户组权限进行管理。论文从问题的提出、基本设计思想、数据的流向到具体的设计过程都做出了详细论述。


目  录

摘  要................................................................................................................................ I

1 绪  论......................................................................................................................... 1

1.1 课题研究的目的及意义...................................................................................... 1

1.2 国内外研究动态.................................................................................................. 1

1.3 本文的工作.......................................................................................................... 2

2 系统分析......................................................................................................................... 4

2.1 可行性分析.......................................................................................................... 4

2.1.1 社会可行性................................................................................................. 4

2.1.2 技术可行性................................................................................................. 4

2.1.3 经济可行性................................................................................................. 4

2.2 需求分析.............................................................................................................. 4

2.2.1 用户中心..................................................................................................... 5

2.2.2 主题中心..................................................................................................... 5

2.2.3 管理员功能................................................................................................. 6

2.2.4 统计功能..................................................................................................... 6

2.3 开发工具及相关技术简介.................................................................................. 6

2.3.1 相关工具简介............................................................................................. 6

2.3.2 相关技术概述............................................................................................. 7

2.4 系统的数据流图.................................................................................................. 9

2.5 用例图.................................................................................................................. 9

3 总体设计........................................................................................................................ 11

3.1 功能分析............................................................................................................. 11

3.2 数据库设计........................................................................................................ 12

4 详细设计与实现........................................................................................................... 15

4.1 数据库连接........................................................................................................ 15

4.2 前台显示模块.................................................................................................... 15

4.3 后台管理模块.................................................................................................... 23

5 测试与运行环境........................................................................................................... 29

5.1 系统测试............................................................................................................ 29

5.2 系统调试............................................................................................................ 29

5.3 运行环境............................................................................................................ 29

结  论............................................................................................................................. 30

参考文献............................................................................................................................. 31

致  谢............................................................................................................................. 32

附录 数据表..................................................................................................................... 33


1 绪  论

1.1 课题研究的目的及意义

设计的首要目的是运用已经学习到的java语言和SQL Server数据库知识自主实现一个实用的系统,使得现有知识得到更好的巩固,更加熟练。同时在实现中学习到更多新的知识,能更深入掌握JSP、Java语言,了解软件开发的全过程,为以后的学习与工作打下坚实的基础。

BBS论坛系统是在网上提供交流的手段。它可以用于满足网名的日常信息交流、技术讨论、查看新闻等,利用网络实时、便捷的特点来方便人们的交流、联系和娱乐。

1.2 国内外研究动态

进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端——服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器——服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。

Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划。ARPA计划尝试建设一个网络系统,它可将各种不同厂商的电脑连接起来。随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。到了20世纪80年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地的网络系统。从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。

最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的一个研究小组着手开发一种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。于是由Tim Berners Lee领导的小组开发出了一种主从、分布式的网络服务系统,这就是WWW(World Wide Web),俗称“万维网”。

所谓WWW其实就是连上Web服务器访问资源,取得的内容就是所谓的“主页”(HomePage)。进入的网页通常不会只有一页,而是整个网站的内容。

“网站”是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道。它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。目前,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自己对社会对生活的理解和建议。

随着网络的普及,论坛的内容越来越丰富,论坛也由此深受广大网民的喜爱,因此商业网站对论坛也重视起来,提供与网民交流的平台,同时在线技术支持也在论坛中开展起来。

1.3 本文的工作

BBS论坛系统就是提供给用户一个平台,会员用户可以通过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将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。

结合BBS论坛系统实际需要,本BBS系统采用B/S结构。论文设计开发的系统为通用BBS系统,系统应该具备较大的可伸缩性,应该能适应最基本应用最广泛的Web平台。另外,通用系统应该具备较大的可扩展性,而Java 语言是面向对象的,面向对象编程注重程序的可扩展性,且Java 语言是跨平台执行的,JSP相对其他网页编程语言有更多的优点,所以本系统采用Java+JSP作为编程语言。

2 系统分析

2.1 可行性分析

商业软件是根据客户的根本目的和需要而设计和开发的,可行性是开发的系统具有使用价值和生命力的保证。

2.1.1 社会可行性

当前社会是一个网络化的社会,网络就在人们周围,人们从网络上获取并发布信息,而本系统正是应这一需求而产生,为企业,个人发布,获取有价值的信息提供场所。所以本系统具有社会可行性。

2.1.2 技术可行性

本系统采用java语言,用SQL Server数据库作为后台数据库,安装和使用简单易学,方便操作;前台页面采用JSP动态页面,JSP相比ASP、PHP都有很大的优势;服务器采用Tomcat服务器,它是一个开源软件。开发人员在学习了这些语言或工具之后,有能力开发本系统。

2.1.3 经济可行性

经济可行性是指软件所带来的经济效益与开发设计所需要的投资费用相比较是否适当,软件是否会给使用者带来经济效益。首先随着计算机软件和硬件技术的飞速发展,计算机软、硬件价格不断下降,设计本系统所投入的资金下降。与使用本系统为企业发布、获取信息所节省的价值相比,应用本系统带来的收益较大,经济效益可观,所以在经济上是可行的。

2.2 需求分析

需求分析虽处于软件开发过程的开始阶段,但它对于整个软件开发过程以及软件产品质量是至关重要的。随着软件系统复杂性的提高及规模的扩大,需求分析在软件开发中所处的地位愈加突出[1]。所谓需求,是指用户对目标软件系统在功能、行为、性能设计约束等方面的要求。在需求分析工作中,系统分析人员对用户的需求进行调查和分析,确定现有环境的特征,正确定义目标软件的特征 。因此,需求分析工作是对应用环境及其问题进行理解和分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化。

BBS论坛系统设计实现以下功能:

①用户中心:包括用户注册、用户登录、用户注销、增加好友、删除好友、、修改个人资料等功能。

②主题中心:包括主题分类(论坛版块)、查看主题、查看回复、发表主题、发表回复、对主题或回复进行搜索等功能。

③管理员中心:管理员对论坛进行一些基本的维护,包括对帖子的删除、置顶、设为精华帖,对用户的删除、授权,对版块的权限管理,对用户组及用户组的权限的管理等[2]

④统计功能:对论坛的相关参数进行统计。

2.2.1 用户中心

当用户进入网站首页时,会有一个登录窗口,已经注册的会员用户可以在这个窗口中登录。没有登录的用户只能查看主题,不能发表主题或评论。登录之后,用户就可以发表主题或回复;查看或修改自己个人信息,包括修改用户头像,可以选择自己喜欢的图片作为自己的头像;可以给好友发送短信息,查看或删除自己收到的信息;用户可以在好友里设置自己的关系网,让用户与自己的好友交流更加方便,也可在让用户不接收不愿意见到的人的信息。

没有注册的用户可以在登录窗口中点击注册超链接进入新用户注册页面,输入用户名、密码、密码提示问题、提示问题答案,即可注册成为网站的会员。密码提示问题是为找密码设置的,当用户忘记密码或密码丢失后可以通过输入提示问题答案来找回密码,如果用户回答正确,将让用户重新设置密码。

2.2.2 主题中心

系统有版块,主题和回复,其中版块是对主题的分类,回复是在主题下发表的,是用户对主题的评论。当用户进入首页时会显示论坛的所有版块及每个版块下的主题数,帖子总数,最后发表主题的用户、时间。进入版块之后显示该版块下的主题及该主题下的回复数,点击数,最后发表评论的用户、时间。。点击主题名进入主题页面,该页面有主题内容,发表该主题的用户的用户名、积分、用户组、注册时间,该主题下的回复及发表回复的用户的个人信息。

已登录用户可以在版块下发表主题,在主题下发表回复,还可以按关键字对主题或回复进行搜索,并支持模糊查询。匿名用户只能查看主题内容,对主题或回复进行搜索,但不能发表主题,不能发表回复。

2.2.3 管理员功能

管理员作为一个特殊的用户,除了拥有普通用户拥有的功能外,还可以修改用户权限,管理用户组,管理版面,设置版主,控制用户组权限。版主作为权限最少的管理者只能对自己所管理的版面的主题进行删除、置顶,设置精华贴,屏蔽用户的回复,编辑版面说明等。

2.2.4 统计功能

显示论坛当前注册总人数、当前帖子总数、论坛点击总数、当前在线人数,会员人数以及游客人数。

用户表现积分排行,调动用户积极性。用户每次上线、发表主题或回复都会得到相应的积分,并以此来体现用户的活跃程度。

系统会对主题按点击数进行排序,对版面按主题数进行排序,帖子点击统计,方便了解热点话题。本日版面排行榜,本日作者排行榜。

2.3 开发工具及相关技术简介

本系统采用的工具有JDK 1.5、Tomcat 6.0、MyEclipse 8.5、SQL Server2005,使用的技术有Java、JSP、JavaScript、JDBC等。

2.3.1 相关工具简介

(1)     JDK 1.6.0

JDK是Sun 公司Java应用程序和组件的开发环境,是编译和测试工具,也是提供java程序的Java虚拟机平台,是调试和运行JSP所不可缺少的工具。本系统采用JDK1.6.0版本[3]

(2)     Tomcat 6.0

Tomcat是开源的servlet和JSP容器(Sun官方推荐容器),它是Jakarta项目中一个重要的组成,由Apache、Sun和其他一些公司及个人开发。Tomcat内部实现了Servlet和JSP引擎,而且扩展了一些应用服务器的功能,例如JNDI、数据库连接池、用户事务处理等。目Tomcat被广泛地应用于中小规模的Java web应用中[4]

(3)     MyEclipse 8.5

MyEclipse是在Eclipse集成开发环境中提供Web应用程序开发的插件,在目前软件开发的Java领域中,MyEclipse是一个使用非常广泛的工具。

MyEclipse是Eclipse软件的一个插件,Eclipse软件是免费的,但MyEclipse不是一个完全免费的产品,需要购买。

(4)     SQL Server2005

SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应SQL Server安装界面用。

SQL Server2005有着高可用性、安全性增强、可伸缩性、易用性、可管理性、及对大型SQL Server配置的支持的显著特性,利于开发人员对数据的开发和维护。

2.3.2 相关技术概述

(1)   Java语言概述

Java编程语言是一种通用、并发、基于类且面向对象的语言。Java编程语言与C和C++相关,但是在组织方式上有差别,Java具有C和C++遗漏的许多优点,同时兼有其他语言包括的一些思想。它旨在成为一种生产语言,而不是一种研究语言,并且正是如此[7]

(2)   JSP技术概述

JSP (Java Server Pages)是由Sun 公司倡导,许多公司参与,共同建立人一种动态网页技术标准,JSP技术是在Servlet技术基础上发展起来的。它正在飞速发展中,现在已经成为Java服务器编程的重要组成部分。

(3)   JavaScript技术概述

JavaScript是一种基于对象(Object)和事件驱动(Event Driver)并具有安全性能的脚本语言,它所能提供的功能非常强大。

JavaScript是一种简洁的面向对象的描述语言,是专门用来开发Internet客户端和服务器端的应用程序,它可以被轻易的嵌入到HTML文件中,使用JavaScript浏览器可以回应使用者的需求事件而不用通过网络来回传资料,这样,使用者的资料就可以直接被客户端应用程序所处理,它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择[9]

2.4 系统的数据流图

数据流图即DFD(Data Flow Diagram)图。是用于分析系统数据流程的图形,意在让用户理解系统的功能、输入、输出和数据存储等。BBS系统的第一层数据流图如图2-1所示,描述系统由哪几部分组成,各部分之间有什么联系[13]

2.5 用例图

用例是系统、子系统或类和外部的参与者(actor)交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列。

用例是代表系统中各个项目相关人员之间就系统的行为所达成的契约。在UML中,用例用一个椭圆表示,用例名往往用动宾结构或主谓结构命名[14]。参与者是指用户在系统中的扮演的角色,其图形化表示是一个小人。

BBS系统的用例有用户注册、登录、注销、浏览主题、发表主题、发表回复;管理员管理用户、管理主题。用例图如图2-2所示

3 总体设计

3.1 功能分析

BBS系统分为前台和后台两个模块。系统的功能模块图如图3-1所示。

前台模块的使用对象包括了所有用户(管理员、用户、游客),提供的功能包括注册帐号、用户登录、用户注销、浏览文章、发表新主题、回复主题、修改个人信息。如图3-2所示。

后台模块的使用对象为管理人员(版主、管理员、超级管理员),提供的功能包括管理用户、管理版块、管理主题、管理用户组、功能权限管理、版块权限管理。后台功能模块如图3-3所示。

3.2 数据库设计

根据前面的需求描述,本系统中可以抽象出来的数据模型有:

1.后台管理员表(TBL_Admin)

2.板块表(TBL_Board)

3.用户组表(TBL_Grade)

4.主题表(TBL_Topic)

5.积分表(TBL_Score)

6.回帖表(TBL_Reply)

7.用户表(TBL_User)

 

4 详细设计与实现

4.1 数据库连接

系统采用JDBC架构,数据库采用SQLServer,其连接数据库的关键代码:

1static{

       try {

           Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

       } catch (ClassNotFoundException e) {

           e.printStackTrace();

       }

}

.2.public ResultSet query(String sql,String[] args){

       try {

           conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=bbs","sa","123456");

           pstmt = conn.prepareStatement(sql);

           if(null != args)

              for(int i=0;i<args.length;i++)

                  pstmt.setString(i+1, args[i]);

           return pstmt.executeQuery();

       } catch (SQLException e) {

           e.printStackTrace();

       }

       returnnull;

}

3.publicvoid closed(ResultSet rs){

       if(rs != null){

           try {

              rs.close();

           } catch (SQLException e) {

              e.printStackTrace();

           }

       }

       if(pstmt != null){

           try {

              pstmt.close();

           } catch (SQLException e) {

              e.printStackTrace();

           }

       }

       if(conn != null){

           try {

              if(!conn.isClosed())

              conn.close();

           } catch (SQLException e) {

              e.printStackTrace();

           }

       }

}

使用注入Dao的形式进行数据库操作,在Dao中实现对数据表的增加、删除、查询、修改操作。

4.2 前台显示模块

前台显示模块包括用户的一些功能,具体的可分为用户注册、用户登录、用户注销、修改个人信息、查看版面、查看主题、查看回复、发表主题和发表回复等功能。

由于主题是在版块下存在的,所以在版块下的任何地方都可以发表主题,而回复只能是针对主题进行回复,所以必须在主题下才能发表回复,也就是在主题页面下才能点击发表回复。

现将部分功能说明如下:

(1)              用户注册:新用户在enrol.jsp页面中输入用户名,密码,密码提示问题、提示问题答案,点击提交按钮,数据提交到enrolinfo.jsp中进行处理,在enrolinfo.jsp中,如果用户名已经有人使用则返回注册页面,否则提示用户注册成功,并跳转到登录后的页面index_logined.jsp。enrolinfo.jsp的代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<%@page import="entity.User"%>

<%@page import="dao.UserDAO"%>

<%@page import="dao.impl.UserDAOImpl"%>

<%

  //post 中文乱码处理

  request.setCharacterEncoding("GBK");

  User user=new User();

  String UId = request.getParameter("hui");

  String UPass = request.getParameter("password");

  String UNickName = request.getParameter("Nike");

  String Head = request.getParameter("SelectAvatar");

  String Gender = request.getParameter("xing");

  String uname = request.getParameter("zname");

  String UCard = request.getParameter("card");

  String question = request.getParameter("select");

  String UKey = request.getParameter("da");

  user.setUId(UId);

  user.setUPass(UPass);

  user.setUNickName(UNickName);

  user.setHead(Head);

  user.setGender(Gender);

  user.setUName(uname);

  user.setUCard(UCard);

  user.setQuestion(question);

  user.setUKey(UKey);

 

  UserDAO dao = new UserDAOImpl();

  boolean bl = dao.addUser(user);

  if(bl)

      {

      response.sendRedirect("/QNbbs/HTML/success.jsp");

      }else

      {

      response.sendRedirect("/QNbbs/HTML/shibai.jsp");

  %>

(2)              用户登录:用户在有帐号的前提下,可以在登录页面login.jsp或主页index.jsp中输入用户名和密码点击登录,系统将用户名和密码提交到doLogin.jsp中的处理,将用户提交的用户名和密码再转交给后台的Dao进行查询,如果有这样的一条记录存在则登录成功,将用户的个人信息保存在浏览器端的Session中,否则返回登录失败页面,并提示用户名或密码错误。

doLogin.jsp的代码如下:

<%@ page language="java" pageEncoding="GBK"%>

<%@page import="entity.User"%>

<%@page import="dao.UserDAO"%>

<%@page import="dao.impl.UserDAOImpl"%>

<%

    request.setCharacterEncoding("GBK");

    String name = request.getParameter("name");

    String password = request.getParameter("password");

    UserDAO dao = new UserDAOImpl();

    boolean bl = dao.qeury(name,password);

    if (bl){

       User user=dao.sendname(name,password);

       String uname=user.getUNickName();

       int uid=user.getID();

       dao.updateUser(user);

       response.sendRedirect("../HTML/index_logined.jsp");

       session.setAttribute("name",uname);

       session.setAttribute("uid",uid+"");

       session.setAttribute("uname",user.getUNickName());

    }else{

       response.sendRedirect("../HTML/login_shibai.jsp");

    }

%>

(3)              用户注销:已登录用户在退出网站时注销登录状态,系统将请求交给login_off.jsp处理,在login_off.jsp中修改用户最后离线时间,将修改保存到数据库中,并将浏览器端的Session的user属性移除,系统返回主页。用户同时失去登录用户的权限,以游客身份访问网站,只能浏览主题,不能发表主题,也不能发表回复。

login_off.jsp的代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>

<%@page import="dao.impl.UserDAOImpl"%>

<%@page import="entity.User"%>

<%

    String id=session.getAttribute("uid").toString();

    int ID = 0;

    if(session.getAttribute("uid")!=null)

       ID=Integer.parseInt(id);

    UserDAOImpl userdao=new UserDAOImpl();

    User user=userdao.finduName(ID);

    boolean bl =userdao.updateUserexit(user);

    if(bl){

       session.removeAttribute("name");

       session.removeAttribute("uname");

       session.removeAttribute("uid");

       response.sendRedirect("/QNbbs/HTML/index.jsp");

    }else

       response.sendRedirect("/QNbbs/HTML/index.jsp");

          

%>

(4)              查看版面:首页显示BBS的版块及主要信息,点击版块名进入版块下会进入toppic.jsp板块页面页面,点击主题名可以进入主题页面。

toppic.jsp的部分代码如下:

<%

              String boardId = request.getParameter("boardId");

              int boardid = 5;

              if (request.getParameter("boardId") != null)

                  boardid = Integer.parseInt(boardId);

              TopicDAOImpl topic = new TopicDAOImpl();

              String title = topic.findTopicTitle(boardid);

              List list_topic = topic.findTopicByBoardId("where boardId="

                     + boardid);

              int currPage = 1;

              try {

currPage = Integer.parseInt(request.getParameter("currPage"));

              } catch (Exception ex) {

              }

              TopicDAOImpl dao = new TopicDAOImpl();

              Page pg = new Page();

              pg.setCurrPage(currPage);

              pg.setPageSize(15);

              pg.setTableName("tbl_topic");

              pg.setWhere("where boardid=" + boardid);

              dao.findByPage(pg);

              List list = pg.getPageData();

%>

<%

       if (list_topic != null) {

              for (int i = 0; i < list.size(); i++) {

                  Topic topic1 = (Topic) list.get(i);

                  UserDAOImpl udao = new UserDAOImpl();

                  User user = udao.finduName(topic1.getUid());

                  ReplyDAOImpl replydao = new ReplyDAOImpl();

                  int num = replydao.findreplynum(topic1.getTopicId());

%>

(5)              查看主题:当用户在主页上点击版块名时,会产生一个动作,向服务器产生一个请求,服务器将程序交给replydf.jsp处理,在replydf.jsp中取出模块下的所有主题及最后发表回复的作者的信息将其显示在主题页面。

<%

    TopicDAOImpl tdaoi1 = new TopicDAOImpl();

    Topic t1 = tdaoi1.findTopicBytopicid(id);                session.setAttribute("topicid",t1.getTopicId()+"");

    int topicId=t1.getTopicId();

    int currPage = 1;

    try{

       currPage = Integer.parseInt(request.getParameter("currPage"));

    }catch(Exception ex){}

       ReplyDAOImpl dao = new ReplyDAOImpl();

       Page pg = new Page();

       pg.setCurrPage(currPage);

       pg.setPageSize(5);

       pg.setTableName("tbl_reply");

       pg.setWhere("where topicid="+topicId);

       dao.findByPage(pg);

       List list = pg.getPageData();

%>

4.3 后台管理模块

管理员可以删除用户、增加版块、删除版块、查询版块、删除主题、修改主题属性、新增版块权限、查询版块权限、删除版块权限。管理员不能删除其他的管理员,管理员只有超级管理员才能够设置和删除。超级管理员具有网站的一切功能。

现将部分功能介绍如下:

管理员作为特殊的用户,通过/HTHTML/login.jsp管理员登陆页面进行登录到后台主页,在管理页面有版块管理、主题管理、回复管理、用户管理。

5 测试与运行环境

5.1 系统测试

软件测试的目的在于在软件投入运行之前,尽可能多地发现软件中的错误,软件测试是对软件规格说明、设计和编码的最后复审,是软件质量的保证的关键步骤[15]

系统测试一般分为模块测试、组装测试、确认测试。确认测试是软件需求说明书上的功能进行逐项检验,模块测试是查找各模块在功能结构上存在的问题。本系统采用模块测试,对系统的每个功能进行测试。

5.2 系统调试

通过测试后,发现用户注册的功能不能对输入的信息进行校验,JavaScript对输入的数据没有进行校验,通过查找源代码,发现是函数没有写对。

另外还发现了其他一些错误,经过使用打印语句输出数据处理结果的方法,也都找出了错误所在。

5.3 运行环境

(1)     软件环境

操作系统是Windows 20## Professional/Server,WindowsXP Professional、Windows.NET Server或以上版本;数据库使用SQL Server 2005或以上版本,JDK1.5或以上版本,Tomcat5.0或以上版本。IE版本为IE6.0

(2)     硬件环境

内存至少为128MHZ;CPU要求为Intel Pentium 800MHZ或以上更高频率的CPU。

(3)     安装路径

安装好SQLServer2005数据库后,将SQLServer2005数据库备份文件导入SQLServer2005中,安装JDK后安装Tomcat,将工程文件QNbbs包放在Tomcat的根目录下的webapp文件夹下,打开Tomcat服务器,在浏览器窗口输入http://localhost:8080/QNbbs进入系统主页面。

结  论

通过开发一个基本的基于Web的BBS系统,可扩展性很大,科学的开发过程也极有利于系统的扩充与扩展。系统现在采用的是SQL Server 2005数据库。系统的分析与定义都结合了现在流行的面向对象方法以及传统的MVC结构分析与设计方法。

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

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

由于时间关系,BBS论坛还有好友与黑名单管理、用户组权限等几个功能没有实现,但其实现思路已经有了,像好友与黑名单管理可以在好友关系表中用不同记号标记。用户组权限只要实现它的增加、删除、查找,修改。

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


参考文献

1邓良松,刘海岩,陆丽娜.软件工程[M].西安:电子科技大学出版社.2004,27

2赵光.JSP+Oracle数据库组建动态网站经典实例[M].北京:电子工业出版社.2005,80

3程志艳,张亮,马建红.JSP实用简明教程[M].北京:清华大学出版社.2005,70

4叶达峰.Eclipse编程技术与实例[M].北京:人民邮电出版社.2006,134

5张桂元,贾燕枫,姜波.征服Ajax Web 2.0快速入门与项目实践(Java)[M].北京:人民邮电出版社.2006,21

6王晓悦.精通Java-JDK、数据库系统开发、web开发[M].北京:人民邮电出版社.2007,388

7James Gosling, Bill Joy,Guy Steele et al.The Java Language Specifictation[M]. Addison-Wesley .2006,1

8Y.Daniel Liang.Introduction to Java programming comprehensive version[M].Upper Saddle River: N.J. Prentice Hall.2006,135

9葛蒙,程显峰.JavaScript实践与提高[M] .北京:中国电力出版社.2002,1

10曾春平,王超,张鹏.XML编程从入门到精通[M] .北京:北京希望电子出版社.2002,1

11Ted Husted.Struts in Action.United States of America[M].Manning Publication Co.2003,14~15

12王占全,苏玲.Eclipse全程指南[M] .北京:电子工业出版社.2006,297~298

13刘乃丽.精通JavaEE项目案例[M].北京:人民邮电出版社.2008,239~241

14王少锋.面向对象技术UML教程[M].北京:清华大学出版社.2004 21~36

15阎菲.实用软件工程教程[M].北京:中国水利水电出版社.2006,150


致  谢

在本系统从初始设计到最终完成,经历了很长一段时间。在此之间,首先要感谢的是×××老师。在整个系统设计过程中,他在繁忙的工作中抽出时间,从立题到需求分析、总体设计、详细设计、论文的编写等各个方面都给了我耐心细致的指导,对我的帮助很大;其次要感谢×××老师,之前,我没有实践过如此全面的全新设计流程,周凯老师的富有专业性和建设性的指导,使我很快进入课题,节省了许多宝贵的时间。我对老师崇高敬业的精神,认真负责的工作态度表示最真挚的敬意。

同时,感谢机房老师为我们提供的计算机等各种设施,让我们能够圆满的完成毕业设计。

最后,要感谢我的同学,在我遇到困难的时候,是他们抽出时间帮我解决的。

更多相关推荐:
软件工程毕业设计开题报告范文

淮海工学院毕业设计开题报告学生姓名朱兵学号011122152专业计算机应用与维护设计题目基于WEB的销售管理系统ASP开发指导教师樊宁20xx年4月16日1开题报告填写要求1开题报告作为毕业设计论文答辩委员会对...

软件工程毕业设计开题报告

软件工程毕业设计开题报告开题报告填写要求1.开题报告作为毕业设计(论文)答辩委员会对学生答辩资格审查的依据材料之一。此报告应在指导教师指导下,由学生在毕业设计(论文)工作前期内完成,经指导教师签署意见及教研室审…

软件专业毕业论文及开题报告写作技巧

一软件专业毕业论文的开题报告写作本科学生在毕业之前必须做毕业论文其目的是通过毕业论文让学生独立开发一个具体的计算机应用项目系统地进行分析总结和运用学过的书本知识以巩固本科阶段所学的专业理论知识并给予一个理论联系...

学生信息管理系统_毕业设计论文_开题报告

毕业论文设计开题报告

软件工程毕业设计(论文)开题报告(模板)

东北大学东软信息学院本科生毕业设计论文开题报告格式与要求一开题报告必须采用计算机输入打印幅面A4于左侧装订成册二开题报告的内容应包括1选题的背景目的和意义2毕业设计论文应用的原理和理论依据3毕业设计论文方案论证...

通讯录管理系统_毕业设计论文_开题报告

1毕业设计论文开题报告2345678毕业设计论文开题报告9毕业设计论文开题报告10

酒店管理系统_毕业设计论文_开题报告

毕业论文设计开题报告

毕业设计开题报告范文

浙江师范大学本科毕业设计论文开题报告1本科毕业设计论文开题报告2本科毕业设计论文开题报告3本科毕业设计论文开题报告4本科毕业设计论文开题报告5本科毕业设计论文开题报告6本科毕业设计论文开题报告7本科毕业设计论文...

毕业设计开题报告范例

南京工程学院毕业设计开题报告课题名称学生姓名指导教师所在院系部专业名称MK2110数控磨床动力学模拟与床身结构优化设计楷体三号加粗王亮学号20xx20xx1赵丽讲师李艳讲师机械工程学院机械设计制造及其自动化机械...

软件工程毕业设计开题报告范文

淮海工学院毕业设计开题报告学生姓名学号专业计算机应用与维护设计题目指导教师20xx年4月16日1开题报告填写要求1开题报告作为毕业设计论文答辩委员会对学生答辩资格审查的依据材料之一此报告应在指导教师指导下由学生...

软件工程毕业设计开题报告范文

计算机技术与软件工程学院毕业设计开题报告学生姓名郭正学号120xx088专业计算机网络设计题目第三方支付系统的设计与实现指导教师万彪张勇20xx年12月16日1开题报告填写要求1开题报告作为毕业设计论文答辩委员...

毕业设计开题报告

计算机科学与技术学院毕业设计论文开题报告设计论文题目基于嵌入式的网络视频监控系统学生姓名学号系部计算机科学与技术学院专业指导教师20xx年3月27日开题报告填写要求1开题报告作为毕业设计论文答辩委员会对学生答辩...

软件毕业设计开题报告(44篇)