基于J2EE的Blog的设计与实现 - 图文

更新时间:2023-11-04 01:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

宁夏大学新华学院本科学位论文

摘 要

随着网络的普及和生活条件的提高,人们越来越多的依赖于互联网,工作之余也希望通过网络做更多的事情。个人博客(Blog)可以为他们在网络上搭建一个展示自己和相互交流的平台,在这里,人们可以通过写日志,心情,留言,上传照片,发布消息、广告,让朋友分享自己的点滴生活。开发一个博客系统,通过丰富的博客活动和不断增加的博客功能,让博客成为广大网民生活的一部分。JAVA作为目前最为流行的技术之一,其企业版本(J2EE)在设计与实现Web应用方面非常适合。并且,目前基于J2EE的开源框架也已经非常成熟。可以利用现有的优秀框架进行系统的设计与构建。使用J2EE技术来设计实现Blog正是本文的目的所在。

本文将设计并实现一个基于J2EE的Blog系统。该系统采用了MVC(Model View Controller)设计模式,表示层用JSP实现,Servlet承担控制层的事务,业务逻辑封装在Java Bean中并通过DAO层访问数据库。

在利用以上技术的同时,通过分析Blog的特点,最终完成系统结构的设计与实现。本系统主要完成了用户的登录、注册以及用户日志和公告的发表与管理,照片的上传,个人信息的编辑修改和添加好友等功能。

关键词 :Blog;J2EE;Servlet;Java Bean;JSP

I

宁夏大学新华学院本科学位论文

Abstract

With the popularity of the network and the improvement of living conditions, people more and more dependent on the Internet, from work to the Internet to do more. Personal blog for them to build a network show and communication platform, where people can write log, mood, message, upload photos, post news, make friends, share their bits of life . Development of a blog system, through the activities of the rich and growing blog feature, so blog and becoming a part of life. JAVA technology as one of the most popular current, version of its enterprise (J2EE) Web applications in the design and implementation is very suitable. Moreover, the current open source J2EE-based framework has also been very mature. Can be an excellent framework for the use of existing system design and construction. Designed and implemented using J2EE technology to Blog is the purpose of this article lies.

This article will design and implement a J2EE-based Blog system. The system uses the MVC (Model View Controller) design pattern, said layer to achieve with JSP, Servlet take control layer of the affairs, business logic encapsulated in the Java Bean in and through the DAO layer to access the database.

While the use of these technologies, Blog by analyzing the characteristics of the final completion of system architecture design and implementation. The system is mainly to complete the user login, registration and user log and announcements on the publication and management, upload photos, personal information, editorial changes and add friends and so on. Keywords: Blog;J2EE; Servlet;Java Bean;JSP

II

宁夏大学新华学院本科学位论文

目 录

第1章 概述 ................................................................ 1

1.1 Blog系统的背景及发展现状 ........................................... 1

1.1.1 系统开发背景 .................................................. 1 1.1.2 发展现状 ...................................................... 1 1.2 课题的来源及功能目标 ................................................ 2

1.2.1 课题的来源 .................................................... 2 1.2.2 功能目标 ...................................................... 2 1.3 论文的主要内容及工作 ................................................ 2 第2章 系统的总体设计框架 .................................................. 4

2.1 设计思想和设计原则 .................................................. 4

2.1.1 设计思想 ...................................................... 4 2.1.2 设计原则 ...................................................... 4 2.2 系统分析 ............................................................ 4

2.2.1 系统功能分析 .................................................. 5 2.2.2 系统模块设计 .................................................. 6 2.3 系统开发环境和运行环境 .............................................. 6

2.3.1 开发环境 ...................................................... 6 2.3.2 运行环境 ...................................................... 6

第3章 设计中的关键技术 .................................................... 8

3.1 系统使用的语言 ...................................................... 8 3.2 J2EE Web技术 ....................................................... 8 3.3 MVC设计模式 ........................................................ 9 第4章 系统的设计与实现 ................................................... 10

4.1 系统数据库设计 ..................................................... 10

4.1.1 数据库分析 ................................................... 10 4.1.2 数据库结构设计 ............................................... 11 4.2 系统模块的设计 ..................................................... 13

4.2.1 数据库操作类 ................................................. 13 4.2.2 实体类 ....................................................... 15 4.2.3相关工具类 .................................................... 16 4.2.4事件控制类 .................................................... 18 4.3 系统模块的实现 ..................................................... 23

4.3.1用户注册模块 .................................................. 23

III

宁夏大学新华学院本科学位论文

4.3.2用户登录模块 .................................................. 24 4.3.3 Blog首页 ..................................................... 24 4.3.4 公告模块 ..................................................... 24 4.3.5 用户相册模块 ................................................. 25 4.3.6博客管理模块 .................................................. 25

第5章 系统测试 ........................................................... 28

5.1系统的测试 ......................................................... 28 5.2测试内容 ........................................................... 28

5.2.1程序代码检查 .................................................. 28 5.2.2功能测试 ...................................................... 28 5.2.3正确性测试 .................................................... 28 5.2.4安全性测试 .................................................... 28 5.3测试结果 ........................................................... 29 第6章 总结 ............................................................... 30

