基于J2EE的Java论坛交流系统_第1页
基于J2EE的Java论坛交流系统_第2页
基于J2EE的Java论坛交流系统_第3页
基于J2EE的Java论坛交流系统_第4页
基于J2EE的Java论坛交流系统_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

毕业 论文 (设计 ) 题 目 基于 J2EE 的 Java 论坛交流系统 学生姓名 周 炎 学 号 20111336071 学 院 信息与控制学院 专 业 自 动 化 指导教师 申 晓 宁 二一五 年 五 月 五 日 目 录 1.引言 . 1 1.1 研究背景及目的 . 1 1.2 国内外 BBS论坛系统开发现状 . 1 1.3 本文主要工作 . 2 2.论坛概述 . 2 2.1 需求分析 . 3 2.2 论坛目标 . 3 3.开发软件介绍及基本原理 . 3 3.1 开发环境 . 3 3.2 技术平台简介 . 4 3.2.1 平台结构选择 . 4 3.2.2 Tomcat服务器简介 . 5 3.2.3 MySQL数据库简介 . 5 3.2.4 MyEclipse开发工具 . 6 3.2.5 J2EE的 SSH框架整合技术 . 7 4.论坛系统设计与调试 . 10 4.1 论坛总体设计 . 10 4.1.1 前台功能结构 . 10 4.1.2 后台功能结构 . 11 4.1.3 系统流程图 . 11 4.2 论坛前台管理 . 12 4.2.1登录模块 . 12 4.2.2注册模块 . 14 4.2.3 区域模块 . 16 4.2.4发帖模块 . 17 4.2.5回帖模块 . 18 4.3论坛后台管理 . 19 4.3.1角色管理 . 19 4.3.2 版块管理 . 21 4.3.3小版块管理 . 22 4.3.4帖子管理 . 24 5.总结 . 26 参考文献 . 26 致 谢 . 28 附 录 . 29 基于 J2EE的 Java技术交流论坛 周炎 南京信息工程大学信息与控制学院 ,江苏 南京 210044 摘要 : 在线论坛系统给人们之间的交流 、 讨论带来了极大的便利。 本 文设计的 是基于 Struts, Spring,Hibernate, Mysql技术 实现的 论坛系统 ,主要介绍了如何显示 论坛各区域功能,区域中的 各个版块的内容,版块中的各个主题,查看主题中的帖子,查看精华或者置顶帖,用户注册,用户登录,进入后台,区域管理,大板块管理,小版块管理,用户管理,帖子管理 等功能, 经过各个功能的调试和运行,本系 统运行过程流畅,运行结果正确,数据安全可靠 。 通过这个论坛 可以扩展人们交流讨论的方式 ,就某一问题 自由 表达自己的见地 。 关键词 : 在线交流 ,设计框架 ,MYSQL数据库 ,论坛 Java technology exchange forum based on J2EE Zhou Yan School of information and control, NUIST, Nanjing 210044, China Abstract: Online forum system for communication between people, has brought great convenience to discuss This forum system is based on Struts, Spring, Hibernate, Mysql technology, this article describes how to display the contents of the forum of the regional features, the area of each section, section of each topic, view the topic in the post or the topic in the top posts, user registration, user login, getting into the background, regional management, management of large plates, small area management, user management,message management, and other functions, through commissioning and operation of each function, the process of the present system is running smoothly and correctly, and the data is safe and reliable Through this forum we can expand the way people communicate discussion on a question to freely express their own insight. Key words: Online communication, design framework, MYSQL database, BBS 1 1. 引言 1.1 研究背景及目的 在实际生活中, 用户 往往 想就自己的专业和爱好 同 其他的用户进行及时专业的交流 , 论坛 BBS 就是人们使用较多的途径之一。 BBS 可以作为用户与其他人沟通 ,进行内外信息交流的 窗口 , 深受广大用户的欢迎 。有了论坛, 用户 就可以在网络 中 进行 实时讨论 ,这样 大大 方便了 人们的交流与沟通 , 所以 本文 选择开发 BBS论坛这一课题 。 1.2 国内外 BBS论坛系统开发现状 1978 年,最早的 BBS 系统在芝加哥被开发出来,系统使用 8080 芯片 , 系统 一 出现便 得到广泛应用 。而国内开始出现第一个 BBS站,大约始于 1991年 1。 早期的 BBS 只能是发表一些文本形式的信息,如股票价格,商业信息等 2,此时的 BBS的作用类似于校园中的简单化的布告板 ,区别就在于 BBS是通过电 脑进行消息的获取与传播。随着 科技 的高速发展,个人计算机开始 普及,这就促使人们去尝试将 BBS向个人计算机 方向转移 3,此后, BBS 开始得到普及 , 到 1996 年 , BBS 更是以一种惊人的速度飞速发展 起来 。目前,在各行各业都有 BBS 论坛的用户 4,包括一直以来的计算机爱好者,还包括商用 BBS操作者及其它利益团 也通过 BBS论坛系统来和别人互动交流。 目前 使 用 较为广泛 的 BBS论坛 系统 有 PHPWind , Discuz和基于 Java语言 的 BBS论坛系统,它们各有特点, 正是这几种论坛系统的开发与研究, 使得整个 BBS系统 技术 日益完善 ,BBS功能更加强大先进。 PHPWind是一款使用 超文本预处理 语言 即 PHP编写 ,通过使用 MySQL数据库 保存数据 的论坛软件系统, 在国内比较流行 。 PHPWind 侧重于开发电子商务,从而研发出了许多单核多模式的产品。 与其他论坛系统不同的是, PHPWind 更侧重于强化社区的电子商务应用和媒体价值。 Discuz是另一款具有通用性的社区论坛系统,而且对于用户来说,只需进行傻瓜式的简单安装与设置,就能在互联网上 搭建 起来 。 这样的 论坛服务负载能力强、功能完善且高度可定制。 Discuz论坛系统 基础架构是 MySQL+PHP,这种架构模式灵活多变,简单快捷,适用于多种服务器 , 可移植性较高,是一种灵活高 效 的论坛系统。 Discuz经过 长期创新性开发, 技术人员 掌握了一整套从算法,数据结构到产品安全 性 方面的领先技术 , 使得 Discuz无论在稳 2 定性,负载能力,安全保障等方面都居于国内外同类产品领先地位 5。 基于 Java开发的 BBS论坛系统,使用 JavaWeb技术开发,可以跨平台 , 使用户 在不 进行任何编程的情况下,只经过简单的安装、 调试 ,就可以搭建起功能完善的论坛服务 , 使 论坛正常运行起来 。 这三种论坛开发模式各有特点,总结来说 , Discuz更容易解决技术问题,它支持页面 自我设计 ,不像 PHPWind需要 修改模板代码,从这点来说 , Discuz更适 合 非专业技术人员使用 ,只需要用户能够正常使用就可以 。而 PHPWind更类似于 社区型的电子商务。 Discuz和 PHPWind两大论坛系统 的 二次开发比较困难。而 Java开发的论坛系统功能强大且稳定,能够提供抽象的接口、高效的论坛引擎以及易于使用的管理界面,同时具有完全的权限控制、高性能、可自定义的用户接口、安全、支持多数据库等特性 6。 1.3 本文主要工作 一个论坛系统应该是用户之间交流自己看法,与其他人沟通交流的一个平台。论坛的首要功能是发帖,通过发帖,用户可以表达自己对某一主题的观点与看法。其次,是 能够让其他人回帖。为了区别用户和游客,提供登录和注册功能,来保存已注册用户的信息。只有真正在系统中注册过的用户才能回帖,未进行注册的用户只能以游客身份浏览内容,不能对论坛进行任何操作。 论坛系统是基于 Struts, Spring, Hibernate, Mysql 技术实现的,本文主要介绍了如何显示论坛各区域功能,区域中的各个版块的内容,版块中的各个主题,查看主题中的帖子,查看精华或者置顶帖,用户注册,用户登录,进入后台,区域管理,大板块管理,小版块管理,用户管理,帖子管理等功能 。 设计 BBS 论坛系统 最主 要的就是如何 在界面中显示论坛数据以及论坛文字 。 在设计过程中, 用户界面 UI 应该可以凸显特色,使用要求尽可能低,比较容易操作,界面美观友好 。代码 逻辑正确 , 功能实现简单快捷,代码可读性高,执行效率比较高效。数据部分 要求正确不会被丢失 , 数据查询显示准确无误,避免数据库的重复使用。 2. 论坛概述 本 论坛是基于 Spring, Struts, Hibernate框架实现的,采用 B/S模式,前台采用应用较为广泛的 JSP、 HTML、 Ajax等前端技术,服务器端采用开源的 Tomcat服务器,数据库采用Mysql技术,功能较为强大,而且成本较 低。 3 2.1 需求分析 如上文所述 , 论坛的首要功能是发帖 ; 其次,是能够让其他人回帖。为了区别用户和游客,提供登录和注册功能,来保存已注册用户的信息。只有真正在系统中注册过的用户才能回帖,未进行注册的用户只能以游客身份浏览内容,不能对论坛进行任何操作。 根据以上 的需求分析, BBS 论坛需要 根据用户角色类型分类,为了更好管理这些角色,论坛系统需要一个统一的后台管理 。 (1)系统前台功能: 显示论坛 区域 ,显示各 区域 中的主题,显示 各 个主题下的帖子, 对 帖子进行基础操作,用户注册,用户登录,修改用户资料 ; (2)系统后台功能:进入后台、论坛 区域 管理、 论坛 主题管理、 论坛 帖子管理、用户管理 。 2.2 论坛目标 本系统在设计时 有下列这些 目标: (1)界面设计友好, 数据 信息 操作 快捷、准确,数据存储 过程不会丢失 ; (2) 分页显示系统中的各个主题下所有的帖子 ; (3) 用户可以发表 某一主题的 帖子 ; (4)提供登录模块, 保存用户信息以及管理员登录 ; (5) 版主可以对自己版块的帖子进行操作 ; (6)系统 易维护、易操作 ; (7)系统运行稳定安全。 3. 开发 软件介绍及基本原理 3.1 开发环境 在开发此论坛的时候,需要 能够支持 下面的软件环境 : 服务器端: 操作系统: Windows; Web服务器: Tomcat 7.0; Java开发包: JDK 1.7, Spring3.0, Struts2.3,Hibernate3.6; 4 数据库: Mysql; 浏览器: IE7.0及以上 ; 分辨率:最佳效果为 1024 768像素。 客户端: 浏览器: IE7.0及以上 ; 分辨率:最佳效果为 1024 768像素。 3.2 技术平台简介 3.2.1 平台结构选择 J2EE ,即 Java2平台企业版( Java 2 Platform, Enterprise Edition) 7,是一套 全新的 技术架构,包含许多组件, J2EE核心是一组技术规范与指南 8,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循 J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用 的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。 通过使用这种全新的技术框架, 可 以 简 化规范系统的开发与部署,提高系统的可移植性、安全性与再用价值。 目前系统平台的 设计 体系结构主要有 客户端 /服务器端 C/S( Client/Server)结构和 浏览器 /服务器端 B/S( Brower/Server)结构 这两种结构 可用于应用系统的开发 。 C/S 结构,是软件系统 常用 体系结构,可以充分利用硬件环境的优势, 分担系统运行的任务, 降低了系统 的 开销, 大大提升 系统的效率。 B/S 结构 , 是一次性 完成 的开发,能实现不同的人员,从不同的地点,以不同的接入 方式 访问和操作共同的数据库;它能有效地保护平台 数据 和管理访问权限,服务器数据库也很安全。 在 Java语言出现的情况下,大大凸显了 Java语言的可移植性的特点,使得以这种模式设计的系统更加灵活多变,方便快捷 。 传统的 C/S体系结构虽 然采用的是开放模式, 但是用户无法对系统进行修改,设计,仅仅对开发进行开放明显不满足人们的需求 , 而且 现在 产品的更新换代十分快, 几乎无时无刻不在发生变化, 使得传统的 C/S体系设计的系统 很难适应百台电脑以上局域网用户同时使用,并且 这种 体系结构 相对而言 代价高,效率低。 之后,伴随着大量 C/S结构体系的使用,这种结构的缺点也慢慢全部暴露出来,为了解决这些问题,出现了 B/S结构体系 ,这种体系结构是对 C/S结构体系的一种完善和提升 。在这种结构 体系中 ,用户通过 自带 浏览器访问服务器,在前台界面中也能进行一些简单的业务处理,这样 大大减少了服务器运行的负担,浏览器服务器能够同时对客户的请求作出相应的处理,能够提升系统的运行效率,节约了开发成本。 5 因此本系统采用了 B/S结构 来开发 BBS论坛系统 。 3.2.2 Tomcat服务器简介 Tomcat是 Apache 软件基金会( Apache Software Foundation)的 Jakarta 项目中的一个核心项目 9, 作为 Java领域最著名的 免费开放源代码的 Web应用 服务器,简单、易用、稳定性好 ,并且用途广泛。 Tomcat 属于轻量级应用服务器, 被广泛适用于中小型以及一些不 需要高并发的项目当中 ,是开发和调试 JSP 程序的 不二之选 。 在使用 Tomcat 服务器开发 Web 应用前期,配置架设好 Apache 服务器之后就能够利用这个服务器进行 HTML(超级文本标记语言 )页面的访问 。而 Tamcat服务器可以看作是 Apache服务器的功能扩展服务器,但是其基础还是 Apache服务器,不同的只是 Tomcat可以作为独立的服务器单独使用。 架设配置好服务器之后, Apache 能够访问 HTML 页面,而 Tomcat 则不仅可以访问 HTML页面 ,更强大的是 由于 Tomcat包含了 JSP和 Servlet容器, 所以 Tomcat还能访问 JSP页面和 Servlet程序, 并且 Tomcat的默认模式 就是 Servlet容器 。 而这两者中 Apache服务器的处理 HTML页面的能力更强于 Tomcat服务器 。 Tomcat服务器的目录结构: /bin:存放 windows或 Linux平台上启动和关闭 Tomcat的脚本文件 ; /conf: 存放 Tomcat的配置文件 ; /doc:存放 Tomcat文档 ; /server:包含三个子目录: classes、 lib和 webapps; /server/lib: 包含 Tomcat服务器中所有使用到的 JAR文件 ; /server/webapps:存放 Tomcat自带的两个 WEB应用 admin应用和 manager应用 ; /common/lib:存放 Tomcat服务器以及所有 web应用都可以访问的 jar文件 ; /shared/lib:存放所有 web应用都可以访问的 jar文件(但是不能被 Tomcat服务器访问) ; /logs:存放 Tomcat执行时的日志文件 ; /src:存放 Tomcat的源代码 ; /webapps: Tomcat的主要 Web发布目录,默认情况下把 Web应用文件放于此目录 ; /work: 存放经过编译之后的 类 文件 。 3.2.3 MySQL数据库简介 MySQL是由瑞典 MySQL AB公司开发的一种对象关系型数据库管理系统 10,作为最流行的 6 对象关系型数据库管理系统, MySQL在 WEB应用方面更是完全占据上风。在 Mysql数据库中,相互关联的数据分别保存在不同的表中,而不是像仓库一样将数据很杂乱的保存起来,这样很有效的增加了数据的保存和读写速度,这样就提高了数据存储的灵活性。 MySQL 使用的数据操作语言是 SQL语言,这种语言是访问数据库最常用 的标准语言,具有广泛的使用基础,所以这就降低了 MySQL数据库的使用门槛,这更 是 促进了 MySQL数据库的流行。 MySQL 软件采用社区版和企业版的分类,企业版的 MySQL 更加稳定,社区版虽然不够稳定,但包含了 MySQL所有的技术和最新功能。由于 MySQL占用空间较小、运行速度较快、使用成本低而且完全开放源代码,被各中小型网站广泛使用,其社区版更是能完美支持 PHP和Apache,这三者结合能够搭建起良好的开发环境。 与其他大型数据库相比, MySQL 虽然有不足之处,但是瑕不掩瑜,丝毫影响不了 MySQL的受欢 迎程度。虽然 Oracle、 SQL Server这样的大型数据库功能十分强大,但是其繁琐的操作以及高昂的使用费用往往令人望而却步。对于个人或者小型企业而言,开源的 MySQL已经完全能够满足他们的开发要求,完全没有必要花费大量的成本使用那些 大型数据库,这样可以很显著地减少开发成本。 使用 Apache服务器, MySQL数据库, PHP服务器脚本解释器的组合就可以免费搭建起稳定,可良好运行的网站系统。 3.2.4 MyEclipse开发工具 MyEclipse企业级工作平台(简称 MyEclipse)是对 开源集成 环境 Eclipse IDE的扩展,利用 MyEclipse不仅可以进行 JavaEE的开发,数据库的操作,更能实现编码、调试、测试以及发布一体化,不需要开发者在不同的开发工具间转换,这样极大提高了开发效率。更加让人欣喜的是, MyEclipse凭借其功能强大的集成开发环境,完整支持 JavaScript, Struts,Spring, Hibernate, HTML等前台后台技术 。 MyEclipse 开发工具是一个非常强大的可用于 JavaSE, JavaEE 等框架的插件集合,MyEclipse 能够较好的支持各种开源产品。 在 J2EE 开发过程中应用较为广泛的 Servlet,jQuery,JSP,Struts,Spring,Hibernate,JDBC, Ajax 等技术都能在 MyEclipse 中得到充分展示,毫不夸张地说, MyEclipse几乎 是 包括了当下所有主流开源产品 杰出的开发工具 ,因此,MyEclipse应用十分广泛 , 主要 适用于以下几种开发类型: (1).企业级开发 MyEclipse为完成工作提供了智能的企业工具。 Java EE库 极其强大的 功能 实现 是企业级项目 开发 的基础, MyEclipse支持部署到几十个企业应用 服务器进行快速检测 的功能 。 (2).Web开发 MyEcilpse能够 快速添加技术功能到 Web项目 中, 编码和配置 通过使用可视化编辑器实现 , 简单快捷, 并且 能够 在多种应用服 务器上 单元 测试 需要的 任务。 (3).云开发 7 不需要缓存, 能够迅速地创建和 连接云, 能够探索和连接服务 。 (4).移动开发 MyEclipse支持使用 HTML, java等语言 进行编码,使用移动工具创建拥有良好编码的应用, 并 可以 嵌入到原生 iOSAPP 和 AndroidAPP应用中。 由于 MyEclipse 对于开发者开源,通 过这么多年开发者的共同研发,越来越多使用的MyEclipse 插件被开发出来,这大大方便了其他开发者的工作, 而且这些功能强大的插件也是开源的,这更加促进了 MyEclipse的应用。随着这几年的高速发展,即使是开发经验不足的新的开发人员,经过短暂的学习也能够很快掌握 MyEclipse工具的使用。 3.2.5 J2EE的 SSH框架整合技术 (1).框架原理 使用 Java的 web技术设计一个有价值,值得开发的 web应用是一件有挑战的事。 在开发过程中,开发者需要考虑很多方面的问题,比如如何创建接口,如何保持数据 准确性和安全性,如何实现用户的需求,如何让算法更高效。 而每一层又需要实现那些技术? 如何让每一层都相互独立,互不影响? 应用应该如何处理容器一级的服务 , 比如事务? 在为一个应用架设框架之前 又 需要考虑很多问题,首先,一个良好的框架应该可以减少开发人员的工作量,从根本上减少或者杜绝程序的重复开发,让开发人员能够将更多的精力专注于业务逻辑的设计之中;另外,这个框架应该能够进行扩展,能够进行内部定制,并且可以被其用户支持和优化。使用框架通常能够较快的解决问题,但是为了框架具有更加灵活的可移植性,这就要求框架的每 一层是分隔开的,当每层相对独立,仅仅通过暴露的接口进行通信时,一些错误或者逻辑方面的失误就不会对整个框架产生影响,只会对某一关联较多的层产生较大影响。 经过合理地 分层, 使 每一层 又 可以 运 用其他的框架 ,这样的大大增加了这种模式下的框架的兼容性。 如何结合几个著名的框架来达到松散耦合 ? 如何设计架构 ? 如何达到各个层次的一致性设计 ? 想要解决这些问题 , 就是 要 将框架整合起来,让每一层与其它层分离,以一种接口的方式连接各层,这样就不用细致知道每一层的设计细节,而仅仅需要知道这一层的实际功能就可以。 对于 J2EE中的 SSH框架 而言, 整合 这三种框架技术,对于各种功能可以使用不同的框架技术: 对表现层,使用 Struts 框架 ;业务层使用 Spring 框架 ;对于持久层 使用的是Hibernate 框架 。 在这几种框架技术之中,如果需 要变换其中的一到两种框架,可以直接变换而不用担心影响其他框架,这样很大的提升了框架的灵活性。 J2EE的 SSH框架技术是集成了 Struts, Spring, Hibernate三大技术的 Web应用开发框架,深受 JavaWeb开发者的欢迎 ,运用十分广泛。 整合的 SSH框架系统可以从功能上 分为四层:实体 模型 层、表示层、服务 层和数据持久层,通过这样的分层可以帮助开发人员从功能上清晰区别各层,大大方便了 Web应用的开发 、 8 维护和移植。 整合的 SSH框架中的 Struts框架负责将 MVC分隔开,作为控制器将实体模型层和视图表示层有效串联起来,利用 Struts可以控制业务的跳转,利用 Spring可以管理好各项配置的资源,利用 Hibernate可以对数据做持久化操作,这样 Struts、 Spring和 Hibernate各司其职,相互合作,共同搭建起了 Web应用的核心模块。 使用整合的 SSH框架技术开发 Web应用的具体实行方法是:利用面向对象 的思想构建业务模型,将这些模型变为最基本的 Java 类的对象 11,之后通过数据访问对象接口,在Hibernate中给出这些数据访问对象的实现方法,用 Hibernate中的这些实现方法完成 Java对象与数据库中数据的关联 。最后,通过 Spring 管理 Struts 和 Hibernate。 采用这样的设计框架,不仅实现了 MVC思想中的视图,控制器和模型的分离,更实现了数据持久层与实际业务的分离,而且,无论前台如何修改,模型层都不要修改,数据库数据的变动也不会影响前台的显示,通过这样的解耦合,大大提升了系统的灵活性和可 复用性,有利于团队并行开发,提升开发效率。 因此,本文选择使用 Struts+Spring+Hibernate框架 在 MyEclipse环境中 开发。 图 3.1显示了框架被整合起来时,从最高层次看到的视图 12。 图 3.1 框架整合图 从图中我们可以看到 ,展现层 ,业务层和数据持久层相互之间并没有直接相联系,而是通过类似于 Spring这样的技术框架 以控制反转 IoC(Inversion of Control)作为连接桥梁,通过实体业务类或者事务管理等方式管理 Struts 的 Action 或者各种配置文件 ,以及Hibernate的持久化数据。 (2).web应用层 许多设计良好的 web 应用,可以被按职责分为 表现层、持久层、业务层、和领域模型层四层 。 每一个层次都有 其独特的职责,不能把各自的功能与其它层次相混合 13。每一个应用层都与其他应用成分隔开,尽量减少耦合,从而减少错 误的连接 ,但允许使用接口在 各个 层间进行通信。 I. 表现层 (Struts) 一个传统的 web 应用最外层的就是表现层, struts 就是代表着表现层的作用 。下面就 9 是 Struts 的职责所在: (1).管理用户 的请求和响应 14; (2).提供一个控制起来将调用委托到业务逻辑和其他上游处理 ; (3).在 struts action中 处理 抛出的例外 ; (4).组装可以在视图中表现的模型对象 ; (5).执行 UI 校验 。 下面是不应该和 struts关联的事情: (1).直接和数据库交互,比如 JDBC 调用 ; (2).与应用相关的业务逻辑和校验 ; (3).事务管理 。 如果在表现层中包含了以上这几种类型的业务,则会影响表现层与其它层之间的解耦合关系,是表现层与其它层之间的耦合失效,并增加 了系统的维护负担。 II. 持久层 (Hibernate) Web 应用的数据部分使用 对象关系映射 (ORM) 框架。 Hibernate 可以连接面向对象 OO和对象关系型数据 ORM,使用 Hibernate 能够使开发人员 不用写繁琐复杂的 SQL 语句 ,将更多精力放在逻辑开发之中。 下面就是 Hibernate的职责所在 : (1)查询关系信息到对象中 ; (2)存储、更新和删除存储在数据库中的信息 ; (3)高级的 ORM框架支持继承,多态,支持父类子类关系 15。 下面是 应该在持久层避免的一些事情: (1)业务逻辑应该置于应用的更高层中。这里只允许数据访问方法 ; (2)持久层中的逻辑不能与表现层中的逻辑相互耦合,相互影响。避免表现层中的组件直接进行数据访问 和通信。 III. 业务层 (Spring) 常规的 WEB 应用中间件一般为服务层和业务层 。 在业务层中,使用最为广泛的两种框架分别是 Spring和 PicoContainer。在 Spring框架中,通过控制反转 (Inversion of Control),也就是常说的依赖注入 (Dependency Injection)来针对命名配置 Bean的 Setter方法实现注入。此外, Spring还有一种更加高级的构造器注入 (Constructor Injection)来代替设置 Bean的 Setter Injection。可以通过设置 XML文件来连接这些对象,这种 XML文件中包含了这些服务对象的引用,比如对象工厂,数据访问对象等。 业务层应该负责下面的问题: (1).处理应用的业务逻辑和业务校验 ; (2).管理事务 ; (3).允许与其他层进行交互的接口 ; (4).管理业 务级对象之间的依赖性 ; (5).连接表现层和持久层,使 他们不会相互影响 ; 10 (6).从表现层暴露上下文给业务层以获得业务服务 ; (7).管理 表现层和业务层的逻辑,功能是否能够正确实现 。 IV. 领域模型层( VO) 最后, 为了解决实际的 web应用问题,需要用对象来代表实际业务,这就产生了领域模型层。在这一层中,数据访问对象 (DAO)能够对这一层对象进行访问,其它层无法进行,大大减少了耦合。 在这一层中,这种模型是开发者能够以 面向对象的 风格很自然的处理所需要的业务,减少了额外 的代码。 在本系统中,使用 SSH框架,将全部程序按照功能分为工具类 Util,业务类 Service,数据访问类 Dao,领域模型类 Entity,通过 Service类中的对象调用 Dao类中的对象,再用Dao类的对象调用 Entity类的对象,这样整个系统的解耦合架构大致构建起来。并且在每一层中分别使用不同的框架,在 Dao层中使用 Hibernate来管理和访问数据库,在 Service层中使用 Struts处理各种请求 Action,并用 Spring管理 Hibernate和 Struts,这样整个框架就被完整构建出来。 4. 论 坛系统设计与调试 4.1 论坛 总体设计 4.1.1 前台功能结构 用户访问论坛首页面后,可进行查看版面 ,查看版面下的主题,查看主题下的帖子,查看每个主题下的精华,置顶帖,用户注册,用户登录等, 用户在此 BBS论坛中通过注册成为该网站的真正用户并成功登录系统后,可进行发表帖子、回复帖子等操作。前台功能结构图如图 4.1所示。 图 4.1 前台功能结构图 11 4.1.2 后台功能结构 通过首页进入后台,以管理员账号成功登录后,管理员可以进行版面管理,主题管理,用户管理,帖子管理。 后台 功能结构图如图 4.2所示。 图 4.2 后台功能结构图 4.1.3 系统流程图 (1) 后台流程图,介绍后台的基本功能,以及进入后台之后的操作流程,如图 4.3所示。 图 4.3 论坛系统后台流程图 (2)前台流程图,介绍前台的主要功能以及前台的操作流程,如图 4.4所示。 12 图 4.4 论坛系统前台流程图 4.2 论坛前台管理 4.2.1登录模块 登录模块用户输入用户名及密码,该用户存在及密码正确 , 则界面进入登录状态, 根据不同的角色会出现不同的登录状态,如果密码 不正确 或者没有注册, 则 为游客状态,如图4.5-4.8所示 。 图 4.5 游客登录状态 图 4.6 管理员登录状态 图 4.7 版主登录状态 13 图 4.8 普通用户登录状态 用户登录:论坛系统中的用户可在任何浏览的页面进行登录,只要在一个页面上登录成功后,则其它页面则都要显示登录状态,登录后可 以发布,回复帖子,并且可以对自己的资料进行修改 。 登录界面如图 4.9所示。 图 4.9 登录界面 如果输入的昵称,密码以及验证码正确,则跳转到相应角色状态的首页,如上图中昵称为 passion的用户角色状态为管理员,当输入 的密码及验证码正确时,跳转到的首页如图 4.10所示。 图 4.10 首页界面 如果输入的昵称,密码及验证码不匹配,则会提示出现错误。如图 4.11所示: 14 图 4.11 登录错误提示界面 核心程序如下: /* * 用户登录 * */ public String login()throws Exception HttpSession session=request.getSession(); HttpServletResponse response=ServletActionContext.getResponse(); User currentUser=userService.login(user); if(!imageCode.equals(session.getAttribute(sRand) error=验证码错误! ; session.setAttribute(error, error); else if(currentUser=null) error=用户名或密码错误! ; session.setAttribute(error, error); else session.setAttribute(currentUser, currentUser); session.removeAttribute(error); if (user.getType()=3) return adminLogin; else return login; 程序分析:当用户在界面中点击“登录”按钮之后,前台会向服务器发送“登录 请求”,服务器解析请求之后交给 struts 的配置文件 struts.xml 处理,以上程序就是处理名为“ login”的请求处理的程序。上面的程序中,当用户登录之后,服务器会用当前登录用的用户名和密码与数据库中的密码相对照, 如果登录用 的 用户名与密码与数据库中的用户名与密码没有相 15 同的,即程序中的判断: currentUser = null,则说明登录的用户名和密码错误;反之,则说明登录成功,这时候在判断用户属性中的种类,如果为管理员类型,则进入后台;反之,则为普通用户。 4.2.2注册模块 实现对于用户注册功能。 注册用户:用户输入详细的正确的信息,即可进行用户的注册功能,注册之后就可以对于该用户进行登录操作 , 注册界面如图 4.12所示 。 图 4.12 注册界面 在注册界面,用户可以根据自己的资料设置昵称,真实姓名,性别,头像,登录密码,联系电话等一系列资料,其中带 *的资料为必须填写,不带的可以不填。注册完毕后点击“提交注册”完成注册,出现提示注册成功界面,如图 4.13所示。 图 4.13 注册成功跳转页面 出现 上图结果 3秒后,界面将自动跳转到首页。并在首页显示出登录状态 。 16 核心程序如下: /* * 用户注册 * */ public String save()throws Exception HttpSession session=request.getSession(); userService.saveUser(user); return SUCCESS; 程序分析:用户注册功能其实就是将用户的数据插入数据库中, :在界面中点击“注册”按钮,界面将跳转到注册界面,在这个界面中设置完自己的属性之后,后台将以表的方式将这些属性插入到数据库之中作为用户的一条记录。点击“注 册成功”按钮,浏览器向后台发出“ User_register.action”请求,后台服务器接收到之后交给 struts处理,调用 UserAction里的 save()方法,将数据插入数据库中。 4.2.3 区域模块 区域模块实现:在首页上显示论坛所有的区域,每个区域中显示其 版 块,可以点击进入版块,查看此版块中的主题 ,如图 4.14所示。 图 4.14 区域模块 17 如图 4.10所示,本论坛共分成三个大的版块,分别对应于 Java web, Android4,以及常用 Web框架这三个版块。在不同的版块中 又分成不同的主题,点击主题的图标可以进入该主题。 进入区域查看某板块主题(分置顶、精华、普通帖):点击某板块,页面上会传一个板块的 id到 action类中,后台会通过这个 id号查找本版块中所有的主题,并且以分页的方式查找,找到后 return success 然后跳转到页面,如果这个主题是广播帖,则显示为广播帖 ;如果这个主题是置顶帖,则显示为置顶帖 ;如果这个主题是精华帖但不是置顶帖,则显示 精华帖 ;如果这个主题既不是置顶帖,也不是精华帖, 则显示 为普通帖,也可以从某主题前面的板块名超链接到此板块的所有主题 ,如图 4.15所示。 图 4.15 主题界面 进入不同的主题后,界面中会出现该主题的版主,欢迎语,发帖按钮,以及相应的帖子,其中帖子有普通,精华,置顶这几类, 在帖子的后面会出现回复数以及最后回复的用户名以及回复时间,根据登录用户的角色,系统可以判断该用户能否对帖子进行操作。如果用户为普通用户或者游客,则无权对帖子进行操作,只有管理员或者版主才能对该主题的 帖子进行管理,如图 4.16所示。 图 4.16 常规用户 主题 界面 4.2.4发 帖 模块 发 帖 实现: 帖子 的创建。 18 发 帖 :点击快捷导航里的发帖按钮,跳转到发帖 页面。点击确认按钮调用 TopicAction里的 save()方法,然后把主题写入数据库 ,如图 4.17所示。 图 4.17 发帖界面 核心程序如下 : /* * 发布帖子 * */ public String save()throws Exception topic.setPublishTime(new Date(); topic.setModifyTime(new Date(); topicService.saveTopic(topic); return save; 程序分析:点击主题界面中的“发帖”按钮,可以进入发帖界面,在这个界面中,版

温馨提示

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

评论

0/150

提交评论