基于J2EE的Bolg系统的设计与实现.doc_第1页
基于J2EE的Bolg系统的设计与实现.doc_第2页
基于J2EE的Bolg系统的设计与实现.doc_第3页
基于J2EE的Bolg系统的设计与实现.doc_第4页
基于J2EE的Bolg系统的设计与实现.doc_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

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

文档简介

I 中文题目:基于 J2EE 的 Blog 系统的设计与实现 外文题目:DESIGN AND IMPLENMENTATION OF BLOG SYSTEM BASEED ON J2EE 毕业设计(论文)共 96 页(其中:外文文献及译文 29 页) 图纸共 0 张 完成日期 2007 年 6 月 答辩日期 2007 年 7 月 I 摘要 随着互联网络的发展,在自由精神与共享精神的影响下博客(Weblog,Blog)诞生 了。Blog 的产生让我们可以有更多的机会向别人展示我们自己的见解与日常生活中的信 息。 JAVA 作为目前最为流行的技术之一,其企业版本(J2EE)在设计与实现 Web 应用 方面非常适合。并且,目前基于 J2EE 的开源框架也已经非常成熟。可以利用现有的优秀 框架进行系统的设计与构建。使用 J2EE 技术来设计实现 Blog 正是本文的目的所在。 本文将设计并实现一个基于 J2EE 的 Blog 系统。该系统以 Struts、Spring 以及 Hibernate 框架为基础进行设计与构建。Struts、Spring 以及 Hibernate 都是开源框架,分别 实现 MVC(Model-View-Control) 、依赖注入(Dependency Injection)以及 ORM(Object/Relation Mapping) 。 为了提高系统的性能,持久层使用了延迟加载方式。而这种方式需要持久层接口的 生命周期延续到表示层。通过对现有技术的分析并结合本系统的特点,笔者设计了一个 延长持久层接口生命周期的有效方式,LongPersist 机制。 在利用以上技术的同时,通过分析 Blog 的特点,最终完成系统结构的设计与实现。 本系统主要完成了用户的登录、注册以及管理功能,实现了用户文章的发表与管理。通 过使用 URL Rewrite 方式使用户方便的浏览自己以及其他用户的 Blog。 关键词:博客;J2EE;Struts;Spring;Hibernate;框架; II Abstract With the development of the Internet, under the influence of the spirit of freedom and sharing blog was born. The blog allows us to have more opportunities to demonstrate our own views,news and daily life to others. JAVA as currently the most popular technology, its enterprise version (J2EE) in design and implementation of Web applications is very suitable. Moreover, the frameworks that are base on J2EE have been very mature so that we can make use of the existing framework for outstanding system design and construction.By using J2EE technology Design Blog is the purpose of this document. I managed to design and realize a J2EE-based blog system which is based on Struts, Spring and Hibernate frameworks. Struts, Spring and Hibernate are open source frameworks respectively MVC (Model-View-Control), DI (Dependency Injection) and the ORM (Object / Relation Mapping). In order to improve the performance of the system using the Persist Layer Lazy Loading. This approach requires persistence layer interface extends life cycle to expressed layer. Based on the analysis of existing technologies and combining the features of the system. I designed an interface layer extension lasting effective way which called LongPersist mechanism by myself. Using the technologies, by analyzing the characteristics blog, I completed the System design and implementation. The system completed the user login, registration and management functions. And the system supposts users publication and management of articles. Users can conveniently browse other users themselves and the blog. Keywords : blog; J2EE; Struts; Spring; Hibernate; Framework; 目录 前言.1 1 项目概述.2 1.1 系统概述.2 1.1.1 Blog.2 1.1.2 J2EE Web 技术.3 1.1.3 Struts 框架.3 1.1.4 Spring 框架 .4 1.1.5 Hibernate 框架.4 1.1.6 Geronimo J2EE 开源服务器 .4 1.2 业务流程描述.4 2 可行性分析.6 2.1 技术可行性.6 2.2 经济可行性.8 2.2.1 支出.9 2.2.2 效益.9 2.2.3 收益/投资比.9 2.3 操作可行性.9 3 需求分析.10 3.1 系统的设计思想.10 3.1.1 表示层.10 3.1.2 中间层.12 3.1.3 业务逻辑层.12 3.1.3 持久层.12 3.1.3 简单 JAVA 对象(POJO).13 3.2 总体目标.13 3.3 具体目标.13 3.3.1 系统功能设计.14 3.3.2 系统特点.14 3.4 系统数据流程图.15 3.5 数据字典.18 4 概要设计.24 4.1 BLOG系统结构图.24 4.2 BLOG系统接口设计.24 4.3 数据库设计.25 4.3.1 数据库需求分析.25 4.3.2 数据库概念结构设计.26 4.3.3 关系模式设计.28 4.3.3 数据库表结构.29 4.5 运行设计.31 4.6 安全技术.33 5 详细设计.34 5.1 BLOG系统层间协作设计.34 5.2 BLOG系统功能模块设计.37 5.2.1 用户身份.37 5.2.2 用户 Blog 列表显示.38 5.2.3 用户 Blog 操作.39 5.2.4 Blog 评论.43 5.2.5 文章分类管理.43 5.2.6 系统支撑.45 5.3 BLOG系统 LONG PERSIST机制 .45 5.3.1 利用 request 对象和 Service 对象的 finalize 方法实现 .46 5.3.2 利用 request 对象和 EL 语言实现.47 6 编码.49 6.1 系统使用的语言.49 6.2 编码工具.49 7 系统实现.50 7.1 用户注册界面.50 7.2 用户登录界面.50 7.3 BLOG导航界面.50 7.4 用户 BLOG显示界面.52 7.5 用户信息管理界面.53 8 测试.56 8.1 用户注册测试.56 8.1.1 用户名测试用例.56 8.1.2 用户密码测试用例.56 8.1.3 用户 E-mail 地址测试用例.57 8.1.4 用户 Blog 空间标题测试用例.57 8.1.5 用户 Blog 空间描述测试用例.58 8.2 用户登录测试.58 8.3用户文章发表测试.59 8.4 用户评论发表测试.59 8.5 BLOG系统测试结论.59 结论.60 致谢.61 参考文献.62 附录 A 外文文献翻译.63 附录 B 外文文献原文 .76 附录 C 业务逻辑核心类代码 .92 辽宁工程技术大学毕业设计(论文) 1 前言前言 Blog 是 Web logs 的简称,中文名称为博客。Web logs 是 Web 和 Log 的组合,Web 意为环球网络,Log 意为航海日志,也就是在海上航行的记录。Web log 可以意为在网络 上“航行”的记录。Blog 表现了互联网的自由、共享的精神。使得每个人成为信息传播 的参与者,而使得传统媒体的信息垄断被打破。 Blog 用它的创新给网络带来了新的生命力,让不同年龄层和不同背景的人们能够互 动起来。是继 Email、BBS、ICQ 之后出现的第四种网络交流方式,是网络时代的个人 “读者文摘” ,是以超级链接为武器的网络日记,是代表着新的生活方式和新的工作方式, 更代表着新的学习方式。Blog 的出现集中体现了互联网时代非商业化自由以及大众化的 信息传播。 J2EE 是 JAVA 技术的重要组成部分, Java Servlet 和 Java Server Pages(JSP)作为其 web 层组件更是成为当前 Web 应用程序开发的主流技术之一。J2EE 中的 Java Servlet 和 Java Server Pages 技术的多线程特性使得 Blog 系统可以提供更高的速度;而其本身作为 JAVA 技术的重要组成部分,同样具备着极高的稳定性、安全性以及可移植性。使用 J2EE,减小了开发的复杂度、缩短了开发周期,并可以使系统结构更清晰,更容易控制、 维护。这样就使得 Blog 系统的设计与实现成本降低,使得独立于网站的 Blog 系统的实现 成为可能。对于推动 Blog 这一大众的传媒方式起到相当大的推动作用。 基于 J2EE 技术,存在着大量的优秀开源框架。这些框的出现,进一步提高了 J2EE 应用的开发效率。这些框架应用于 J2EE 项目的不同层次,使得项目可以在经过多次验证 的框架的成熟代码基础上进行构建,提高项目的成功率。目前较为主流的框架有:基于 J2EE Web 应用程序表示层的 Struts 框架、基于中间层的 Spring 框架、以及基于持久层的 Hibernate 框架。 本文主要讨论基于 J2EE 技术,应用现有的优秀框架进行 Blog 系统的设计与实现。 史航宇:基于 J2EE 的 Blog 的设计与实现 2 1 1 项目概述项目概述 一个 Blog 就是一个或几个网页,它通常是由简短且经常更新的日志(log)所构成。 Blog 的内容和目的有很大的不同,从对其他网站的超级链接和评论,有关公司、个人、 构想、新闻到日记、照片、诗歌、散文,甚至科幻小说的发表或张贴都有,涉及各行各 业。许多 Blog 是个人心中所想之事情的发表,倾向于个人情感的体现活动。其它 Blog 则 是一群人基于某个特定主题或共同利益领域的集体创作。Blog 好像对网络传达的实时信 息。撰写这些 Weblog 或 Blog 的人就叫做 Blogger 或 Blog writer。本 Blog 系统是为 Bloggers 提供编写、管理日志的空间的基于 J2EE 技术以及开源框架的 Web 应用程序。 1.11.1 系统概述系统概述 Blog 系统,为 Bloggers 提供编写日志的空间。Bloggers 可以通过注册获得属于自己 的 Blog 空间,从而建立自己的 Blog。本系统在提供空间的同时,也允许网友对自己关注 的 Blog 进行评论,方便与编写者进行直接的讨论。 使用 J2EE 技术构建,集合主流的 Struts、Spring 以及 Hibernate 开源 J2EE 框架。这 种以开源技术为基础的构建方式对于以自由共享精神为基础的 Blog 来说是再合适不过的 了。 由于 Blog 系统的业务逻辑等相对简单,所以将系统设计为轻量级 J2EE 应用,而不 使用 EJB 等重量级企业应用。 .1 BlogBlog 正如前文所述,Blog 表现了互联网的自由、共享的精神。使得每个人成为信息传播 的参与者,而使得传统媒体的信息垄断被打破。Blog 是一种让编写者可以表达自己意见、 发表自己的看法以及见闻的方式。 辽宁工程技术大学毕业设计(论文) 3 .2 J2EEJ2EE WebWeb 技术技术 J2EE 是 JAVA 技术的重要组成部分。J2EE 是使用 Java 技术开发企业级应用的一种 事实上的工业标准。J2EE 包含 Web、EJB 以及 Application Client,3 部分。其中,J2EE Web 技术是目前 Web 技术中的主流技术之一。由于 JAVA 技术本身的特点,以其为基础 的开源框架成为 JAVA 技术的重要应用以及项目实现的基础。 J2EE Web 包含 JSP 以及 Servlet 两项主要技术。 1) Servlet 技术 Servlet 是 Java 平台上的 CGI 技术。Servlet 在服务器端运行,动态地生成 Web 页面。 与传统的 CGI 和许多其它类似 CGI 的技术相比,Java Servlet 具有更高的效率并更容易使 用。对于 Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支 持并发访问的1。 2) JSP 技术 JSP(Java Server Page)是一种实现普通静态 HTML 和动态页面输出混合编码的技术。 从这一点来看,非常类似 Microsoft ASP、PHP 等技术。借助形式上的内容和外观表现的 分离,Web 页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通 过 JSP 来合成。在运行时,JSP 将会被转换成 Servlet,并以 Servlet 的形态编译运行,因 此它的效率和功能与 Servlet 相比没有差别,一样具有很高的效率1。 .3 StrutsStruts 框架框架 Struts 这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少 在运用 MVC 设计模型来开发 Web 应用的时间。Struts 的优点主要集中体现在两个方面: Taglib 和页面导航2。 史航宇:基于 J2EE 的 Blog 的设计与实现 4 .4 SpringSpring 框架框架 Spring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的复杂 性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而, Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。简单来说,Spring 是一个轻量级的控制反转(IoC)框架3。 .5 HibernateHibernate 框架框架 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装, 使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在 任何使用 JDBC 的场合,既可以在 Java 的客户端程序实用,也可以在 Servlet/JSP 的 Web 应用中使用4。 .6 GeronimoGeronimo J2EEJ2EE 开源服务器开源服务器 是 Apache 管理下的通过 J2EE 认证的开源服务器。Geronimo 集合了众多开源项目, 并且提供了动态部署应用的能力。可以说 Geronimo 是目前最接近商业 J2EE 服务器的开 源服务器。其 Web 容器为内嵌的 Tomcat 6.0,使系统可以和 Tomcat 兼容。 1.21.2 业务流程描述业务流程描述 Blog 系统的一般业务流程如下: 1) 用户账户注册; 2) 用户登录; 3) 发表及管理日志,浏览、评论其他用户或自己的日志; 4) 登出系统。 辽宁工程技术大学毕业设计(论文) 5 系统游客 用户注册登录 发表 文章 发表 评论 管理 文章 管理 评论 管理 文章 分类 浏览 用户 博客 登出 登录用户 用户文 章内容 图 1-1 系统业务流程图 Fig.1-1 System operational flowchart 史航宇:基于 J2EE 的 Blog 的设计与实现 6 2 2 可行性分析可行性分析 2.12.1 技术可行性技术可行性 技术可行性,就是根据现有的技术条件,分析规划所提出的目标、要求能否达到, 以及所选用的技术方案是否具有一定的先进性。从硬件、软件、能源及环境条件、辅助 设备及配件条件等方面进行研究。 1) J2EE 技术 本系统以 J2EE 技术为基础。J2EE 是 JAVA 技术的重要组成部分,是 JAVA 企业应 用的事实标准5。应用 J2EE 构建的 Web 应用用程序比比皆是。JAVA 技术经过多年的发 展,已经相当成熟。JAVA 语言本身是面向对象设计语言的典范,在系统的开发与设计方 面有着巨大的优势。另外,JAVA 语言的可移植性以及安全性对于加强系统稳定性、降低 系统成本方面将起到巨大作用。 J2EE Web 技术支持监听器于过滤器,对于系统中需要统一处理的功能提供了良好的 支持。 另外,基于 J2EE 技术的大量已有技术,对于系统的开发于实现有着很好的支持。通 过使用 J2EE 框架,可以使系统层次结构清晰。增强系统的可维护性以及可扩展性。 2) Struts 框架 Struts 框架是表示层的 MVC(Model View Control)框架。用其替代 Model2 来完成 MVC 可以大幅度提高系统构建效率6。 首先,在数据提交方面,Struts 提供了 ActionForm 类。可以通过将页面表单字段名 与 ActionForm 的属性名对应的方式自动完成页面表单数据到 JAVA 对象的转换以及数据 的验证等工作。并且为数据验证以及页面布局提供了 Validate 框架和 Tiles 框架。 其次,Struts 提供了可从写的前端控制器以及控制器。对 Web 应用程序中的页面流 转提供了简单的设计方式,即通过对 XML 配置文件进行配置来完成。并且为简单的页面 跳转提供了较为简单的虚拟 Action, 辽宁工程技术大学毕业设计(论文) 7 最后,Struts 提供了丰富的 Taglib(标签库) 。使用 Struts Taglib 配合 JSTL 以及 EL(表达式语言)配合,可以彻底将 JSP 页面中的 JAVA 代码分离出来,极大的增强了 JSP 页面的可维护性以及可读性。同时,节省了编写自定义标签的工作量。 3) Spring 框架 Spring 是一个轻量级的控制反转(IoC,Inversion Of Control)框架以及容器。它具有以 下特典: 轻量从大小与开销两方面而言 Spring 都是轻量的。完整的 Spring 框架可以在一 个大小只有 1MB 多的 JAR 文件里发布。并且 Spring 所需的处理开销也是微不足道的。 此外,Spring 是非侵入式的:典型地,Spring 应用中的对象不依赖于 Spring 的特定类7。 控制反转Spring 通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或 者查找依赖对象。你可以认为 IoC 与 JNDI 相反不是对象从容器中查找依赖,而是容 器在对象初始化时不等对象请求就主动将依赖传递给它7。 容器Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容 器,你可以配置你的每个 bean 如何被创建基于一个可配置原型(prototype) ,你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何 相互关联的。然而,Spring 不应该被混同于传统的重量级的 EJB 容器,它们经常是庞大 与笨重的,难以使用7。 框架Spring 可以将简单的组件配置、组合成为复杂的应用。在 Spring 中,应用 对象被声明式地组合,典型地是在一个 XML 文件里。Spring 也提供了很多基础功能(事 务管理、持久化框架集成等等) ,将应用逻辑的开发留给了你7。 4) Hibernate 框架 Hibernate 是一个开放源代码的对象关系映射(ORM,Object/Relation Mapping)框架, 它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编 程思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客 户端程序实用,也可以在 Servlet/JSP 的 Web 应用中使用8。 史航宇:基于 J2EE 的 Blog 的设计与实现 8 Hibernate 通过自动生成 SQL 语句的方式与数据库进行交互。基于 JTA 提供数据库 事务操作。可以通过使用延迟加载技术,在关联对象被访问时再对其进行持久化。 5) 框架的整合 以 Spring 为中心,对 Struts 以及 Hibernate 进行整合。 Spring 本身支持 Struts 框架的全权托管,可对 Action 进行注入,将 Action 放置在 IoC 容器之内进行管理。通过对 Spring 进行配置,可以使 Action 由 Singleton 转变为 Prototype。 Spring 可以配置数据源,将配置的数据源注入到 Hibernate 的 SessionFactory 中即可 建立 SessionFactory。Spring 以 Singleton 的方式构建 SessionFactory 并置于容器中进行管 理。之后,可在需要时使用 Factory 模式产生 Session 对象的 Prototype,再注入到业务逻 辑对象中。 6) 硬件系统 由于 Blog 系统的即时性相对较就弱,主流服务器配置即可满足本系统要求。基于 J2EE 技术,保证了在目前任何主流硬件系统上都可以运行。另外,数据库将使用 MySQL,避免了 Oracle 等数据库大量消耗系统资源的情况。整个系统对硬件的要求不高。 综上所述,基于 J2EE 技术构建 Blog 系统在软、硬件技术上是完全可行的。 2.22.2 经济可行性经济可行性 经济可行性方面: 关于软件配置,本系统中所需的软件除 Windows 操作系统外,均为开源软件。包括: 数据库 MySQL Server 5.0、开发工具 NetBeans 5.5、J2EE 服务器 Geronimo 2.0(内嵌 Tomcat 6.0) 。另外,包括 Struts、Spring 和 Hibernate 在内的框架和组建都为开源框架。 JDK 虽然不是开源产品,但是免费软件。 硬件方面,由于本 Blog 系统对硬件要求偏低,使用低端服务器或普通台式计算机即 辽宁工程技术大学毕业设计(论文) 9 可满足基本需求。 .1 支出支出 基础投资: 服务器:5000 元 共计: 5000 元 其他一次性投资: Windows XP professional:2650 元 软件开发费:5000 元 共计:7650 元 人工费用:1(月)*1(人)*5000(元)=5000 元 其他不可知额外支出:5000 元 共计:10000 元 总计:17650 元 .2 效益效益 一次性收益:将完成的系统整体售出,收益 3 万元。 收益共计:3 万 .3 收益收益/ /投资比投资比 3 万/1.7650 万=169.97% 2.32.3 操作可行性操作可行性 使用本系统的用户需要了解一些上网常识,会浏览网页,并对 Blog 或 BBS 有一定的 史航宇:基于 J2EE 的 Blog 的设计与实现 10 了解就可直接进行操作。管理员要有一定计算机知识的人员,对网站规划有一定的了解。 可及时对系统及数据库进行定期的整理。 3 3 需求分析需求分析 Blog 系统的存在就是为了使用户可以更好的表达自我,记录身边的事物。为了达到 这一目的,本系统主要以操作的简便性、沟通的便捷性以及用户的隐私安全等方面为标 准进行系统设计。 3.13.1 系统的设计思想系统的设计思想 本 Blog 系统基于 J2EE 架构,采用 Struts、Spring 和 Hibernate 这 3 种框架搭建系统 整体框架。 系统总体架构分为: 1) 表示层; 2) 中间层; 3) 业务逻辑层; 4) 持久层; 5) 数据库; 6) 简单 JAVA 对象。 客户端产生的请求由表示层接受。表层调用业务逻辑层实施处理。业务逻辑层调用 持久层与数据库交互,将处理结果返回表示层。再由表示层根据处理结果产生页面流转。 完成一次请求。在这期前,由中间层为各层提供依赖注入(DI,Dependency Injection) , 如图 3-1 所示。 辽宁工程技术大学毕业设计(论文) 11 .1 表示层表示层 表示层由浏览器表示层与服务器表示层两部分组成。该层是用户与系统的界面以及 相应机构,完成与用户的交互。 数据库 浏览器表示层 JSP+EL+JSTL+ Struts Taglib 中间层 Spring Hibernate Session 注入 业务逻辑处理对 象 注入 ORM持久层 Hibernate Blog业务逻辑层 BlogService 服务器表示层 Struts 简单Java对 象 POJO 客户端浏览器 图 3-1 系统架构分层图 Fig. 3-1 Tiered structure system map 服务器表示层主要由 Struts 框架承担。由 Struts 的前端控制器接受用户的浏览器请求, 史航宇:基于 J2EE 的 Blog 的设计与实现 12 对浏览器的请求进行处理。将表单转化为 ActionForm 对象,并对用户提交数据的合法性 和完整性进行验证。之后,由 Action 对象调用依赖注入的业务逻辑层

温馨提示

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

评论

0/150

提交评论