6.1 完成情况 ........................................................... 30 6.2 主要实现功能 ....................................................... 30 6.3 展望 ............................................................... 30 参考文献 .................................................................. 31 致 谢 .................................................................... 32

IV

宁夏大学新华学院本科学位论文

第1章 概述

1.1 Blog系统的背景及发展现状

1.1.1 系统开发背景

Blog,是Weblog的简称。Weblog,其实是Web和Log的组合词。Web,指World Wide Web,当然是指互连网了;Log的原义则是“航海日志”,后指任何类型的流水记录。合在一起来理解,Weblog就是在网络上的一种流水记录形式或者简称“网络日志”。Blogger或Weblogger,是指习惯于日常记录并使用Weblog工具的人。虽然在大陆早些时候或者台湾等地,对此概念的译名不尽相同(有的称为“网志”,有的称之为“网录”等等),但目前已基本统一到“博客”一词上来。blog作为个人的一种学习工具,简单易用,吸引人的兴趣。Blog在教育方面得到了很大的发展,它将互联网从过去的通讯功能,资料功能、交流功能等进一步强化,使其更加个性化、开放化、实时化、全球化,把信息共享发展到资源共享、思想共享、生命历程共享。Blog已经成为一种继课件、积件、资源库、教育主题网站等信息化教学模式之后,新的网络应用模式。它是应时代的需求而兴起的,也是应时代需求不断进步的。

J2EE是Java技术的重要组成部分, Java Servlet和Java Server Pages(JSP)作为其web层组件更是成为当前Web应用程序开发的主流技术之一。J2EE中的Java Servlet和Java Server Pages技术的多线程特性使得Blog系统可以提供更高的速度;而其本身作为JAVA技术的重要组成部分,同样具备着极高的稳定性、安全性以及可移植性。使用J2EE技术,减小了开发的复杂度、缩短了开发周期,并可以使系统结构更清晰,更容易控制、维护。这样就使得Blog系统的设计与实现成本降低,使得独立于网站的Blog系统的实现成为可能。对于推动Blog这一大众的传媒方式起到相当大的作用。

1.1.2 发展现状

早在在1997年就有人提出了Blog这个名称,但是到1998年,互联网上的Blog网站依然屈指可数。随着越来越多的人开始接触互联网,Blog以它精巧、有趣、易于阅读、互动性强的优点迅速发展起来。

Blog用它的创新给网络带来了新的生命力,让不同年龄层和不同背景的人们能够互动起来。是继Email、BBS、ICQ之后出现的第四种网络交流方式,是网络时代的个人“读者文摘”,是以超级链接为武器的网络日记,是代表着新的生活方式和新的工作方式,更代表着新的学习方式。Blog的出现集中体现了互联网时代非商业化自由以及大众化的信息传播,它正在深刻地改变着媒体的传统和未来走向。

1

宁夏大学新华学院本科学位论文

1.2 课题的来源及功能目标

1.2.1 课题的来源

本课题来自笔者的实习单位银川西部电子商务股份有限公司,该系统作为公司农村信息化建设计划的一部分,系统全部功能模块由本人独自完成。

1.2.2 功能目标

Blog提供一个能让个人在互联网上表达自己的心声的平台。这是一个收集和共享任何感兴趣的事物的地方,可以是政治评论、个人日记或是指向一个自己想记住的网站的链接。可以使用Blog组织自己的想法,也可以通过Blog在全球成千上万的浏览者中赢得影响力。职业和业余新闻记者可以使用Blog发布特发新闻,摄影和美术发烧者,又可以通过Blog系统的管理自己的作品,无论您要发表什么意见,Blog都可以帮您表达出来。

Blog作为一种新表达的方式,它传播的不仅是情绪,包括大量的智慧、意见和思想。某种意义上说,它也是一种新的文化现象,Blog的出现和繁荣,真正凸现网络的知识价值,标志着互联网发展开始步入更高的阶段。它的具体用途可以是以下几点:

(1)促进学习。写Blog可以促进学习,想写出文章来,自然不能是泛泛的了解就可以的,要理解了才能写得出来的。这就促进了对某些领域的不断学习和思考。

(2)记录收获。Blog中,常常是记录下来都是瞬间的灵感,对事物的感悟,经过多日思考和实践的结果,对某个问题的解决方案等等,这些都是财富,要记录下来。

(3)反映成长。写Blog,可以反映出人的思考过程,而不仅仅是思考结果。对一个问题或领域,从不了解到了解,从了解到熟悉,从熟悉到精通。这纪录了一个人思考和解决问题的成长过程。很久之后,看到自己之前的文章,你将会觉得自己进步了。

(4)结交朋友。写了Blog,自然会有许多志趣相同的朋友来阅读,这可以认识许多朋友。大家有共同的兴趣爱好,自然谈得来。

(5)共享知识。Blog给大家看,大家的Blog也给你看。这个问题我解决了,那个问题他解决了。大家互通有无,建立起一个社群。

