毕业论文-基于Structs的在线论坛_第1页
毕业论文-基于Structs的在线论坛_第2页
毕业论文-基于Structs的在线论坛_第3页
毕业论文-基于Structs的在线论坛_第4页
毕业论文-基于Structs的在线论坛_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 太原理工大学毕业设计(论文)用纸太原理工大学毕业设计(论文)任务书第1页毕业设计(论文)题目:基于Struts的在线论坛毕业设计(论文)要求及原始数据(资料):1了解现今在线论坛的架构体系与发展情况;2根据情况分析制定出系统的可行性分析,需求分析;3根据需求分析做出详细设计步骤;4深入分析在线论坛所需要的技术与编程语言;5完成代码并且测试,确保论坛可以正常运行;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。第2页毕业设计(论文)主要内容: 1综述现今基于struts的在线论坛的发展状况和基本功能;论坛,从20世纪70年代诞生开始到今天,在不断地发展和演变,有些功

2、能在发展过程中逐渐分离出去,随着WEB服务的广泛应用,使得论坛逐渐注重其信息交流的功能,也就是现在大家所理解的BBS。 2介绍在线论坛所需要的开发环境,与开发工具 (1) MyEclipse 10.0;(2) Tomcat 6.0;(3) Sql Server 2005 3介绍在线论坛所实现的功能;。实现前台显示和后台管理两部分工作。普通用户需要通过注册和登录进入该论坛系统才可以浏览和回复帖子以及使用其他附属功能。 4熟悉在线论坛开发的相关流程、相关技术的思想 5. 深入分析在线论坛关键技术与编写语言的设计流程; 6熟练掌握基于Structs的项目的编写;学生应交出的设计文件(论文): 1内容

3、完整、层次清晰、叙述流畅、排版规范的毕业设计论文; 2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 第3页主要参考文献(资料): HYPERLINK /search?channel=search&sw=%D5%C5%C1%E1%C1%E1&Field=2 t _blank 张玲玲. 深入体验Java Web项目开发M.清华大学出版社, 2011.07. HYPERLINK /search?channel=search&sw=%C1%F5%B5%C2%C9%BD&Field=2 t _blank 刘德山, HYPERLINK /search?channel=search&

4、sw=%BD%F0%B0%D9%B6%AB&Field=2 t _blank 金百东, HYPERLINK /search?channel=search&sw=%D5%C5%BD%A8%BB%AA&Field=2 t _blank 张建华. Java程序设计M. 北京市:科学出版社, 2012孙一林,彭波.Java数据库编程实例M. 清华大学出版社,2002年8月 HYPERLINK /search?channel=search&sw=%CE%E2%C6%E4%C7%EC&Field=2 t _blank 吴其庆. JSP动态网站设计实例教程. 北京市:冶金工业出版社, 2006. HYPER

5、LINK /search?channel=search&sw=%BC%D6%CB%D8%C1%E1&Field=2 t _blank 贾素玲, HYPERLINK /search?channel=search&sw=%CD%F5%C7%BF&Field=2 t _blank 王强主编 HYPERLINK /search?channel=search&sw=%A3%BB%C2%DE%B2%FD&Field=2 t _blank ;罗昌, HYPERLINK /search?channel=search&sw=%BD%AA%BA%C6&Field=2 t _blank 姜浩, HYPERLINK

6、/search?channel=search&sw=%D0%ED%E7%E6&Field=2 t _blank 许珂编著. HTML网页设计. 北京市:清华大学出版社, 2007. HYPERLINK /search?channel=search&sw=%D5%C5%BE%FC&Field=2 t _blank 张军编著. JSP网络应用开发例学与实践. 北京市:清华大学出版社, 2006.04. HYPERLINK /search?channel=search&sw=%CE%E2%D4%F3%BF%A1&Field=2 t _blank 吴泽俊主编. 电子商务实现技术. 北京市:清华大学出版

7、社, 2012.01. HYPERLINK /search?channel=search&sw=%C2%BD%D6%DB&Field=2 t _blank 陆舟著. Struts2技术内幕 深入解析Struts架构设计与实现原理. 北京市:机械工业出版社, 2012.01. Kurniawan, Budi. Servlet and JSP. B;Independent Publishers Group Distributor.2012Budi Kurniawan. Java for the Web with Servlets, JSP, and EJB. New Riders Publishi

