基于SSH论坛社区系统设计
2018-09-17陈宇
陈宇
摘 要 随着JAVA的普及和流行,J2EE平台也在WEB开发中发挥着越来越大的作用,伴随其的各种新技术如雨后春笋般大量的涌出。为了更好的研究J2EE体系架构,本文采用了业界流行的 Struts、Hibernate和 Spring三种框架,实现了一个功能强大的高性能论坛社区,从而在实践中更深入的理解J2EE。
关键词 JAVA J2EE 论坛 系统设计 程序设计
中图分类号:TP393 文献标识码:A
1需求分析概述
SSH是Struts、Spring和Hibernate三种框架组合在一起的简称。本文主要目的就是用SSH实现一个高性能,功能强大的论坛社区。从而真正的将这三个框架运用在实际开发的过程中。
论坛的整体设计与实现是建立在J2EE多层框架基础上的,在做好需求的基础上,要求充分利用J2EE平台下的组件,利用J2EE平台的先进性,让实现充分滿足系统的总体设计,并让最后的系统展现出良好的性能。
在当今的信息时代,论坛已经成为信息系统一个重要组成部分。一个社区论坛需要完成以下基本功能,发帖,回帖,会员注册,修改已有的话题等。同时还要提供管理员管理的后台界面,管理员具有増加删除主题、管理已经注册的用户、选定版主、删除黑名単上用户、直接对帖子进行修改等功能。但是用传统的模式(如JSP+JavaBean)做出来的论坛也存在许多问题:
(1)系统难以维护:虽然有些论坛采用了MODEL2,但是老式论坛很少在持久层采用ORM的思想,这将导致持久层开发时间过长,增大系统开发成本,并且可移植性差等一系列问题。甚至有些系统仍然采用MODEL1来开发,那就更难以维护了。
(2)系统难以扩展:传统论坛业务逻辑与持久层的数据处理部分经常混在一起,很不清晰,这从某种程度上讲增大了系统扩展难度。当你想増加项新功能的时候,往往会被以前那些混合在一起的逻辑搞的不知如何下手。
(3)系统难以升级:老式论坛采用的有些技术已经落伍,而我们现在用的新型框架都是当今的主流,后面还有开源社区的大力支持,这也为以后系统升级带来了很大的便利。
(4)系统运行效率不高:由于层次的混乱和设计的不先进性,传统论坛存在一些先天性的缺陷,这导致它的运行效率不高,速度慢。
所以我们很有必要建立一种设计结构更合理,系统逻辑更清晰,性能更高的新型论坛。
2系统总体设计概述
从功能实现方面讲,该社区论坛主要有四个模块,权限管理模块、缓存设计模块、用户功能模块和管理员功能模块。
2.1权限管理模块概述
权限管理是该论坛中一个很重要的组成部分,采用Spring的Acegi实现。 Acegi实际上就是基于Spring的IoC机制产生的一种开源框架,后被Spring并入,成为Spring框架的一部分。
2.1.1角色授权管理
传统的基于角色的授权管理系统以角色为核心,实现对资源的统一管理,管理起来方便清晰。但是单一的角色授权也存在一些缺点,因为对权限的一些变动就可能需要增加新的角色,容易造成角色泛滥。
本文的主要角色有游客、普通用户、版主、管理员四种。每种角色对应的都有自己的权限,在分配角色的时候,实际上也就相当于将权限一起分配。如果需要额外的权限授予,就用管理员帐号登陆以后再直接进行授权分配。这样一来,一方面,系统中定义的角色显得简单、清晰,另一方面,直接为用户授权时也显得直观和简单,可以满足实际系统中用户的个性化权限需求。
2.1.2权限授权管理
单纯的使用角色—权限分配在上一节里面已经被认为是不适宜的,为了更好的进行权限管理,我们引入了权限授权管理。
权限授权管理就是说除了通过用户角色分配可以使用户获得权限外,管理员还可以直接对用户进行授权。这个时候,除了用户对应的本身角色所拥有的权限,它还会拥有管理员直接对它进行授权所得到的权限。
2.2 缓存设计模块概述
系统内存的使用量总是有一定限制的。在高负载、高压力的应用中最忌讳对内存的过多滥用。有效的使用缓存既可以降低内存的使用总量又可以提升整体应用的速度。
在大多数的应用服务程序中,用户请求处理的标准流程是将HTTP请求发送到Web服务器。之后服务器解析请求内容的动态页面,并且把访问数据库的请求发送到数据库服务器上在等待数据库返回结果后,整合整个页面并将结果返回。
当一个页面首次被访问的时候,此时缓存里面还没有该页面,那么缓存将会把此页面保存下来。第二次访问该页面的时候,因为缓存服务器里面已经有了该页面的缓存,就直接从缓存里面取出该页面,从而大大提高了访问速度。
2.3用户功能模块概述
用户功能模块主要是针对用户在论坛里面所具有的功能而设计的,一般情况下,用户应该具有下面几个功能:
(1)注册用户:用户注册是论坛必须具备的业务,只有注册的用户才能享受作为会员的权利,比如发主题帖子,上传或者下载共享资源等。在用户注册的时候对必填信息和已填信息格式要做检测,如果不符合要求需要给出报错提示。
(2)登录系统:登陆时候要验证用户名和密码,如果都吻合才能进入登陆状态,如果验证不成功将提示用户重新输入。
(3)管理用户自己的信息:包括用户的详细资料,更改登陆密码等等。需要登陆以后才能更改。
(4)浏览论坛:被浏览内容设置一定的级别限制,没有登陆的用户可以以游客的身份浏览论坛,但是有些内容会看不到。
(5)发表主题帖子:用户登陆以后,可以在自己喜欢的版面发表自己的主题。游客不能发。
(6)回复话题:登陆用户看见自己想回的主题可以回复,没有登陆的用户不允许进行回复。
(7)版主功能:如果用戶被管理员选为版主,那么就拥有版主功能,版主可以在自己的版面对主题进行管理,觉得好的主题可以置顶,设置为精华帖。同时可以在本版面置公告和通知等功能。
2.4管理员功能模块概述
管理员模块针对的是管理功能,管理员做为整个系统的管理者,对系统的维护具有举足轻重的作用。详细的功能如下:
(1)设置论坛基本信息:如论坛名称,论坛网址,站点地址,站长邮箱等等。
(2)打开或者关闭论坛:如果论坛需要维护或者因某些原因需要停办,则管理员有权利将该论坛关闭。
(3)封锁某些IP或者过滤某些不雅文字:有些人在社区发表一些比较不文雅或者政治敏感的话题,为避免引起不必要的麻烦,管理员可以封锁这些IP,禁止它们进入论坛。
(4)制定发帖子的规范:比如文章的长度,标题最大字数等等。
(5)用户授权:用户里面设置等级和积分。到达一定积分以后,管理员有权授予用户版主的称号,版主可以协助管理员管理社区。
3系统功能分析
论坛本质上是为了用户服务的,从用户的一次完整的使用过程去分析论坛更能直观的反映出论坛的功能。
用户登陆成功后的页面左边部分是导航条,右边部分是个人信息管理的一些链接和社区里面部分热帖及公告、广告等信息的显示。
该页面有很多链接,用户点击以后就可以实现对应的功能。
(1)个人信息管理功能:该块主要实现对用户自身信息功能的管理。用户登陆以后可以修改自己的信息,比如呢称、通讯方式、联系地址等等。同时用户还可以编辑自己的好友。
(2)社区管理功能:左边导航条里面有显示,非版主点击无效,版主点击以后进入社区管理板块,在这里提供添加社区厂告、通知,添加黑名单等功能。
(3)浏览社区功能:点击导航条内的二级主题,就可以进入相应的社区,在社区里面,需要提供用户回复帖子和浏览帖子的功能,对于版主,还需要提供版主管理帖子的功能,比如版主能够将某一帖子置顶、锁定、设为精华帖、删除等等。
(4)社区管理功能:这是版主才有的功能,在这个版块里面,各个版主可以对自己所管的社区进行管理。提供添加公告、系统黑名单、添加广告和社区活动等功能。
(5)统计功能:用户可以通过此功能,知道当前在线人数等信息。
用户和管理员的功能的综合,即是该系统功能的主体,在实际的应用中,为了满足使用者的要求,在技术和支出允许的情况下,还需要对系统做不断的修改和增强,使它能够更快更好的满足用户的要求。
4小结
本文用SSH多层框架实现了一个功能比较完善的论坛。并对原有的各框架进行了一些扩展和修改以便于更好的提高系统的性能。SSH多层框架的功能还是很强大的,例如Hibernate的延迟加载和缓存功能,Spring的声明式事务管理功能和面向切面功能,Acegi的权限管理等等,充分的利用这些功能,系統会越加完善。同时还使用 OSCache框架实现了系统的缓存功能,进一步提高了系统性能。
参考文献
[1] 寇毅,吴力文.基于MVC设计模式的Struts框架的应用方法[J].计算机应用,2003,23(11):91-93.
[2] 陈天河.STRUTS,HIBERNATE,SPRING集成开发宝典[M].电子工业出版社,2006.
[3] 涂智,李昊,袁理.基于J2EE的客运信息管理系统数据持久层的JDBC解决方案[J].系统工程,2006(10).