(6)交流看法。回复的人对Blog的观点或赞同,或反对,大家一起讨论,听听别人的思想,可以促进双方的共同进步。

1.3 论文的主要内容及工作

本论文分为五章,各章的主要内容及工作如下:

(1)概述系统背景及发展现状、课题的来源及功能目标、论文的主要内容及工作。 (2)系统的总体设计框架,包括系统的设计思想和设计原则、系统组成与系统结构、运行环境和开发环境。

(3)关于设计中的关键技术:J2EE 、MVC技术

(4)本系统的设计与实现,包括系统的数据库结构设计、系统中各个模块的设计与实

2

宁夏大学新华学院本科学位论文

现、系统安全结构设计与实现。

(5)结论与致谢

3

宁夏大学新华学院本科学位论文

第2章 系统的总体设计框架

2.1 设计思想和设计原则

2.1.1 设计思想

本系统分为前台和后台两个部分,前台包括日志、公告、好友、相册、博主信息五个模块,是呈现给会员和游客的页面。后台包括文章管理、文章分类管理、公告管理、好友管理、相册管理和博主信息六个模块,是博主用来对自己的博客内容进行管理的页面。

系统采用MVC设计模式,总体架构分为业务逻辑层、表示层和控制层。 1)业务逻辑层(Model)

业务逻辑层是Blog系统的逻辑功能核心,负责完成所有业务逻辑。本层由表示层的控制器调用,接受表示层的参数,通过JavaBean来处理业务逻辑并与数据库进行交互。最后向表示层返回业务逻辑处理结果。

2)表示层(View)

表示层是系统呈现给用户的交互界面,完成与用户的交互。该层由JSP实现,用于接收用户的请求提交到控制层,并负责读取Bean中的返回数据由JSP标签生成HTML代码交给用户浏览器处理显示。

3)控制层(Controller)

控制层主要用来转发从视图层传来的数据和请求到相对应的模型层,因此,实现它最好的方式莫过于使用Servlet了。当从视图层获取请求后,首先通过对web.xml文件的配置,使其转入Servlet,在Servlet中完成对页面中数据的封装和对相应模型的选择,然后再到相应的模型层进行数据处理;当在模型层数据处理完毕后,通过RequestDispatcher将处理后的数据返回相应的视图页面。

2.1.2 设计原则

1)系统具有较快的响应速度。 2)系统的使用要简洁、方便。 3)具有较高的安全性。 4)具有较高的可扩展性。 5) 具有必要的人机对话。

6) 可靠,保证了数据的高度一致性和完整性。

2.2 系统分析

系统分析是管理开发的起点,也是整个管理系统实现过程中的关键环节,因为如果系统环节做得不好,会影响到系统实现的后继环节,甚至造成开发失败。系统设计的环节主要包括系统功能分析和系统模块设计。

4

宁夏大学新华学院本科学位论文

2.2.1 系统功能分析

在实际开发中,系统功能分析需要开发小组的系统设计人员与用户进行全面、深入的交流,以了解和分析用户对整个系统期望具有的功能。

本Blog系统主要具有以下功能:

1)文章的发表和管理:文章是博客中最主要的表现部分,博主可以像写日记一样在博客里记事、写心情、发表评论,并可通过管理页面对发表后的文章进行编辑、修改、删除等操作。其他会员、游客都可以浏览这些日志,也可以对日志发表评论。博主可以对评论进行回复。

2)公告的发布和管理:博主可以将比较重要的信息以公告的形式发布,公告在博客页面里有较明显的显示。博主可以对已发的公告进行编辑和删除。

3)照片的上传和管理:博主可以进入相片管理页面,上传照片、编辑照片描述、删除照片。其他用户可以进入博主的空间浏览照片,也可以对照片发表评论。

4)添加和编辑个人信息:通过个人信息管理模块,博主可以填写个人资料,如身份、职业、学历、特长、爱好等。游客和其他会员可以查看博主的个人信息,但没有修改个删除的权限。

5)留言和回复:通过留言模块,会员可以在博友的空间留言,博主可以回复博友的留言,留言页面显示博友的昵称、留言时间和留言内容,以及博主的昵称、回复时间和回复内容。

6)用户管理:本产品对用户角色的设定有利于每一个使用者能拥有特定的权限来使用博客系统。整个用户群体被分为三种角色:“游客”、“会员”、“博主”。没有注册过的用户是以游客的身份参与的,只能浏览会员公开的博客内容。已注册的用户即为会员,也即自己博客的博主。在游客所具有的权限上又增加了编辑自己的博客空间,在别人博客上留言和添加好友的权限。此模块提供用户的身份验证服务,可让用户进行注册成为本产品的会员,会员和博主可以通过此模块登录到自己的页面。

5

宁夏大学新华学院本科学位论文

2.2.2 系统模块设计

根据系统功能分析,得到如下图2-1所示的系统功能模块结构图。

图 2-1 系统总体结构框架图

2.3 系统开发环境和运行环境

2.3.1 开发环境