8、ng. 2009.Roughley, Ian. Practical Apache Struts2 Web 2.0 projects. Phoenix Lieb press.2009.专业班级软件1008班学生要求设计(论文)工作起止日期2014年3月17日2014年6月27日指导教师签字日期教研室主任审查签字日期系主任批准签字日期 概述随着当今社会信息化脚步的加快,人与人之间传递信息的方式也开始变得五花八门起来。由于书信往往受制于距离而无法进行实时的信息交换,又顾虑在使用电子通讯的过程中所产生的资费和开销,所以,人们便不再拘泥于传统的形式上的交流,一种更便捷,更经济,更快速的方式“网络通信”开

9、始逐渐地被大众所接受。从最开始单一的网页聊天室,到后来的MSN和OICQ等即时通讯软件再到今天的个人空间,博客和微博等载体,网络已经不知不觉地成为了人们彼此沟通感情,交流信息的最主要途径。说道“网络通信”就不得不提到“论坛”这个有着较长生命周期的信息交流平台。BBS论坛雏形的出现最早可以追溯到1991年底,起初的论坛之所以被命名为“Bulletin Board System”(电子布告栏系统)是因为它只能对外发布公告,无法进行交互使用。然而近些年以来,由于网络技术的发展,论坛的各项功能在不同程度上得到了丰富的扩充。现在的论坛几乎涵盖了人们生活的各个方面,每个人都可以很容易地找到自己感兴趣的专题

10、性论坛,各类综合性门户网站也都青睐于开设专属论坛,以促进与网友之间的交流,使网站的内容变得更加丰富。本论坛系统就致力于开创一个综合性的信息资源交流社区。不但具备其他论坛普遍拥有的诸如,注册、登陆、发帖、回复等各项基本功能,还把资源资讯划分了多个分类。使得用户可以计入感兴趣的分区进行浏览交互,这使得整个论坛能够以较高的质量满足各个年龄段以及各个文化阶层的群众对网络交互平台的需求,为净化网络环境,提升网民文化素质出一份力。然而机遇和困难并存,在技术层面上如何把大量的资源文件显示在动态页面上是首先要解决的问题,需要注意的是代码要尽量简洁合理,算法上要避免逻辑错误的出现,特别是在实现“回复评论”功能时

11、,要想清楚,弄明白,以方便后期测试和用户使用。所以首先要从基础做起,在扎实地实现各项基本功能的基础上进行实践和创新,争取早日达到预期的目标。1.1 系统开发工具本小节主要介绍了编写代码过程中所用到的开发工具。1.1.1 MyEclipse 10MyEclipse,是一款非常优秀的用于开发Java, J2EE项目的Eclipse插件集合,MyEclipse不但具有十分强大的开发功能,而且所支持的平台也非常广泛。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse),是对Eclipse的扩展,它是功能丰富的J2EE集成开发环境,包

12、括了完备的编码、调试和发布功能,完整地支持HTML,JSP,Javascript,SQL等。利用它我们可以极大地提高在数据库操作以及J2EE项目的开发、发布方面的工作效率。在功能结构上,MyEclipse可以被分为几种类型,如J2EE项目部署、J2EE模型、连接应用程序服务器工具、WEB开发工具、EJB开发工具、数据库服务等。每种不同的功能,Eclipse都有其相应的功能组件,并可以通过一系列的插件来实现它们。MyEclipse这种结构化的功能模式,使得用户可以独立操作任何的模块,并不影响其他的模块,方便对任意目标模块进行的扩展和升级。通俗地说,MyEclipse实际上是Eclipse的一种插

13、件,也是一个功能强大的J2EE集成开发环境,它支持代码的编写、配置、测试以及纠错。需要强调的是,MyEclipse 6.0以前版本需要预先安装Eclipse才可以正常使用,而在6.0以后的版本则不需要这么做。1.1.2 Tomcat 6.0服务器Tomcat在严格意义上讲并不是一个真正的应用服务器,它仅仅是一个可以支持运行 JSP/Servlet的Web容器,只不过它扩展了一些应用服务器的功能。Tomcat是Apache 软件基金会(Apache Software Foundation)下Jakarta 项目中的一个核心子项目,由Apache、Sun 等公司同开发而成。由于有了Sun 的加入与

14、支持,最新的 JSP和Servlet 规范总是能在Tomcat 中得以体现。由于Tomcat技术先进、性能稳定,而且又是免费的,因此深受Java开发者们的欢迎并得到了多家软件开发商的认可,成为目前较为主流的应用服务器,被广泛地应用在中小规模的Web项目中。1.1.3 数据库及其工具 Microsoft SQL Server 2005 是一个全面的数据库平台,使用HYPERLINK /view/101357.htm集成的HYPERLINK /view/8211.htm商业智能 (BI)HYPERLINK /view/74746.htm工具提供了企业级的数据管理。Microsoft SQL Ser

