版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、论 文 摘 要基于J2EE+STRUTS2+HIBERNATE3设计技术和sql2005数据库技术的开封大学BBS班级论坛系统,是一个用于班级交流,完成班级内部的信息发布与实现,并提供了基础BBS论坛的皱型,包括前台用户交流和后台管理。其功能主要是:帖子的发布,帖子的回复,用户注册,用户信息维护,用户评论,最新帖子显示,最新评论和推荐帖子的实现,用户信息管理,帖子和评论管理,公告管理,友情链接等几大功能模块。 本系统除了使用J2EE+STRUTS2+HIBERNATE3技术外,还加入了jstl,EL表达式,过滤器,jquery无刷新技术。同时也加入了flash元素,使的网页的互动性更强。同时对
2、于想要学习框架技术的同学提供了良好的模板。本系统利用各种面向对象的开发手段,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,真到形成用户满意的可行系统。 整个系统的开发过程严格遵循软件工程的要求,做到模块化分析、模块化设计和代码编写的模块化。本系统有很强的实用性、开发效率高、移植性好、稳定性好等优点。可以在任何安装了java虚拟机和J2EE的系统上面使用,由于java的一次编译,次次运行的特点,所以搭建本系统可以节约成本,不需要额外的增加平台环境和硬件。对于系统的维护也不需要专业人员,只要会基本的电脑操作,那么项目的维护就不是问题。关键字:BBS 论坛系统 s
3、truts hibernate jquery jstl目 录一、引言2二、相关软件及技术介绍2(一)java语言2(二)Microsoft SQL Server 20053(三)myeclipse3(四)tomcat3(五)jsp,servlet4(六)struts+hibernate4三、系统概述5(一)功能概述51用户注册52帖子管理53用户信息修改54评论回复55帖子导航,帖子搜索56后台管理6(三)运行环境61软件配置72硬件配置7三、功能需求7(一)系统功能分析及用例图类图7(二)功能描述101用户注册管理102帖子管理103用户信息管理10四、系统功能设计11(1)数据库需求分析1
4、1(2)数据表设计14(3)表数据18五、详细设计20(一)主页面20(二)用户23(三)管理功能介绍27六、功能测试28(一)链接测试28(二)设计语言测试28(三)数据库测试29七、安全测试29结 论30BBS班级论坛系统的实现王世阳(开封大学软件学院应用三班)一、 引言随着信息产业和Internet的飞速发展,计算机的使用已渗透到各个领域。这就迫切地要求计算机能够对浩瀚的信息实现自动化处理,以实现及时、准确的掌握信息。科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 本项目是一个基于论坛形式的项目,使用本项目,大家
5、可以实现普通论坛的操作,从而就可以实现互动的效果,但因为时间紧促,所以核心功能已经完善,但扩展功能却无法实现,下面将会详细介绍项目的组成和架构。 本系统除了使用J2EE+STRUTS2+HIBERNATE3技术外,还加入了jstl,EL表达式,过滤器,jquery无刷新技术。同时也加入了flash元素,使的网页的互动性更强。同时对于想要学习框架技术的同学提供了良好的模板。二、相关软件及技术介绍(一)java语言Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了
6、Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。它主要包括javaSE,javaEE,javaME。 Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。Java语言的语法与C语言和C+语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C+ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必
7、为内存管理而担忧。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C+ 语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。(二)Microsoft SQL Server 2005SQL Server 是一个关系数据库管理系统,SQL Server作为微软在Windows 系列平台上开发的数据库,一经推出就以其易用性得到了很多用户的青睐。另外,SQL Server 2005 除了具有扩展性,可靠性以外,还具有可以迅速开发新的因
8、特网系统的功能。尤其是它可以直接存贮数据,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。这些特点在.NET 战略中发挥着重要的作用。除了sqlserver2005外,还有access,oracle,mysql等其他的很多数据库,对于oracle来说,它是面向企业级应用的大型数据库,所以在这里就不考虑使用oracle。Access则是因为它的关系性功能不强,所以在这里也排除在外。至于mysql,因为mysql的数据库数据转移不方便,所以也不使用。(三)myeclipseMyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEcli
9、pse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。(四)tomcatTomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户
10、不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML
11、的能力不如Apache服务器。(五)jsp,servletJSP是JavaServer Pages 的简写。JSP 技术能让Web 开发员和网页设计员快速地开发容易维护的动态Web主页。用JSP 开发的Web 应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。JSP 将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web 的应用程序的开发变得迅速和容易。JSP 技术是Servlet技术的扩展。Servlet是平台无关的,100%纯Java的Java服务端组件。Servlet类似于通用网关接口(CGI)脚本,servlets 支持请求响应编程模式。当客户端给服务
12、器发送请求时,服务器将请求发送给servlet。然后,servlet 构建一个响应,服务器将该响应发送回客户端。然而,跟CGI 脚本不同的是,servlets 和HTTP服务器运行在同一个进程内。(六)struts+hibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代
13、CMP,完成数据持久化的重任。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。 除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。以上的软件和技术都是现今主流的开发工具和技术,它们的框架,安全,性能等方面都已经很完善,使用它们可以更好完成对系统的构建和运行,相比于C#和VB,它更具有平台,速度,
14、安全等方面的优势。三、系统概述(一)功能概述提供包括用户注册,帖子发布、评论以及后台管理等内容。1 用户注册 用户注册可以使未注册用户注册到自己的账号,并且可以凭借此账号实现与其他用户的互动。2 帖子管理 本系统实现了帖子的扩展功能,具有对帖子进行动态显示的效果,用户的最新评论,帖子加精推荐等功能。3 用户信息修改 对于注册用户可以修改自己的信息,使用的是jquery插件实现页面的无刷新显示。但碍于时间原因,此处的功能就实现了二处。4 评论回复 可以把关于本帖子的所有用户回复信息进行统一显示出来的效果,使的帖子的内容可以更加的精彩。5 帖子导航,帖子搜索 本系统还完成了基本的帖子搜索功能,用户
15、可以分类搜索帖子也可以通过搜索自己喜欢的关键词进行搜索。6 后台管理 后台管理是每个系统都具有的,本系统也不例外,除了基本的功能外,本后台还具体用户动态信息,帖子的浏览回复等信息。(二)系统的处理流程 如图1所示:登陆系统个人管理员修改个人头像房信息增客房信息前台操作后台管理查询修改个人资料信息增客房信息发表评论发布帖子用户管理信息增客房信息帖子管理房信息增客房信息评论管理息增客房信息在线人数统计信息增客房信息公告发布,友情链接管理信息增客房信息退出退 出图1 处理流程图(三) 运行环境 由于BBS班级论坛系统具有流程复杂、数据量大、操作要求安全的特点,所以必须进行数据库、操作系统、网络等硬软
16、件的合理选择。1. 软件配置 BBS班级论坛系统具有的软件配置主要包括数据库的选择和操作系统的 选择。本系统采用SQLSERVER 2005.操作系统使用windowXP.2. 硬件配置a) 推荐Pentium或更高的处理器,或任何运行于Microsoft Windows NT Workstation的Alpha处理器。b) Microsoft Windows支持的VGA或分辨率更高的监视器。128MB内存以上。三、功能需求(一)系统功能分析及用例图类图 如图2所示:修改个人头像系统整体功能划分查询修改个个人资料个人帖子评论帖子发布管理员公告,友情链接在线人数统计评论管理帖子管理用户管理图2
17、功能需求设计图系统的基本流程就是上面描述的那样,而对于系统的详细描述则会在后面的部分进行详细的分析及讲解,下面是系统的涉及的基本用例图,通过用例图可以更好的了解系统的构成。 1.用例图图2-1为前台用例,图2-2为后台管理用例图2-1前台用例图图2-2 后台用例图2.实体类图图2-3 实体类图(二) 功能描述用户系统主要由三大子系统组成:用户注册、帖子发布、评论管理,信息维护1. 用户注册管理 提供给非注册用户的合法身份注册,需要用户提供的信息包括用户名,密码,性别,邮箱,真实姓名,身份证ID,教育程度,地址等信息。在系统中管理员具有最高权限。2. 帖子管理 因为本系统开发时间周期短,所以只实
18、现了基本的帖子发布和评论管理功能,对于那些在评论中插入图片等一些特效的展示在这里无法完成。3. 用户信息管理 用户信息管理模块也是比较重要的模块,在这里使用的是页面无刷新技术,利用jquery插件,实现个人图像的上传,信息的修改,但是在这里开发的功能比较少,时间不够,无法完成开发和测试。后台系统除了基本的用户管理、帖子管理、评论管理基本功能外,还加入了一些特色功能,包括:在线人数统计、帖子访问量、公告的发布、友情链接的添加。其中在线人数统计包括了注册人数、访问人数的统计,可以使管理员可以更好更直接的把握住网站的人流信息,从而为网站的后期功能策划提供了参考。帖子访问量可以使管理员更好的了解用户发
19、表的帖子受欢迎程度,从而可以给这些受欢迎的帖子设置加精或者推荐都操作。至于公告的发布,则是把最新最快的网站信息及时的呈现给用户。友情链接可以把那些建立了同盟关系或者是用户反应的那些访问量大的网站进行添加。四、系统功能设计BBS班级论坛系统管理员个人 帖子管理在线人数统计公告,友情链接帖子评论帖子发布 用户管理查询修改个人资料个人头像修改评论管理根据系统功能要求可以将系统分解成几个子系统模块来分别设计应用程序界面,如图3所示:图3功能设计(1) 数据库需求分析 数据库是信息管理的基础。数据库结构直接关系到各种功能的实现和程序运行的效率。进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理
20、)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。数据库的安全也是很重要的,对于sa账户,一定要做到保密。E-R实体图分析用户用户名名email性别密码况身份证号图4 用户E-R实体图用户扩展用户名用户头像访问密码用户最爱用户等级用户别名图5 用户扩展E-R实体图帖子帖子名修改日期发帖日期发帖人帖子状态帖子评论帖子分类帖子内容图6 帖子E-R实体图评论评论的文章评论人评论发表时间评论ID评论内容图7 评论E-R实体图管理员管理员名公告管理访问密码在线人数管理友情链接管理图8
21、 管理E-R实体图分类分类名分类简写ID图9 帖子分类E-R实体图以上的这些E-R图的数据库实体关系为:用户与用户扩展为1:1的关系;用户与帖子之间的关系为1:n的关系;帖子与帖子分类之间的关系为n:1的关系;评论与帖子之间的关系为n:1的关系。(2) 数据表设计数据表中的数据字段和数据类型与相关属性 (1)用户信息表(UserInfo)如图10所示:图10 用户信息表视图 (2)用户信息扩展视图(UserInfo1)如图11所示:图11 用户信息扩展表视图(3)用户ID视图(UserID)如图12所示:图12 userID表视图(4)管理员数据表视图(admin)如图13所示:图13 adm
22、in表视图(5)帖子数据表视图(article)如图14所示:图14 article表视图(6)帖子分类数据表视图(articleCate)如图15所示:图15 articleCate表视图(7)评论数据表视图(comment)如图16所示:图16 comment表视图(8)友情链接数据表视图(friend)如图17所示:图17 friend表视图(3) 表数据1.用户资料数据表(UserInfo)如图18所示:图18 UserInfo表2.用户信息扩展表(UserInfo1)如图19所示:图19 UserInfo1表3.用户ID表(UserID)如图20所示:图20 UserId表4.帖子数
23、据(admin)如图21所示:图21 article表5.帖子分类(articleCate)如图22所示:图22 articleCate表6.评论数据(comment)如图23所示:图23 comment表五、详细设计(一)主页面为了提高页面的多样性和可读性,在首页增加了帖子的分类以及最新帖子,推荐帖子等的设置。当用户第一次浏览网站的时候会自己跳转到主页,例如图24所示:图24 主页主要的功能代码如下:public String intercept(ActionInvocation arg0) throws Exception ArticleDao ad=new ArticleDaoImpl(
24、);OtherDao od=new OtherDaoImpl();Gonggao g=(Gonggao) od.selectGonggao().get(0);List f=od.selectFriend();List top3=ad.selectArticleTop3(zyjl);List top31=ad.selectArticleTop3(qgyl);List news=ad.selectArticleTop7ByNew();List news1=ad.selectArticleTop7ByComment();List news2=ad.selectArticleTop7ByRecomme
25、nd();ServletActionContext.getRequest().setAttribute(top3, top3);ServletActionContext.getRequest().setAttribute(top31, top31);ServletActionContext.getRequest().setAttribute(news, news);ServletActionContext.getRequest().setAttribute(news1, news1);ServletActionContext.getRequest().setAttribute(news2, n
26、ews2);ServletActionContext.getRequest().setAttribute(gonggao, g);ServletActionContext.getRequest().setAttribute(friend, f);arg0.invoke();return OK;同时在主页这里你还可以以非用户身份查看帖子的信息,搜索帖子,还可以通过导航来搜索帖子。图25,图26,图27用来演示这些功能。图25 帖子信息主要的功能代码如下:a href=reback.jsp?articleaid=回复发帖返回列表imgalt=touxiangsrc=users/.jpg / 等级:
27、积分:0发表时间:分享收藏评分a href=reback.jsp?articleaid=回复評論 图26 帖子搜索这些基本的功能介绍完了之后,肯定想试试注册之后带来的乐趣了,下面介绍第二大块:用户模块介绍。(二)用户首先就是需要注册用户了,这是这类网站必不可少的功能,同样我们的网站也提供了这样的功能,下面就看看注册页面吧。如图28图28 注册页面主要的功能代码如下:Overridepublic String execute()System.out.println(users.getUsername();System.out.println(users.getPassword();System.
28、out.println(users.getPid();System.out.println(users.getSex();UserId ui=new UserId();UserInfo1 ui1=new UserInfo1();ui1.setUserInfo(users);users.setUserinfo1(ui1);ui.setUserInfo(users);RegeditUser ru=new RegeditUser();ru.save(users);ru.save1(ui);UserInfo1 ui2=new UserInfo1();ui2.setUsername(users.getU
29、sername();ui2.setUserlevel(0);try ru.save2(ui2); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();ServletActionContext.getRequest().getSession().setAttribute(user, users);return SUCCESS;虽然对于那些大型网站比较注册功能比较单一,但这也是可以实现注册的奥,这里采用了javascript技术,可以使用户注册的时候更加规范。注册之后用户就可以进行帖子的评论回复了,
30、同时也可以修改自己的信息奥。不过这里的用户信息修改就实现了两个功能,所以就比较逊色了。图29 用户信息界面实现代码:function changehead()var change=$(#changeHead);var str=+;change.html(str); function changehead1() var change1=$(#changeHead1); change1.html(邮箱:input name=email id=email value=/); function changeEmail() var data=$(#email).val(); $.post(users/u
31、serupdate,userupdate:data,callback) function callback(data) var change1=$(#changeHead1); change1.html(修改成功!请刷新。); 图30 帖子页面图31 评论之后的页面就这样按照上面的流程之后 就可以实现评论的功能。到这里,基本的功能差不多算是介绍完毕了,下面就需要来介绍后台界面了.(三)管理功能介绍对于后台来说,一般安全是最重要的,出于这个考虑,在实现功能的时候对后台的所有请求进行了过滤,从而达到了非法用户的非法请求。public void doFilter(ServletRequest req
32、,ServletResponse res,FilterChain chain)if(ServletActionContext.getRequest().getSession().getAttribute(admin) != null)try chain.doFilter(req, res); catch (IOException e) e.printStackTrace(); catch (ServletException e) e.printStackTrace();elsetry ServletActionContext.getResponse().sendRedirect(./admin
33、.jsp); catch (IOException e) e.printStackTrace();管理员登录之后就跳转到管理主页。在这里分成了6大块,分别是用户管理,帖子管理,评论管理,在线人数,其他功能以及版权所有。这里集中介绍前三大块,其他的可以通过演示来介绍。首先就是用户管理模块:它里面包括了用户管理,修改资料,和管理员信息三个模块。其中用户管理可以对用户进行集中的管理,包括删,改功能,需要强调的一点是,删除用户会把帖子内容也删除掉,所以尽量不要删除用户。其次就是帖子管理模块:它包括帖子的分类,帖子管理,帖子信息等功能。这里主要介绍帖子管理,帖子管理可以对帖子进行二次编辑,包括对帖子的加
34、精,推荐的操作,当然了删除也是必须有的。再次就是评论管理模块:管理员可以通过这个功能实现对于那些具有不好意义或者其他敏感类的评论进行管理。至于其他模块就不作说明了。六、功能测试(一)链接测试链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。(二)设计语言测试Web设计语言版本的差异可以引起客户端或服务器端的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言也要进行验证。(三)数据库测试在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误、输出错误。数据一致性错误主要是由于用户提交的信息不正确而造成的输出错误,主要是由网络速度或程序设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030口腔锥形束CT行业运行态势剖析及投资价值评估研究报告
- 中共桑植县委组织部2026年公开选调工作人员备考题库带答案详解
- 2025-2030中国表面处理市场供给预测分析与竞争战略规划研究报告
- 2025至2030中国大数据行业市场供需结构及投资发展前景分析报告
- 2025-2030塑料花市场投资前景分析及供需格局研究研究报告
- 塔里木大学2026专任教师公开招聘备考题库及答案详解参考
- 2025-2030中国磁性材料行业供需分析及应用领域规模建议研究报告
- 2026年武汉市硚口区某公立初中招聘初中数学教师备考题库及答案详解一套
- 2026年长兴县定向培养基层社区医生招生5人(招聘)备考题库附答案详解
- 2025至2030中国智能家居门控系统技术演进与应用场景研究报告
- 大仲马课件教学课件
- 2026年餐饮企业税务合规培训课件与发票管理风控方案
- 2025至2030尿素硝酸铵(UAN)行业产业运行态势及投资规划深度研究报告
- 集团公司年度经营状况分析报告
- 2025蜀道集团下属四川金通工程试验检测有限公司招聘18人考试参考题库附答案解析(夺冠)
- 2025年及未来5年市场数据中国蓖麻油行业投资潜力分析及行业发展趋势报告
- 浙江省台金七校联盟2025-2026学年高一上学期11月期中联考语文试题含答案
- 汽车网络与新媒体营销 教案 项目5-8 汽车直播营销-汽车网络与新媒体营销综合技能
- 2025年热科院笔试试题及答案
- T-CSF 0114-2025 城市绿地植物物种多样性评价规范
- 造价咨询方案的指导思想
评论
0/150
提交评论