本系统的开发环境采用My Eclipse,My Eclipse企业级工作平台是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JAVA集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, JavaScript, SQL, Hibernate。除此之外My Eclipse还可以以图形界面来操作JSP页面,为JSP页面的编辑提供了极大的方便。

2.3.2 运行环境

a.软件环境 (1) 操作系统

考虑到Windows 系统的易用性,但是Windows 2003 Server版本价格较高等因素,决定采用Windows XP Professional作为运行环境的操作系统。但由于本Blog系统基于J2EE技术,具有良好的可移植性,如果需要可以在不修改代码的前提下由Windows平台移植到UNIX或Linux平台。另外,为了实现系统的完全可移植性,在数据库方面页选择了对UNIX

6

宁夏大学新华学院本科学位论文

和Windows系统都支持的SQLServer数据库。无论是开发环境还是运行环境本Blog系统都可以在各主流操作系统平台间移植。 (2) JDK

使用JDK 1.6.0 作为Java系统环境。但考虑到Blog系统的兼容,系统设计上并未使用泛型等Java 5.0以后的新增特性。由于,商用服务器使用的JDK一般的是较老但稳定的JDK版本,这样可以保证一旦项目需要向商用服务器移植,可以很容易的完成。

配置JDK需要配置以下环境变量: ① PATH:设定JAVA的BIN路径; ② JAVA_HOME:设定JAVA的根目录; ③ CLASS_PATH:设定JAVA的LIB路径。 (3) 数据库

本Blog系统采用SQLServer2000数据库。为提高数据库安全性,为数据库设定密码,并禁用来宾用户。考虑到本系统研究目的多于使用目的,数据库的连接数限制为15个。这样可以在构建系统时第一时间发现连接池泄漏等问题。数据库性能采用开发模式配置,保证开发于系统运行可同时进行。禁用用户的远程连接,以确保数据库无法被远程访问。 (4) Tomcat服务器

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是6.0。 b.硬件环境

由于本Blog系统对硬件要求偏低,使用低端服务器或普通台式计算机即可满足基本需求。要求:内存256以上,硬盘20G以上,有网卡等其他网络设备。

7

宁夏大学新华学院本科学位论文

第3章 设计中的关键技术

使用J2EE技术构建,采用MVC设计模式,降低了各模块的耦合度,使后期的维护和修改更加方便。定义JavaBean来表示数据,使用Servlet来处理请求。填写Bean,将Bean存储到请求,会话或者ServletContext中,再将请求转发给JSP从Bean中读取数据并显示。由于各层独立工作,内部事务的处理过程对用户是不可见的,所以提高了系统的安全性。

由于Blog系统的业务逻辑等相对简单,所以将系统设计为轻量级J2EE应用,而不使用EJB等重量级企业应用。

3.1 系统使用的语言

1) Java语言

本系统是基于J2EE的Blog系统,语言自然是采用JAVA技术的标准语言,也就是JAVA语言。

Java是一种简单的、面向对象的、分布式的、解释执行的、健壮的安全的、结构的中立的、可移植的、性能很优异的多线程的动态的语言【1】。

2) HTML、JavaScript以及相关语言

由于本系统是基于J2EE的Web应用,HTML以及JavaScript等用户界面的设计语言是不可避免的需要使用的。

HTML(Hyper Text Mark-up Language)即超文本标记语言,是WWW的描述语言。 JavaScript是一种脚本语言,结构简单,使用方便,其代码可以直接放入HTML文档中,可以直接在支持JavaScript的浏览器中运行。JavaScript使得网页的交互性更强,更生动和灵活。本系统中大量使用了JavaScript来完成页面框架导航、操作提示以及文章编写器等功能【2】。

3.2 J2EE Web技术

J2EE是JAVA技术的重要组成部分。J2EE是使用Java技术开发企业级应用的一种事实上的工业标准。J2EE包含Web、EJB以及Application Client,3部分。其中,J2EE Web技术是目前Web技术中的主流技术之一。

J2EE Web包含JSP以及Servlet等技术。

1) Servlet技术

Servlet是Java平台上的CGI技术。Servlet在服务器端运行,动态地生成Web页面。与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的【3】。 2) JSP技术

JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术。

8

宁夏大学新华学院本科学位论文

从这一点来看,非常类似Microsoft ASP、PHP等技术。借助形式上的内容和外观表现的分离,Web页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通过JSP来合成。在运行时,JSP将会被转换成Servlet,并以Servlet的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率【4】。

3) Java Bean

JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变,因此,在Blog设计中使用JavaBean来封装业务逻辑可以使程序逻辑更加清晰,提高开发效率和质量。

3.3 MVC设计模式

MVC(Model-View-Controller)应用程序结构被用来分析分布式应用程序的特征。这种抽象结构能有助于将应用程序分割成若干逻辑部件,使程序设计变得更加容易。MVC结构提供了一种按功能对各种对象进行分割的方法,这样就可以将各对象间的耦合程度减至最小。

在MVC结构中,模型(Model)代表应用程序的数据和用于控制访问和修改这些数据的业务规则。通常模型被用来作为对现实世界中一个处理过程的软件近似,当定义一个模型时,可以采用一般的简单的建模技术。