15、ver 2005HYPERLINK /view/68455.htm数据库引擎为关系型数据和HYPERLINK /view/160039.htm结构化数据提供了更安全HYPERLINK /view/190360.htm可靠的HYPERLINK /view/87682.htm存储功能,使您可以HYPERLINK /view/2067054.htm构建和管理用于HYPERLINK /view/64906.htm业务的高可用和高性能的数据HYPERLINK /view/330120.htm应用程序。1.2 关键技术1.2.1 JSP动态网页技术JSP是Java Server Pages(Java服务器

16、系统页面)的缩写,它是由Sun公司主导,与多家公司联手建立的一种动态网页技术标准。JSP技术有些类似于ASP技术,在动态网页的创建中起着强大而且特殊的作用,人们常用“HTML+Java=JSP”这样一种简单易懂的等式来解释JSP。因为JSP是一种实现普通静态HTML和动态HTML混合编码的技术,JSP是Java平台上用于编写包含诸如HTML、DHML、XHTML和XML等含有生成动态内容的Web页面的处理逻辑。JSP功能强大,使用灵活,它可以将网页显示与网页逻辑分离,使网页在与用户交流的同时还能够访问存在于服务端的资源。为创建和显示动态Web页面提供了一个简洁而快速的方法,使得基于Web的项目

17、的开发变得迅捷而容易4。 JSP与JavaServlet一样,是在服务器端执行的,用户访问页面时, JSP网页将请求发送给服务器,当服务器接收到请求时,首先执行JSP中的程序段,然后将执行结果连同其中的HTML代码一起返回给客户,因此客户端只要有浏览器就能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。插入的Java程序段可以通过操作数据库,更改页面结构来实现数据的动态显示。Java Servlet一般与JSP配合使用来完成一些大型商用的Web应用程序。JSP严格来说是集成技术,继承了Java的多种特点,是以Java为平台的用于构建动态网页内容的语言。自JSP推出后,大大方便了J

18、ava运用于动态网页,且众多大公司都支持JSP技术的服务器,如IBM、Oracle等公司,所以JSP迅速地成为商业应用的服务端页面技术。1.2.2 Servlet服务器程序Servlet是一种服务器端的网页技术,纯粹以Java编写,具有独立于平台和协议的特性。是Java为了产生于用户互动的动态网页内容而开发的,用于响应客户请求送与服务器响应。 Servlet是位于Web 服务器内部的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由包含支持其Java虚拟机的Web服务器进行加载的。Sun公司之所以以JavaServlet为基础,推出JSP,就是因为Javaservl

19、et的优点在于它的执行速度要快于一般的公共网关接口程序。每个用户的请求被激活成一个来自于单个程序的线程,所以无需创建单独的进程,这就意味着服务器端处理请求的系统开销将有明显的降低。当一个用户请求一个JSP页面时,JSP引擎根据JSP页面生成一个Java文件,即一个Servlet。而利用JSP支持JavaBeans这一特点,开发者则可以有效的管理页面的静态部分和动态部分。另外,也可以在一个JSP页面中调用一个Servlet来完成动态数据的处理,而让JSP页面本身处理静态信息,也就是所谓的MVC模式。因此,利用JSP设计一个Web应用可以有两种不同的选择,JSP+javabeans或者JSP+ja

20、vabeans+servlet。本文研究的BBS论坛系统使用的是后者。2 系统需求分析2.1 功能需求 系统的开发首先需要对系统的功能框架等进行一个根本的分析。首先要掌握系统需要的框架以及系统需要有哪些功能,这些都需要多参考比较成功的BBS论坛学习经验,我对水木社区,新一塌糊涂BBS,大话西游BBS几个知名论坛进行了研究参考,经过对这些知名论坛的研究参考我认为 在线论坛用于在互联网上为学生们提供一个信息发布或信息交流的场所。应具备以下功能:前台主要包括用户的登陆,用户的注册,发布主题,回复信息等,为了让有不同目的趋向的用户可以清楚的找到自己感兴趣的主题以及相同兴趣的用户可以更方便的交流我将系统

