1、LeafBBS系统的设计与实现,说明: 1.需本答辩稿配套的程序及论文,可以访问 下载 2.有什么不明白的地方,可以联系作者本人QQ:513681372,主要内容,项目背景简介 系统的设计 系统的实现 系统测试 结论 致谢,项目背景 项目目的与意义,一、项目背景简介,1.课题背景简介,随着Internet技术的不断发展,以及用户群爆炸性地增长,网络不再仅仅是信息的被动获取来源,更成为人们探讨间题、交换观点的场所,其中,网上论坛扮演了极其重要的角色 自网上论坛诞生20多年以来,随着Web技术的发展,己经由原来简单的电子公告板系统发展为功能丰富的网上论坛和虚拟社区模式。各种论坛随着网络迅速发展,
2、 影响和改变着我们的生活,2.项目目的与意义,由于国内很多使用的BBS架站软件,都是从国外引进的,因此没有必要的中文说明。虽然一些热心的站长翻译了一些资料,但是仅靠这些是远远不够的。另外,有些站台的设立是相互抄袭,所以在结构上难免有雷同之处。 而国内自己开发的BBS基本上都是处于最原始的JSP MODEL1模式, 这种模式是控制层与表示层合二为一,虽然开发简单,但是拥有很差的扩展性,可维护性,这样极大的限制了BBS站点的扩展,于是本文提出了目前比较流行的,基于MVC模式的S.S.H框架(Sturts+Spring+hibernate)的BBS论坛,本套论坛的优点在于它具有强大的可扩展性和可维护
3、性,非常适合网民创建自己的中小型BBS论坛!,二、系统的设计,系统整体设计 功能模块设计 数据模型图(E-R图) 数据库表设计,1.系统整体设计,系统在总体的架构设计上,决定采用S.S.H框架 S.S.H框架是J2EE应用中struts+spring+hibernate三大免费开源框架的结合使用.它可以看成工具,也是中间件。他是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts属于MVC框架,关键是要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理
4、有一个总体的了解。而spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等.,1.系统整体设计,系统很据S.S.H框架的特点,本系统会使用四层结构,这样做的优点是 可以分层开发,访问数据库与业务逻辑实现能够分开。 提高代码的复用,2.功能模块设计,3.数据模型图(E-R图),4.数据库设计,leafbbs_userinfo 用户基本资料表 leafbbs_userdetai 用户详细信息表 leafbbs_forum 论坛文章表 leafbbs_board 论坛版区表 leafbbs_confi
5、g 论坛初始化信息表,4.数据库设计(论坛文章表),4.数据库设计(论坛文章表),三、系统的实现,开发环境 组件设计 用户模块实现 帖子模块实现 后台管理模块实现,1.开发环境,开发环境: Windows 2000NT TomCat6.0 JDK1.5 硬件实现: Pentium2.4G 1G内存 80G硬盘 开发语言: Java 数 据 库: MySQL 开发工具: MyEclipse5.1,2.组件设计,在整个系统中,为了解决诸如中文显示乱码此类的问题,本系统需要设计一些组件,来解决相关的问题.过滤器组件 权限管理组件 自定义JSP标签组件,2.组件设计(过滤器组件),Java(包括JSP
6、)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码,3.用户模块实现,在会员模块的设计中,首先根据写好的测试JSP网页,完成业务逻辑层的相应action类的编写,之后在通过具体的需要,编写相应的数据库访问DAO.在一切结束之后,从DAO和业务逻辑类中抽象出接口,通过spring的IOC对接口进行对象注入.,3.用户模块实现,在模块的设计过程中,遇到的难点是在注册时使用的AJAX异步传输,来判断用户名是否被占用.AJAX技术是一个基于Javascript脚本语言的新技术,目
7、前对这种技术的使用还不是很多,但通过反复的调试,逐渐的掌握了AJAX的要点.,3.用户模块实现,当用户在登录的时候,会有一个验证码的文本框,而验证码的实现是通过访问servlet技术实现的,在打开登录界面时, servlet会自动向首页发送一组图片,并且发送一个相应存放数字的session,当用户提交信息时,系统就会在session中提取数字并和用户的数字进行比较,错误则会弹出错误信息.,3.用户模块实现,当用户在登录成功后,或者选择游客模式进入论坛时,会跳转到论坛的主界面,主界面的实现主要是通过HTML的 标记,将页面划分成两个部分,左面的部分是用户的操作框,右面是论坛的信息部分.已登录的用
8、户可以通过左面的操作框来对自己的一些资料进行修改,也可以选择退出等其他操作.,3.用户模块实现(程序流程图),4.帖子模块的实现(程序流程图),YN,5.后台管理模块的实现,后台管理模块是管理员对论坛进行管理的平台,在此模块实现的过程中,最重要的一点就是权限的控制,只有管理员的身份才可以对此模块进行操作,权限的控制已经交给了控制组件进行完成.,四、系统测试,黑盒测试首先对各个模块进行黑盒测试,在各种条件下运行模块是否能正常运行,比如在登录时,输入空白用户名等等. 模块接口测试在黑盒测试完成的情况下,进行模块接口测试, 模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下,其他测
9、试才有意义。 模块接口测试,本系统使用的是MyEclipse的测试工具进行测试,在IDE与TomCat连接好后,向TomCat服务器中部署LeafBBS系统,部署成功后,即可按照步骤,对系统进行模块接口测试 集成测试逐步把各个模块集成在一起。首先将模块用户模块和帖子模块集成在一起,再将后台管理模块集成起来。之后再将用户模块和后台管理模块集成在一起,再加上帖子模块.,四、系统测试,五、结论,LeafBBS系统在不断的设计更改过程中,逐渐的成熟。在编写的最后阶段中,参考了一些设计模式,在逻辑代码和数据库连接DAO中抽象出了若干接口,并对其进行了对象的依赖注入,大大的减少了模块之间的耦合,使系统具有很高的灵活性和可维护性,这是LeafBBS系统最大的优点.另外在系统的另一个优点就是HTML同步传输和AJAX异步传输技术的结合使用,既减轻了服务器的负担,也加快了用户的访问效率.当然LeafBBS系统也存在很多不足的地方,比如用户的权限判断过于简单,安全性低,希望在今后的学习中,逐步的进行改进.,六、致谢,感谢我的导师 高岩老师对我的帮助和悉心的指导,老师在我的设计和论文中给了我很多帮助,在此表示深深的感谢感谢答辩组老师对本系统帮助并指导, 致以谢意 !,