当模型发生改变时,它会通知视图(View),并且为视图提供查询模型相关状态的能力。同时,它也为控制器(Controller)提供访问封装在模型内部的应用程序功能的能力。

一个视图(View)用来组织模型的内容。它从模型那里获得数据并指定这些数据如何表现。当模型变化时,视图负责维持数据表现的一致性,同时将用户要求告知控制器(Controller)。

控制器(Controller)定义了应用程序的行为;它负责对来自视图的用户请求进行解释,并把这些请求映射成相应的行为,这些行为由模型负责实现【5】。

9

宁夏大学新华学院本科学位论文

第4章 系统的设计与实现

4.1 系统数据库设计

系统设计是对整个管理系统功能进行分析,并划分和构建系统功能模块,而数据库设计则是分析和创建保存管理系统数据的数据库结构设计,两者对整个系统的开发具有同等重要的关键作用。

数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接影响系统的运行效率和系统开发进度。合理的数据库结构设计可以提高数据存储的效率,也有利于保证数据的完整性和一致性。也有利于系统的实现。

设计数据库系统时应该首先充分了解用户各个方面的要求,包括现有的以及将来可能增加的需求。

4.1.1 数据库分析

通过对系统需求的分析,Blog系统的数据库系统存在以下需求:

1) 系统要有不同权限的用户,用户具有用户信息和区分权限的标志; 2) 公告具有标题、内容、发布时间等属性。

3) 文章具有所属分类、标题、内容、作者、发表时间等属性。 4) 好友要有姓名、年龄、兴趣、联系方式等好友信息。 5) 照片的保存需要有路径、描述、时间等信息。 6) 文章分类有分类名称和描述。 7) 每个用户都可以发表多篇文章;

8) 每篇文章属于其发表者拥有的分类中的一个;

9)每一篇文章都可以有一个或多个回复,也可以没有回复。 10)每个回复都与一篇文章相关联。

经过详细的分析确定了系统的相关实体、实体的属性以及各实体之间的关系,如图4-1所示。

10

宁夏大学新华学院本科学位论文

标题 内容 标题 内容 标题 内容 时间 文章 1 n 拥有 n 账户 回复 密码 针对 公告 n 时间 n 发表 1 发表 权限 用户 1 信息 1 1 n 分类 添加 1 上传 1 爱好 添加 n 照片 n 好友 类别 路径 描述 姓名 性别 图4-1关系结构图

4.1.2 数据库结构设计

经过对数据库的概念结构进行分析后,就可以将数据库概念结构转化为一种数据库系统所支持的实际数据模型,本Blog系统的数据库模型设计如下。

1) 用户信息表(user),用来保存注册到Blog系统中的用户的个人信息。

表4-1 用户信息表

列名 id account password name sex QQNumber mainPage interest eMail managerLevel

数据类型 int varchar varchar varchar char int varchar varchar varchar Varchar

长度 4 10 10 50 5 4 50 50 50 10

Not Null √ √ √ √ √ √ √ √ √

2) 文章分类表(category),存放用户建立的文章分类的相关属性。

11

宁夏大学新华学院本科学位论文

表4-2 文章分类表

列名 id typeName description

数据类型 int varchar varchar

长度 4 50 50

Not Null √ √

3) 文章表,存放用户文章的相关属性。

表4-3 文章表

列名 id typeId title content phTime number

数据类型

int int varchar varchar

0

varchar int

表4-4 公告表

长4 4 30 20030 4

Not Null √ √ √ √ √

4) 公告表,存放发表的公告相关属性。

列名 id

discussTitle discussContent discussTime

数据类型 int varchar varchar varchar

长度 4 30 1000 50

Not Null √ √ √

5)好友信息表,存放添加的好友信息。

表4-5 好友信息表

列名 id name QQNumber description

数据类型 int varchar varchar varchar

表4-6 相片表

长度 4 20 20 50

Not Null √ √ √

6)相片表,存放上传照片的相关信息。

列名 id

photoAddress

数据类型 int varchar

12

长度 4 50

Not Null √

宁夏大学新华学院本科学位论文

photoDescript photoTime

varchar varchar

50 50

√ √

7)文章回复表,存放用户的回复信息。

表4-7 文章回复表

列名 id articleId reAcount reTitle reContent

数据类型 int int varchar varchar varchar

长度 4 4 50 50 16

Not Null √ √ √ √

4.2 系统模块的设计

系统的各个模块都是分四个部分来分工实现的,各部分协同工作,使系统的工作逻辑更加清晰,降低了系统实现的复杂性。分层的设计模式也提高了系统的扩展性,为以后功能上的进一步完善奠定了基础。

4.2.1 数据库操作类

Dao包包含ArticleDao、ArticleTypeDao、PhotoDao、ConsumerDao、RestoreDao、FriendDao和DiscussDao七个类,负责处理数据库存取事务,分别实现了文章、文章类型、照片、用户、文章回复、好友和公告的数据库增、删、查、改操作。该系统的所有数据库访问全部通过DAO层实现,各模块的访问模式基本相同,现以文章模块(ArticleDAO.java)为例进行说明,代码如下: package com.yang.dao; import java.sql.ResultSet;