21、设计成了由多个专区组成的论坛,这样极大的方便了用户,也是界面友好性的一个体现。后台部分包括管理员的登陆,管理员的注销,专区的管理,用户的管理,主题的管理以及回复信息的管理。专区的管理包括对专区版主的设定、撤销,对专区的增加、修改、删除。用户的管理包括对用户的删除、级别的设定和修改。主题及回复信息的管理也包括了常见的修改、删除。对于贴子查看、发表贴子以及回复贴子这类频繁发生的系统操作,要采取适当的技术优化这类数据操作,以提高数据存取效率。通过这些功能极大的方便了用户的发言、查找,同时也将管理员的工作简单化、有效化,使管理员能过更方便的管理和监督论坛,保证了论坛的安全运行。2.2 性能需求考虑到

22、论坛系统使用的特殊性需要满足以下要求:(1)时间特性BBS论坛的数据库较小,所以程序在响应时间,数据更新处理时间上性能是比较突出的。由于数据量相对较少,故在数据传输时间和系统运行时间上表现的较让人满意。(2)通用性由于用户的操作系统不尽相同,这就要求考虑各平台之间的异性,而BBS论坛所采用的基于B/S的结构就很好的解决了这个问题,用户端只需要有浏览器就可以使用在线论坛。(3)保密性大部分网站都会注意会员信息的保密性,因此为了保护注册会员的隐私,在线论坛对此也采取了相应的措施,只有注册的用户自己和他添加的好友才能看到他的个人相关信息。2.3 开发环境2.3.1 硬件环境CPU:Inter Cor

23、e i5 M 480 2.67GHz 2.67GH内存:3GB硬盘空间:500GB2.3.2 软件环境操作系统:Windows 7 浏览器: Internet Explorer 7、Google Chorme、搜狗浏览器开发工具:MyEclipse 10数据库:SQL Server2005服务器:Tomcat 6.03 总体设计3.1 功能结构设计根据需求分析,将 论坛系统分为分为两大模块:前台模块和后台模块。前台功能模块包括3部分:(1)登录模块:用户在前台可以注册、登录;(2)浏览模块:用户可以浏览主题帖列表、查看帖子;(3)发帖回帖模块:用户可以发帖、回帖、编辑自己发布的帖子。后台模块都

24、是与管理员相关的,也包括3部分:(1)论坛设置模块:管理员可以设置论坛参数;(2)管理版块模块:创建、修改和删除版块;(3)管理用户模块:添加、删除和设置权限。BBS论坛的功能结构如图3-1所示。图3-1 BBS论坛的功能结构图3.2 功能模块介绍论坛系统中有两种用户:注册用户和管理员用户。论坛中的版主权限,划分给管理员。(1) 对于注册用户,在论坛中的行为可以归纳如下行为。注册登录因为论坛的特殊性以及网络的法律薄弱性本系统我采用了无匿名登陆模式,用户想要对页面进行操作则必须想登陆,非登陆用户对页面进行操作,系统将不对其给与运行同时提示用户必须先注册。如图3-2所示。浏览浏览版块列表选择某版块

25、,浏览其下的主题贴列表,查看帖子内容。搜索需要的帖子。这些行为是用户读取论坛的版块及其帖子的相关信息,设计成浏览版块。发帖回帖可以发表新帖子,也可以回复已有的帖子,同时可以编制自己写的帖子内容。这些行为是用户参与论坛讨论,发表自己的见解,设计为发贴回帖模块。如图3-3所示。 (2) 对于管理员,需要负责整个论坛的正常运转,因此它需要根多的管理功能,可以归纳如下行为。具备注册用户的所有功能,因为管理员也是论坛用户,可以参与论坛中的讨论。注册注册用户名是否有效从新注册二次密码是否一致主界面验证邮箱是否正确图3-2 注册流程图会员会员选择专区发布主题选择浏览主题发布回复信息提交图3-3 会员操作流程

26、管理帖子管理员对论坛的帖子有监督的权利,好的帖子要奖励,捣乱的帖子要删除,标识精华贴,至顶帖子,转移发错版块的帖子,这些行为都是针对帖子的操作,设计成管理帖子模块。管理版块论坛中的版块,需要管理员进行创建,管理版块信息,这些针对版块的操作,设计成管理版块模块。管理用户用户注册成功后,需要管理员赋予权限,才能使用论坛的相关功能。同时,管理员可以自己添加,删除用户,这些针对用户信息的操作,设计成管理用户模块。如图3-4。(3)对于论坛系统来说,联系各个模块的主线是使用者的权限,用户能使用论坛的哪些功能是由用户权限决定的。论坛的每个功能都与相关的权限对应。例如,注册用户具有浏览帖子,发贴,回帖的权限

