毕业设计文献综述
计算机科学与技术
一个简单网络论坛的设计与实现
一、前言部分
1 目的
网络论坛在国外又叫BBS,是当今世界各行各业,不论是计算机爱好者,还是商业组织,环境组织,宗教组织和其他利益集团相互交流,交换信息的地方。如今网络论坛的花样非常多,好的网络论坛对社会的建设和和谐发展都有非常深远的意义。而言论很差的网络论坛也会导致坏的社会风气,妨碍精神文明建设。因此对网络的管理是非常重要的。本文将分析网络论坛的历史背景,发展现状,和未来的发展等几个方面进行论述。
2 有关概念
(1)数据库系统
数据库系统,是由数据库及其管理软件组成的系统。它是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。它是一个实际可运行的存储、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体。
(2)MySQL数据库
MySQL是一种关系型数据库系统,MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
(3)Java语言
Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,可移植的,性能优异、多线程的静态语言。Java语言提供类、接口和继承等,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现。Java语言支持动态绑定。Java语言是一个纯的面向对象程序设计语言。
(4)JSP技术
JSP技术使用Java编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。JSP 将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易、JSP可以使用成熟的JAVA BEANS组件来实现重复使用。(5)Ajax 技术
Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。通过Ajax,JavaScript可使用JavaScript的XMLHttpRequest来直接与服务器进行通信。通过这个对象,JavaScript可在不重载页面的情况与Web 服务器交换数据。Ajax
在浏览器与We服务器之间使用异步数据传输,这样就可使网页从服务器请求少量的信息,而不需要刷新整个页面。JavaScrip编程的最大问题来自不同的浏览器对各种技术和标准的支持。Ajax的一些框架让开发人员不需要担心跨浏览器的问题。
(6)MVC模式
MVC模式(Model模型-View视图-Controller控制器)是软件工程中的一种软件架构模式。它把软件系统分为三个基本部分:(Model模型),(View视图)和(Controller控制器)。Model层实现系统中的业务逻辑,通常可以用JavaBean来实现。View层用于与用户的交互,用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示。
(7)Tomcat
Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
3 主题争论焦点
对于论坛的实名制一直是个争论的焦点。采用实名制用户会担心信息的安全性,并且发言也会有所顾忌。而不采用实名制,网上又容易出现行骗,言语上的人生攻击,甚至是对政府的言论攻击,这也会让社会风气恶化,失去正确的向导。
二、主题部分
1发展现状和动态
BBS是英文Bulletin Board System的缩写,翻译成中文为“电子布告栏系统”或“电子公告牌系统”。BBS是一种电子信息服务系统。它向用户提供了一块公共电子白板,每个用户都可以在上面发布信息或提出看法,早期的BBS由教育机构或研究机构管理,现在多数网站上都建立了自己的BBS系统,供网民通过网络来结交更多的朋友,表达更多的想法。目前国内的BBS已经十分普遍,可以说是不计其数,其中BBS大致可以分为5类:(1)校园BBS CERNET建立以来,校园BBS很快地发展了起来,目前很多大学都有了BBS,几乎遍及全国上下。象清华大学、北京大学等等都建立了自己的BBS系统,清华大学的水木清华很受学生和网民们的喜爱。大多数BBS是由各校的网络中心建立的,也有私人性质的BBS。
(2〕商业BBS站,这里主要是进行有关商业的商业宣传,产品推荐等等,目前手机的商业站、电脑的商业站、房地产的商业站比比皆是。
(3)专业BBS站,这里所说的专业BBS是指部委和公司的BBS,它主要用于建立地域性的文件传输和信息发布系统。
(4)情感BBS,主要用于交流情感,是许多站的首选。
(5)个人BBS,有些个人主页的制作者们在自己的个人主页上建设了BBS,用于接受
别人的想法,更有利于与好友进行沟通。
伴随着Web2.0时代的到来,BBS将朝着以下两个方面发展:
(1)BBS论坛系统将朝着即时性方面发展。现在动态网站出现一门新技术Ajax。在Ajax 之前,页面的部分数据需要更新时必须刷新整个页面。而使用Ajax技术的网站,不需要刷新页面就可以更新数据,这就使Web站点看起来是即时响应的。将来可以把Ajax技术运用到BBS论坛系统当中,使论坛成员在不用刷新页面时就可以看到别人刚刚发的帖子。
(2)BBS论坛系统也将朝着图形化方向发展。图形虚拟社区可以非常具体和形象化的模拟整个现实社区的生活,并且具备无限的可扩充性。在论坛中你甚至可以到和现实生活完全对应的建筑。通过一根网线就可以把远在天南海北的朋友聚到一起。试想,你可以通过外形的不同来区分不同社区的朋友而不是通过ID。你甚至可以通过外形的不同来猜测对方的性格,这些都是传统虚拟社区所不具备的特点。
2、开发技术介绍
MVC设计模式。MVC设计模式将应用程序分为模型,视图,控制器三个部分,按照模型层,视图层,控制层进行分解,从而使得整个系统责任明确、接口清晰,加快了设计开发过程。模型层就是指业务逻辑的处理和数据储存。它分为两层:业务逻辑模型和数据模型。模型接收视图的数据,并返回最终的处理结果。数据模型是指对数据的持久化,它是线路对视图和模型的交换的支持。实现时把“做什么”和“怎么做”分离,这样可以实现业务逻辑的重用。视图层主要用来展现用户所需的数据,他是用户和系统进行交互的界面,这部分工作一般可以由美工人员进行开发和维护,一般可以采用HTML页面,JSP等技术。一般来说,视图只接收来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。MVC设计模式对于视图的处理仅是视图的采集和处理,以及用户的请求而视图上业务的处理,业务流程的处理和状态的改变交个模型层来处理。视图部分大致的处理流程是:页面模板定义布局,视图标签的具体内容,而页面布局初始化并加载页面。用户部件提交参数,通过表示层的校验,将数据提交给业务实体,即模型。控制层是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层就像一个中转站,从用户那里接收请求然后根据参数将模型与视图匹配,将选择符合要求的视图转发给用户。Java 开发Web Application有几种符合MVC设计模式的开发方式。
1:Jsp+Servlet+JavaBean(EJB)
2:Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)
3:SSH (Struts + Spring + Hibernate)。
在前几年JSP+SERVLET是采用Java进行Web开发的主要技术,而这几年Struts,Spring,Hibernate的组合成了Web开发的主流。本次网络论坛的开发将使用这些目前广泛运用的开发技术。利用Hibernate对JDBC进行了非常轻量级的对象封装,避免去写使用JDBC连接数据库的重复的代码和SQL语句,可以使用面向对象的思维来对数据库进行增删改查等操作。
开发人员使用的技术是面向对象的技术,而使用的数据库是关系型数据库。所以使用Hibernate提供的ORM在对象型和关系型之间建立联系,从而可以让开发人员完全用OO的思想去设计业务逻辑,而数据的存储依旧使用关系型数据库。利用Struts2接受客户端的参数,根据请求的参数转发请求给适当的控制器,来控制视图的转发,是结构层次分明,可重用性高。Struts的作用避免了在JSP页面当中写太多的代码,做到保持JSP的界面整洁,同时可以实现MVC模式,Struts的根本作用就是方便以后对程序的修改。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务Spring则完全是一种架构型的框架了,它不属于J2EE应用中的任何一个层,但它提供了对象依赖注入的思想,并且为每个层中遇到的实际问题提供了大量现成的模板类,使用这些模板类的方法很容易,大多数情况下只需要你在配置文件里配置一下就可以实现诸如事务管理或安全性控制这样的复杂问题.使用Spring你的代码不依赖于框架,不依赖于具体实现,而依赖于接口。通过使用Spring AOP,不用依赖EJB 组件,就可以将声明性事务管理集成到应用程序中。本次网络论坛系统使用struts2负责MVC 模式里的'C",控制业务逻辑层与表
现层的交互,调用业务逻辑层,并将业务数据返回给表现层表现。实现本网络论坛的业务逻辑层以DAO层为基础,通过DAO组件的包装,完成系统所需要的业务逻辑。而DAO层负责与持久化对象交互。该层封装了数据的增删改查等操作。DAO模式需要为每个DAO组件编写DAO接口,同时至少提供一个实现类,根据不同的需要,可能有多个实现类。用Spring容器代替DAO 工厂,完全避免了使用工厂模式,因为Spring本身是个非常强大的工厂,可以让Spring充当DAO工厂。无需程序员自己实现工厂模式,只需将DAO组件配置在Spring容器中,由ApplicationContext负责DAO组件的创建即可。借助于Spring提供的依赖注入,其他组件甚至不用访问工厂,一样可以直接使用DAO 实例。Hibernate对JPA支持。只要熟悉Hibernate或者其他ORM框架,在使用JPA时会发现其实非常容易上手。例如实体对象的状态,在Hibernate有自由、持久、游离三种,JPA 里有new,managed,detached,removed,明眼人一看就知道,这些状态都是一一对应的。再如flush方法,都是对应的,而其他的再如说Query query = ateQuery(sql),它在Hibernate里写法上是session,而在JPA中变成了manager,所以从Hibernate到JPA的代价应该是非常小的。本系统采用B/S三层结构,使用JSP技术进行动态页面设计,运用javabean对程序的关键代码进行分装,如对实现分页功能的代码进行分装。用ajax技术实现对注册,登录失败时的反馈信息。使用tomcat作为web服务器,mysql作为数据库管理系统。
三、总结部分
网络论坛又名BBS,全称为“Bulletin Board System(电子公告)或者Bulletin Board Service(公告板服务)”。
是Internet上的一种电子信息服务系统。它提供了一块公共电子白板,每个用户都可以在上面发布信息或提出建议。BBS是一种交互性强、内容丰富并且及时的Internet电子信息服务系统。用户在论坛站点上可以获取各种信息,例如,发布信息、进行
讨论、聊天等操作。论坛按不同的主题分为许多板块,板块的设立依据是大多数用户的要求和喜好,用户可以阅读别人关于某个主题的看法,也可以将自己的想法发表到论坛中。论坛为用户提供了极大的便利。目前国内的网络论坛已经十分普遍,可以说不计其数。
本次论坛将采用java程序语言后台开发,整合hibernate,struts2,spring应用框架,使用JSP作为前台页面的实现,采用AJAX技术进行前台与服务器的交换,MYSQL作为数据库系统,tomcat作为服务器,将实现一个提供大家交流的系统,使用户可以充分交流自己的知识,看法,经验。
现如今国内外最常用的三种动态网页语言是PHP(personalhome page)、ASP(activeserver page)和JSP(javaserver page)。PHP可以在Windows、UNIX、Linux的web服务器上正常执行,支持IIS和Apache等一般的web服务器。ASP功能强大,简单易学,但是只能在Windows 系统下运行。UNIX下有Chilisoft的组件来支持ASP,但是ASP本身功能有限,必须通过与com的组合来扩充功能。JSP基于平台和服务器的互相独立,支持来自广泛的、专门的工具包,服务器组件和数据库产品由开发商提供。这三种语言各有优缺点,根据BBS的用途不同,可以选择合适的语言来开发。
四、参考文献
[1] 李钟蔚,马文强,王殊宇.Java项目开发实例自学手册.北京:人民邮电出版社,2008
[2] 我的J2EE成功之路实战Ajax,JSP,Struts2,Spring,Hibernate电子工业出版社,2009
[3] 精通Java EE项目案例:基于Eclipse spring struts hibernate/刘乃丽编著.—北京:人民邮电出版社,2008
[4] J2EE电子商务系统开发从入门到精通:基于Struts和Hibernate技术实现/陈松编著.—北京:清华大学出版社,2007
[5] 基于J2EE的Ajax宝典[专著]/李刚编著.—北京:电子工业出版社,2007
[6] Java JDK实例宝典/夏先波编著.—北京:电子工业出版社,2007
[7] 苏年乐,李学志,李金才.Java+SQL Server 项目开发实践.北京中国铁道出版社,2006
[8] 黄明,梁旭.Java信息系统设计与开发实例.北京:机械工业出版社,2004
[9] 陈天河等.Java数据库高级编程宝典.北京:北京电子工业出版社,2005
[10][美]Y.Daniel Liang.Java语言语言程序设计基础篇.万波,郑海红,潘蓉,李娜等译.北京:机械工业出版社,2008
[11][美]Y.Daniel Liang.Java语言语言程序设计进阶篇.万波,郑海红,潘蓉,李娜等译.北京:机械工业出版社,2008
[12]陆正武,张志立.Java项目开发实践(第2版).北京:中国铁道出版社,2005
[13]钟玉,阳昊,浅谈大学校园网BBS,益阳师专学报,2004年11月,P2
[14]白淑英:《基于BBS的网络交往特征》,哈尔滨工业大学薛宝(社会科学版),2002年9月第4卷第3期。
[15]刘冰,从BBS看校园网络文化对大学生学习的影响,现代远程教育研究,2005年2期,P3-4
轻量级论坛系统
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论