import java.sql.SQLException; import java.util.ArrayList; import java.util.List;

import com.yang.form.ArticleForm; import com.yang.tool.JDBConnection; public class ArticleDao {

private JDBConnection connection = null; private ArticleForm articleForm = null; public ArticleDao() {

connection = new JDBConnection(); } /**

*传入操作类型和文章实体,对实体进行相应操作后返回Boolean结果。 */

public boolean operationArticle(String operation, ArticleForm form) { boolean flag = false;

13

宁夏大学新华学院本科学位论文

String sql = null;

if (operation.equals(\添加\ sql = \ + form.getTitle() + \ + form.getPhTime() + \ if (operation.equals(\修改\ sql = \ + \ + form.getContent() + \ if (operation.equals(\删除\ sql = \ if (operation.equals(\增加\ sql = \ + form.getId() + \ if (connection.executeUpdate(sql)) { flag = true; }

return flag; } /**

*传入文章类型编号,查找相应文章,返回文章List结果。 */

public List queryArticle(Integer typeId) { List list = new ArrayList(); String sql = null; if (typeId == null) sql = \ else sql = \ + \

ResultSet rs = connection.executeQuery(sql); try { while (rs.next()) { articleForm = new ArticleForm(); articleForm.setId(rs.getInt(1)); articleForm.setTypeId(rs.getInt(2)); articleForm.setTitle(rs.getString(3)); articleForm.setContent(rs.getString(4)); articleForm.setPhTime(rs.getString(5)); articleForm.setNumber(rs.getInt(6)); list.add(articleForm); }

} catch (SQLException e) { e.printStackTrace(); }

14

宁夏大学新华学院本科学位论文

return list; } /**

*传入文章编号,查找对应文章,返回文章实体。 */

public ArticleForm queryArticleForm(Integer id) {

String sql = \ ResultSet rs = connection.executeQuery(sql); try { while (rs.next()) { articleForm = new ArticleForm(); articleForm.setId(rs.getInt(1)); articleForm.setTypeId(rs.getInt(2)); articleForm.setTitle(rs.getString(3)); articleForm.setContent(rs.getString(4)); articleForm.setPhTime(rs.getString(5)); articleForm.setNumber(rs.getInt(6)); }

} catch (SQLException e) { e.printStackTrace(); }

this.operationArticle(\增加\ return articleForm; } }

4.2.2 实体类

Form包包含ArticleForm、ArticleTypeForm、PhotoForm、ConsumerForm、RestoreForm、FriendForm和DiscussForm七个类,分别定义了文章、文章类型、照片、用户、文章回复、好友和公告的相关实体、属性和方法,现以文章实体为例进行说明,代码如下: package com.yang.form; public class ArticleForm {

private Integer id=-1; //定义私有的实体属性 private Integer typeId=-1; private String title=\ private String content=\ private String phTime=\ private Integer number=-1;

public String getContent() { //定义公共的Get、Set方法 return content; }

public void setContent(String content) { this.content = content; }

public Integer getId() {

15

宁夏大学新华学院本科学位论文

return id; }

public void setId(Integer id) { this.id = id; }

public Integer getNumber() { return number; }

public void setNumber(Integer number) { this.number = number; }

public String getPhTime() { return phTime; }

public void setPhTime(String phTime) { this.phTime = phTime; }

public String getTitle() { return title; }

public void setTitle(String title) { this.title = title; }

public Integer getTypeId() { return typeId; }

public void setTypeId(Integer typeId) { this.typeId = typeId; }

4.2.3相关工具类

Tool包含系统实现所需的日期获取、编码转换、数据库连接等工具类,现对最关键的数据库连接组件进行说明。

数据库的连接和基础操作组件(JDBCConnection.java)是系统最底层的数据库操作组件,DAO层就是通过这个组件来访问数据库的,其代码如下: package com.yang.tool; import java.sql.*;

public class JDBConnection { private final String url =\ private final String userName = \ private final String password = \ private Connection con = null; //通过构造方法加载数据库驱动 static {

16

宁夏大学新华学院本科学位论文

致 谢

我首先要感谢的是我的指导教师。此次毕业设计是在庄老师的精心指导下完成的。从毕业设计的选题、资料的收集、需求分析,到论文的撰写与定稿,都凝聚着导师的心血。她不仅在专业知识上给予我悉心的指导,而且还在我遇到困难时给予我很大的帮助,传授了不少自己的经验教训,这些都将使我终身受益。谨此对庄老师表示最衷心的感谢!

同时,我也要感谢学校提供给我这样一次难得的实践机会,使我能够在走出校门之前得到锻炼,通过此次毕业设计,必将对我的将来产生生积极的影响。

最后要感谢所有被本文引用或参考的文章的作者,他们一些开拓性的工作是我进行深入研究的基础。

32

宁夏大学新华学院本科学位论文

articleForm.setContent(Chinese.toChinese(request.getParameter(\ articleForm.setPhTime(Chinese.toChinese(request.getParameter(\ }

// 后台删除文章类别

public void deleteArticleType(HttpServletRequest request, }

// 后台添加文章类别

public void addArticleType(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException { response.setContentType(\PrintWriter out = response.getWriter();

ArticleTypeForm ArticleTypeForm = new ArticleTypeForm();

HttpServletResponse response) throws ServletException, IOException { response.setContentType(\PrintWriter out = response.getWriter();

ArticleTypeForm ArticleTypeForm = new ArticleTypeForm(); ArticleTypeForm.setId(Integer.valueOf(request.getParameter(\articleTypeDao = new ArticleTypeDao();

if (articleTypeDao.operationArticleType(\删除\

out.print(\language=javascript>alert('删除文章类别成功,请重新查询!articleDao = new ArticleDao(); String result = \文章添加失败!\

if (articleDao.operationArticle(\添加\ }

request.setAttribute(\RequestDispatcher

requestDispatcher

=

result = \文章添加成功!\

request.getRequestDispatcher(\

requestDispatcher.forward(request, response);

');window.location.href='back_ArticleTypeSelect.jsp';\

} else { }

out.print(\language=javascript>alert('您需要将类别所在的文章删除,才

可删除此类别!');history.go(-1);\

ArticleTypeForm.setTypeName(Chinese.toChinese(request.getParameter(\

22

宁夏大学新华学院本科学位论文

ArticleTypeForm.setDescription(Chinese.toChinese(request.getParameter(\ }

public void doPost(HttpServletRequest request, HttpServletResponse response) } }

throws ServletException, IOException { doGet(request, response);

articleTypeDao = new ArticleTypeDao();

if (articleTypeDao.operationArticleType(\添加\

out.print(\language=javascript>alert('添加文章类别成功,请重新查询!

');window.location.href='back_ArticleTypeSelect.jsp';\

} else { }

out.print(\language=javascript>alert('添加文章类别失败!

');history.go(-1);\

4.3 系统模块的实现

4.3.1用户注册模块

用户注册模块位置用户提供注册信息输入,以及对信息校验后的结果,引导用户完成注册。用户注册界面如图4-2。

图4-2 用户注册界面

用户在输入相关信息后,即可点击提交将信息提交给服务器进行处理。如信息输入有

23

宁夏大学新华学院本科学位论文

误,将会的到服务器返回的错误提示。

4.3.2用户登录模块

为用户提供登录信息输入界面,如图4-3。

图4-3 用户登录界面

4.3.3 Blog首页

考虑到日志是博客的主体部分,设计Blog首页默认显示的是用户的日志列表,右侧是好友列表和最新公告,如图4-4。

图4-4 Blog首页

4.3.4 公告模块

公告界面给用户提供了一个展示最新重要消息的平台,通过导航栏用户可以方便进入

24

宁夏大学新华学院本科学位论文

公告界面。如图4-5。

图4-5 公告界面

4.3.5 用户相册模块

用户相册界面将用户上传的照片以缩略图列表显示,用户可以点击任何一张图像以查看大图。如图4-6。

图4-6 用户相册界面

4.3.6博客管理模块

a.博客管理界面

在博客前台导航界面点击管理博客连接即可进入博客管理界面,该页面提供文章管理、公告管理、相册管理、好友管理等模块。如图4-7。

25

宁夏大学新华学院本科学位论文

图4-7 博客管理界面

b.发表文章界面

提供了简单的文章编辑页面,由于笔者技术有限,没有设置字体、段落等工具栏,敬请谅解。如图4-8。

图4-8 发表文章界面

c.上传照片界面

提供了文件选择菜单,点击浏览按钮即可打开选择文件窗口供用户选择上传文件。如图4-9。

26

宁夏大学新华学院本科学位论文

图4-9 上传照片界面

27

宁夏大学新华学院本科学位论文

第5章 系统测试

5.1系统的测试

测试主要分为两个大的方面来进行测试:功能测试,界面测试。在功能测试中,被测对象的设计较为充分,设计的决策和分支的种类较多,被测对象的规模也较大;在界面测试中,不仅进行正常操作方面的测试,也进行许多非常规操作的测试,应该说本次测试是较为充分的。

5.2测试内容

5.2.1程序代码检查

本次代码检查完成的工作有程序单位的首部应有程序说明和修改备注,程序中不同的功能部分应有清楚的说明信息,较复杂的程序段落也有说明信息,类、变量和方法的命名要符合统一的命名规范。。

5.2.2功能测试

注册:填写规范的注册信息进行注册,可以成功注册。填写非法注册信息弹出相应提示。

登录:用正确的用户名密码登录,可以成功登录。用错误的用户名或密码登录,弹出错误提示。

发表文章:进入发表文章页面,输入标题、文章内容,点击“发表文章”弹出发表成功提示,进入日志页面可以看到已发表的文章,单击阅读全文可以正常进入全文浏览页面。

上传照片:进入上传照片页面,点击“浏览”,选择本地图片文件,点击“上传”,相片描述故意留空,点击“保存”后弹出提示“请填写相片描述”。填写描述后单击“保存”,显示上传成功。进入前台相册可看到已上传照片的缩略图,点击缩略图可以正常打开大图浏览窗口。

5.2.3正确性测试

添加/修改/删除操作的程序,测试添加/修改/删除操作的结果是否正确。测试时应手工打开数据库表,以检查添加/修改/删除的结果;有查询操作时,检查在各种选择项的合理组合下,所产生的结果,对照数据库中的数据是否正确;对照设备管理系统的要求,测试程序是否正确。

5.2.4安全性测试

在未成功登录的情况下在IE地址栏直接输入后台页面地址,返回错误页面,显示“您还未登录或登录超时,请单击这里重新登录!”的错误信息。以游客身份进入博客主页,没有显示“管理博客”模块。

28

宁夏大学新华学院本科学位论文

5.3测试结果

以上测试系统均可以正常通过,完全可以达到预期的功能要求。并且安全标准也可以完全达到。程序的代码也符合规范,具有较高的可读性。另外,性能方面,并没有太长时间的延迟,所有操作均在用户可接受的范围内。

29

宁夏大学新华学院本科学位论文

第6章 总结

经过几个月的努力,在老师悉心帮助下我终于完成了该Blog系统。通过对整个系统从分析、设计到编码、实现的开发过程的体验,我深刻体会到软件工程标准流程的必要之处,学到了许多课程中无法学到的东西,加深了对专业知识的理解,为今后在实际工作中更好的发展打下了坚实的基础。

6.1 完成情况

该系统具有JAVA技术所具有的许多优良特性。并且,在系统的结构设计上进行了大量研究与设计。提高了系统的可维护性以及运行效率。系统采用了层次结构,这样,系统的层次与层次之间所暴露的只是特定的接口。如果需要对某一层次进行修改,其它层次可以几乎不受影响,大大提高了系统的可扩展性。分层的设计模式使系统的内部处理过程对用户隐蔽,又提高了系统的安全性。系统用Servlet来转发表示层和业务逻辑层之间的请求和响应,解决了单纯JSP参数传递复杂的问题,提高了页面代码的可读性。系统数据库的操作用Dao持久层来实现,对上一层提供统一的数据库操作接口,降低了数据库访问的复杂性,也同样提高了业务逻辑代码的可读性。

但同时也应看到,由于时间仓促系统的实现还不是尽善尽美,有待于进一步的改进和完善。如页面的美观性比较差、系统的功能比较少,希望以后可以继续完善。

6.2 主要实现功能

(1)实现了用户的注册、登录、修改和删除。 (2)文章的分类、发表和编辑。 (3)公告的发布和编辑。 (4)照片的上传、描述和删除。 (5)添加和回复留言。

6.3 展望

Blog作为一个在互联网上表达自己的心声的平台。它让不同年龄和不同背景的人们能够互动起来,在以后的日常生活中,它会作为人们生活的一部分,人们的情绪、智慧、意见和思想都将在这里表达。它也是一种新的文化现象,它的繁荣凸现网络的知识价值,标志着互联网发展开始步入更高的阶段。Java技术相对于其它网站技术有着相当大的优势,如较高的运行效率、安全性和扩展性等。因此基于Java技术的Blog系统在以后的网络社会中将会有良好的发展前景。

30

宁夏大学新华学院本科学位论文

参考文献

【1】Ivor Horton. Java 2 入门经典 JDK 5[M]. 第5版. 北京:机械工业出版社, 2006 【2】张孝祥,张红梅. JavaScript 网页开发—体验式学习教程[M]. 北京:清华大学出版社, 2004 【3】程成. 软件工程[M]. 北京:中国电力出版社, 2004

【4】飞思科技产品研发中心. JSP应用开发祥解[M]. 北京:电子工业出版社, 2004 【5】弗里曼.深入浅出设计模式.南京:东南大学出版社,2005

【6】叶核亚.Java2程序设计实用教程.第二版. 北京:电子工业出版社, 2008 【7】丁宝康. 数据库原理. 北京:经济科学出版社, 2004

31

宁夏大学新华学院本科学位论文

致 谢

我首先要感谢的是我的指导教师。此次毕业设计是在庄老师的精心指导下完成的。从毕业设计的选题、资料的收集、需求分析,到论文的撰写与定稿,都凝聚着导师的心血。她不仅在专业知识上给予我悉心的指导,而且还在我遇到困难时给予我很大的帮助,传授了不少自己的经验教训,这些都将使我终身受益。谨此对庄老师表示最衷心的感谢!

同时,我也要感谢学校提供给我这样一次难得的实践机会,使我能够在走出校门之前得到锻炼,通过此次毕业设计,必将对我的将来产生生积极的影响。

最后要感谢所有被本文引用或参考的文章的作者,他们一些开拓性的工作是我进行深入研究的基础。

32

本文来源:https://www.bwwdw.com/article/1lw2.html

Top