27、,那么他就能使用论坛中的浏览,发贴,回帖功能。同一类用户使用的功能模块,是以使用者为中心连接起来的。另外,操作同一类事物的功能模块,也有相关关系的。因此,浏览模块与发帖回帖模块,管理帖子模块关联,是由论坛系统流程决定的。 管理版块模块与浏览模块关联,是由帖子与版块的父子关系决定的,帖子依附与版块,先有版块,后有帖子,帖子必须发表在每个版块中。用户管理模块与注册登录模块关联,是由同一类对象用户决定的,注册后获得论坛的身份,成为用户,所以的用户需要接收管理员的管理,用户登录证明自己在论坛中的身份。根据系统的入口不同,可分为前台系统和后台系统。前台包括注册登录模块,浏览模块,发帖回帖模块,管理帖子模

28、块;后台包括管理用户模块,管理版块模块。图3-4 管理员操作流程图4 数据库设计4.1 数据库的安装数据库我使用了SQL Server 2005,安装界面如图4.1所示。 图4-1 SQL安装界面安装时我们创建一个SQL Server实例。如图4-2所示。图4-2 选择界面 一切设定好后,安装程序开始向硬盘复制必要的文件,开始正式安装。安装完成后如图4-3所示。图4-3 安装完成4.2 数据库概念结构设计根据系统总体设计,BBS论坛网站的实体主要有:管理员实体,用户信息实体,帖子实体,短信息实体。 (1)管理员信息实体图 如图4-4所示。管理员管理员用户密码权限图4-4 管理员信息实体图(2)

29、用户信息实体图 如图4-5所示。用户用户密码头像用户名图4-5 用户信息实体图(3)帖子实体图,如图4-6所示。帖子帖子用户内容所属版块主题图4-6 帖子实体图4.3 数据库逻辑结构设计 通过对系统的需求和功能的分析我将系统的数据结构主要分为四个部分,包括用户信息,专区信息,主题信息以及回复信息。用户信息包括:用户id,用户名,真实姓名,用户密码,密码确认,用户性别,用户联系方式,用户头像, E_mail,联系地址。tb_bbsAnswer用于存放会员留言。tb_bbs用于存放会员发表的帖子信息。tb_user用于存放论坛用户信息。tb_news用于存放新闻。tb_class用于存放论坛类别介

30、绍。Tb_board 用于存放版面信息。建立数据库结构如表4.1至表4.5所示。表4.1 tb_user字段描述类型空值长度id注册用户int非2user_name用户名varchar是20user_password密码varchar是20user_phone手机号varchar是12uwer_email邮箱varchar是100user_sex性别varchar是2user_face头像varchar是11User_from用户地区varchar是200 表4.2 tb_bbs字段描述类型空值长度bbs_id帖子编号int非4bbs_title帖子标题varchar是70bbs_conten

31、t帖子内容varchar是2000bbs_sendTime发帖时间datetime是8bbs_sender发帖人varchar是20bbs_face发帖人头像varchar是10bbs_opTime置顶时间varchar是8bbs_toGoodTime成为精华时间varchar是8表4.3 tb_bbsAnswer字段描述类型空值长度bbsAnswer_id留言编号int否4bbsAnswer_rootid留言者编号int是4bbsAnswer_title回帖标题varchar是70bbsAnswer_content回帖内容varchar是2000bbsAnswer_sender回帖者姓名va

32、rchar是20bbsAnswer_sentime留言时间datetime是8bbsAnswer_face留言者头像varchar是50表4.4 tb_class字段描述类型空值长度calss_id分区编号int非2class_name分区名称nvarchar是50class_intro分区信息nvarchar是200表4.5 tb_border字段描述类型空值长度board_id版块编号int非4board_classId板块编号smalint是2board_name版块名称nvarchar是40board_master斑竹datetime是20board_pcard版块提醒nvarchar

33、是2004.4 数据库的连接(1)加载数据库程序根据读取的数据驱动配置字符串drivers,动态加载数据库驱动的程序。首先通过Class.forName()来动态加载,在使用DriverManage数据库驱动管理器来注册该驱动类。 public DB() className=com.microsoft.jdbc.sqlserver.SQLServerDriver; url=jdbc:microsoft:sqlserver:/localhost:1433;databaseName=db_luntan; username=sa; password=sa; try Class.forName(cla

34、ssName); catch(ClassNotFoundException e) System.out.println(加载数据库驱动程序失败!); e.printStackTrace(); (2)取得数据库连接程序用户编写程序中,如果需要取得数据库连接,只需要调用该函数。 public void getCon() try con=DriverManager.getConnection(url,username,password); catch (SQLException e) System.out.println(获取数据库连接失败!); e.printStackTrace(); (3)释放

35、连接用来释放一个连接到数据库连接池pools中的。如果使用完了每个连接,就需要调用该函数将连接关闭。 public void closed() try if(pstm!=null) pstm.close(); catch(Exception e) System.out.println(关闭pstm对象失败!); try if(con!=null) con.close(); catch(Exception e) System.out.println(关闭con对象失败!); 5 功能模块的设计与实现5.1 主页面主页面是论坛的门户,所以主页面的设计好坏直接影响到整个论坛的形象。论坛首页所载的内容

36、有:论坛工具栏,包括登录、注册、发贴排行、帮助、管理员登录、退出;LOGO图标;论坛统计信息;论坛版面列表;论坛版权信息。效果如图5.1所示。5.2 用户登录注册模块设计5.2.1 用户登录用户进入主页面,若想浏览具体的帖子必须先登录。点击工具栏上“登录”按钮则进入登录页面,效果如图5-1所示。该模块在用户登录要进行用户名和密码的有效性检验,查询用户表,如果该用户存在则让他进入主页面,也就是前面介绍的论坛主页面,如果不能登录成功则给予提示,用户名不存在或者密码错误,回到登录页面以便用户再次输入用户名及密码登录。图5-1 用户登录界面登录页面主要代码: public ActionForward

37、isUserLogin(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) HttpSession session=request.getSession(); Object loginer=session.getAttribute(logoner); if(loginer!=null&(loginer instanceof UserForm) ActionMessages messages=new ActionMessages(); messages.

38、add(loginR,new ActionMessage(luntan.bbs.have.login); saveErrors(request,messages); return mapping.findForward(FhaveLogin); else return mapping.findForward(noLogin);5.2.2 用户注册如果用户是首次反问BBS论坛,还没有注册,可以单击【注册】按钮进入新用户注册界面,先进行用户注册,这是用户进入论坛的一个通道,是任何论坛都不可缺少的部分。效果如图5-2所示。图5-2用户注册界面用户注册页面代码: sql=insert into tb_

39、user values(?,?,?,?,?,?,?,?,?);params=new Object9;params0=userName;params1=userPassword;params2=userFace;params3=userSex;params4=userPhone;params5=userOICQ;params6=userEmail;params7=userFrom;params8=userAble;int i=myOp.OpUpdate(sql, params);if(i=0)System.out.println(用户注册失败!);messages.add(userOpR,new

40、 ActionMessage(luntan.user.reg.E);elseSystem.out.println(用户注册成功!);regForm.clear();messages.add(userOpR,new ActionMessage(luntan.user.reg.S);saveErrors(request,messages);5.3 帖子相关界面5.3.1 发新帖子点击某一具体论坛分类,进入帖子页面,单击“发表新贴”,则进入发新帖子的页面,如图5.4所示。这里只允许会员发表新帖子,需要填写的新帖子信息包括:用户名、密码、主题、当前心情、具体内容等,这也是帖子表里应该有的最基本信息。其

41、中标题不能超过50个汉字。“内容”是指书写帖子内容时输入框支持什么不支持什么等。具体内容输入框上的按钮可以对输入的内容进行字体等方面的设置,用过Word的人可以很容易掌握这些小按钮的用法,其中有加粗、斜体、下划线等,还可以设置字体效果等。输入框下方提供了一些小图片,用户单击表情图标就可以在帖子中加入相应的表情。“是否显示您的签名”和“有回复时使用邮件通知您”看作者而定,可以选择也可以不选。所有的内容都填写完毕后,单击【发表】按钮则数据库中相应的帖子表增加一条记录,用户帖子发表成功。具体界面如5-3所示。 图5-3 发布帖子界面发布帖子页面代码:String sql=insert into tb

42、_bbs values(?,?,?,?,?,?,?,?,?,?,?);Object params=boardId,bbsTitle,bbsContent,bbsSender,bbsSendTime,bbsFace,bbsOpTime,bbsIsTop,bbsToTopTime,bbsIsGood,bbsToGoodTime;ActionMessages messages=new ActionMessages();OpDB myOp=new OpDB();int i=myOp.OpUpdate(sql,params);if(i=0)System.out.println(发表帖子失败!);mess

43、ages.add(userOpR,new ActionMessage(luntan.bbs.add.E);saveErrors(request,messages);return mapping.findForward(error);elseSystem.out.println(发表帖子成功!);session.setAttribute(currentP,1);messages.add(userOpR,new ActionMessage(luntan.bbs.add.S);bbsForm.clear();saveErrors(request,messages);return mapping.fi

44、ndForward(success);5.3.2 浏览帖子单击某一具体的帖子,可以阅读帖子的内容。如图5-4所示是浏览某一个具体帖子的界面,最上方【发表话题】、【回复帖子】按钮,用户可以单击按钮进行相应的操作。同一行的右边是一个对本帖子阅读的人数的统计。再下来是作者的一些基本信息。同一水平线上与之对应的是帖子的具体信息,包括帖子的内容、发表时间等。还可以对帖子做相应的一些操作或进入相关链接。如果帖子有跟帖,则会在这个帖子的下方以同样的表现形式列出来 图 5-4 帖子列表帖子列表页面代码:Vector jumpBoard=new Vector();List boardlist=(ArrayLis

45、t)session.getAttribute(class+classId);if(boardlist!=null&boardlist.size()!=0)for(int i=0;iboardlist.size();i+)BoardForm boardSingle=(BoardForm)boardlist.get(i);jumpBoard.add(newLabelValueBean(boardSingle.getBoardName(),boardSingle.getBoardId();if(boardId.equals(boardSingle.getBoardId()session.setAtt

46、ribute(boardMaster,boardSingle.getBoardMaster();session.setAttribute(boardPcard,boardSingle.getBoardPcard();session.setAttribute(jumpBoard,jumpBoard);String sql=;Object params=boardId;OpDB myOp=new OpDB();myOp.setMark(false);sql=select * from tb_bbs where bbs_boardID=? and bbs_isTop=1 order by bbs_t

47、oTopTime DESC;List topbbslist=myOp.OpBbsListShow(sql, params);session.setAttribute(topbbslist,topbbslist);String currentP=request.getParameter(showpage);if(currentP=null|currentP.equals()currentP=(String)session.getAttribute(currentP);elsesession.setAttribute(currentP,currentP);String gowhich=user/l

48、istShow.do?method=rootListShow;myOp.setMark(true);myOp.setPageInfo(perR, currentP, gowhich);sql=select * from tb_bbs where bbs_boardID=? and (bbs_isTop=0 or bbs_isGood=1) order by bbs_opTime DESC;List otherbbslist=myOp.OpBbsListShow(sql, params);CreatePage page=myOp.getPage();session.setAttribute(ot

49、herbbslist,otherbbslist);session.setAttribute(page,page);5.3.3 帖子列表帖子是论坛的主要交流内容,是用户网页用户之间交流的必要手段。单击某一论坛分类,则进入帖子列表页面,效果如图5-5所示。图5-5 论坛版块页面5.4 新闻模块新闻在人们的生活中是必不可少的,是了解世界的必要信息,为了方便用户因此,我在此系统中加入了新闻模块,使用用户在进入本系统浏览时,也可以方便的读取当天要点新闻,了解时事,这样也使得系统功能不再单一,显得过于死板。在功能列表里点击【新闻】,系统列出当天提供的新闻题目列表,点击新闻题目,查看新闻,效果如图5-6所示

50、。图5-6 新闻模块页面新闻模块代码:public void newsMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOExceptionList newsList=new ArrayList();String sql=select * from tb_news where del=no;Object params=;DB mydb=new DB();trymydb.doPstm(sql, params);ResultSet rs=mydb.getRs();while(rs.next(

51、)Tnews news=new Tnews();news.setId(rs.getString(id);news.setTitle(rs.getString(title);news.setContent(rs.getString(content);news.setShijian(rs.getString(shijian);news.setDel(rs.getString(del);newsList.add(news); rs.close();catch(Exception e)e.printStackTrace();mydb.closed();req.setAttribute(newsList

52、, newsList);req.getRequestDispatcher(pages/admin/news/newsMana.jsp).forward(req, res);6 后台管理模块的设计与实现后台的设计完全是为了前台服务的,前台主要是论坛帖子的管理,所以后台必须有支持前台帖子发布的论坛管理,用户个人信息的有些设置也是在后台管理的。后台的维护功能主要包括如下:论坛版面管理、更新论坛数据、用户信息管理、论坛页面样式管理,更换新闻。6.1 后台管理6.1.1 管理员登陆模块管理员的登陆界面和普通的用户的登陆界面为公用,管理员的账号和密码是数据库里默认已经存在的用户名admin,密码admin

53、。 管理员登陆后,在系统主页的最下方点击“进入后台”然后进入后台管理界面,左面是功能菜单,包括论坛的管理,帖子的管理,用户的权限管理,和新闻更新管理。6.2 论坛管理管理员登录进入后台维护模块,负责新建论坛类型,论坛名称等基本信息,如图6-1所示是管理员首先看到的论坛列表: 图6-1 后台管理页面 列表页是管理员对论坛进行各种操作的关卡,相当于一个门面,所以要留给用户一些接口以便用户进入到其他页面进行其他各种操作,如新增论坛分类、新增论坛、分类排序修改、删除分类等。6.2.1 添加论坛分类论坛分类的维护包括新增、编辑和删除。如图6-2所示是单击【新建论坛分类按钮的部分界面,管理员需要填写分类名

54、,单击【添加】按钮即可添加一个新的论坛分类,相应的数据库论坛分类表里增加一条记录。图 6-2 论坛分类页面6.2.2 删除论坛分类对数据有新增功能,就必然要有删除功能,要删除论坛分类,是通过单击【删除分类】按钮完成删除动作的。6.2.3 编辑论坛单击【编辑论坛】按钮后界面与图6.3相同,不同的是修改的界面绑定了原有的数据。修改选定的论坛的信息,数据库论坛表里相应的一条记录信息被修改了。6.3 用户管理在这里后台用户模块的设计是对前台人员的维护。前台新建注册的系统用户,在此都可以看到,管理员可以对用户进行权限设置,单击列表中的用户名可以查看用户的基本信息,在删除列选中相应的用户名后可以删除该用户

55、。该模块的功能主要是管理前台系统的基本用户,为了用户信息不产生冗余,影响系统的性能。这给管理员一个进行管理用户的接口。如图6-3所示。图6-3 用户列表用户管理代码:HttpSession session=request.getSession(); session.setAttribute(backMainPage,./user/userListShow.jsp); String getType=request.getParameter(type); if(getType=null|getType.equals()|!getType.equals(show) List ableList=new

56、 ArrayList(); ableList.add(new LabelValueBean(全部,all); ableList.add(new LabelValueBean(管理员,2); ableList.add(new LabelValueBean(版主,1); ableList.add(new LabelValueBean(普通用户,0); session.setAttribute(backListAble,ableList); else AbleForm ableform=(AbleForm)form; String able=ableform.getShowAble(); if(ab

57、le=null|able.equals() able=(String)session.getAttribute(userAble); ableform.setShowAble(able); else session.setAttribute(userAble,able); String sql=; Object params=null; if(able.equals(all) sql=select * from tb_user order by user_able DESC; else sql=select * from tb_user where user_able=?; params=ne

58、w Object1; params0=able; OpDB myOp=new OpDB(); List userlist=myOp.OpUserListShow(sql, params); request.setAttribute(backUserList,userlist); return mapping.findForward(success); 6.4 新闻管理在这里管理员主要是对新闻的管理,删除过期的新闻,添加今日新闻,随时更新最新新闻,查看新闻内容。结束语随着计算机、通信和多媒体技术的发展,使得网络的应用更加广泛。加大信息网络教育的投入,开展网络化教学,开展教育信息服务和远程教育服务

59、等将成为未来建设的具体内容,论坛是有利的网络交流平台,能极大的方便了师生之间的信息交流。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。因此本论坛采用JSP技术开放能满足这种需求。论文中详细讨论了在线论坛的设计思想,包括系统体系结构的设计、系统功能模块设计、数据库设计、系统的实现等。根据软件设计和实现的情况,重点阐述了系统实现过程中功能模块设计、数据库设计、组件的设计、前台显示部分设计、后台维护部分设计等关键设计。到论文截稿时,在线论坛已通过运行测试,基本完成预期目标的实现。能够达到校园内网上信息共享

60、、交流学习的目的,可以为同学之间、师生之间的信息交流提供了更方便有效得渠道。在线论坛设计和实现过程中系统从不可用,到可用运行,从字符乱码,到正常的中文显示。一次次的改进,这使本人认识到设计、算法在系统开发中的重要性和理论与实践相结合的重要性。但由于系统开发的经验不足,水平有限,所以目前在线论坛的实现上还有许多地方可以进一步改善和提高。在线论坛只是实现了论坛的基本功能,还有很多比较流行的功能,如:在线交流,上传下载,查看帖子操作日志,论坛变量设置等都尚未实现,在算法的采用和数据库逻辑的设计上还存在一些不完善的地方。参考文献1 HYPERLINK /search?channel=search&sw

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论