[计算机软件及应用]基于JSP+Servlet的博客系统的设计.doc_第1页
[计算机软件及应用]基于JSP+Servlet的博客系统的设计.doc_第2页
[计算机软件及应用]基于JSP+Servlet的博客系统的设计.doc_第3页
[计算机软件及应用]基于JSP+Servlet的博客系统的设计.doc_第4页
[计算机软件及应用]基于JSP+Servlet的博客系统的设计.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

沈阳理工大学学士学位论文摘 要随着互联网技术的高速发展,生活节奏的加快,博客被越来越多的人选择作为学习和交流的工具。博客的内容丰富多彩,有对其他网站的超链接和评论,有个人构思,还有新闻日志、照片、诗歌和散文等。博客具有自主性、开放性、互动性和共享性的特点,是一个很好的交流的渠道,思想展现的舞台和学术探讨的园地。本文首先对博客产生背景、发展现状及研究意义进行了介绍;然后介绍了相关开发工具及开发技术;最后以博客日志发布管理为基础,结合实际需要,详细描述了多用户博客系统的设计、开发全过程。本系统开发基于B/S架构,使用Java作为开发语言、MySQL为数据库,结合MVC分层思想,采用JSP+Servlet+Javabean的“高内聚,低耦合”的设计模式进行博客管理系统的开发,以加快整个系统的开发进度,达到软件复用的目的。关键词:博客;Web2.0;B/S架构;MVC;JSPIIAbstractWith the rapid development of Internet technology and high speed of life rhythm, Blog has being chosen by more and more people as the tool of study and communication. The content of Blog is very rich and colourful: some has hyperlink and comment of other website, some about personal thinking, news, music, article and so on. Because of the character of independence, open, interaction and share of Blog, it is regarded as an outlet of good exchange channel, the stage of personal thought displaying, and the garden area of knowledge studying.This article talk about blog background, development status and significance firstly; and describes related development tools and technologies; and finally to blog post management as the basis, combined with actual needs, more describes multi-user blogging system design and development process. This system development framework based on the B/S, using Java as the development language, MySQL database, combined with MVC delaminating, take the high cohesion and low coupling proven JSP + Servlet + JavaBean for blog management system development, and to accelerate the development of the entire system to achieve the purpose of software reuse.Key words: Blog; Web2.0; B/S; MVC; JSP沈阳理工大学学士学位论文 目 录摘 要IAbstractII1绪 论11.1课题背景11.1.1 博客系统概述11.1.2 博客系统发展现状及趋势11.2系统技术方案21.2.1 方案分析21.2.2 设计技术21.3关键技术41.3.1 JSP41.3.2 Servlet51.3.3 JavaBean52需求分析62.1系统可行性分析62.1.1 市场可行性分析62.1.2 经济可行性分析62.1.3 技术可行性分析62.2系统性能要求72.3 系统运行环境要求72.4 系统功能分析72.4.1 系统功能概述72.4.2 系统基本功能要求72.4.3 系统用户分析82.4.4 系统详细功能描述83系统总体设计113.1 系统功能模块划分113.2 数据库设计113.2.1 user用户表113.2.2 blog日志表123.2.3 comments评论表123.2.4 advice公告表133.2.5 usercategory用户分类表133.2.6 photo照片表143.2.7 voice留言表144系统详细设计与编码实现154.1 程序结构154.2 数据库持久化层实现174.2.1 DBConn类174.2.2 DAO层184.3 系统主要功能模块设计实现204.3.1 系统主页设计204.3.2 系统登录注册模块设计214.3.3 普通注册用户管理模块设计244.3.4 管理员管理模块设计345系统测试375.1 链接测试375.2 表单测试375.3 浏览器兼容测试375.4 链接速度测试38结 论39致 谢40参考文献41附 录A 英文原文42附 录B 汉语翻译49II沈阳理工大学学士学位论文1 绪 论随着互联网技术的高速发展和日益的普及,互联网用户迅速增加,用户对互联网的寄托也发生了翻天覆地的变化,用户不甘于只单单的被动的接受互联网提供的内容,更希望能够加入到内容制造的大家庭中,这时传统的Web应用已经显得力不从心,而Web2.0的出现,极大的改变了这一局面。所谓Web2.0其核心就是用户不只是内容的被动浏览者,同时也是内容的制造者。正是因为整个互联网产品设计理念的重大变化,具有代表性的Web2.0时代的互联网产品也就相继出现,如:论坛,博客、威客,社区、RSS和SNS等。1.1 课题背景1.1.1博客系统概述博客的英文名词是Blog,该词来源于“Web log”(网络日志)的缩写,是一种十分简易化的个人信息发布方式,倡导思想的交流和共享。博客近几年来风靡互联网世界,被认为是是继电子邮件、网络论坛、即时通讯之后出现的第四种网络交流载体,是Web2.0的重要组成部分,是誉为“互联网的第四块里程碑”。从理解上讲,博客是“一种表达个人思想、网络链接、内容,按照时间顺序排列,并且不断更新的出版方式”。简言之,Blog就是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。一个Blog就是一个网站,通常由简短且经常更新的张贴文章组成,这些文章按时间顺序排列,其内容和目的各不相同,有的相当于博客作者本人的随笔和日记,有的则是一群人基于某个特定的主题或共同利益领域的集体创作,且都包含许多其他网站的超级链接和评论,通过网站传达实时信息。在Web 2.0应用中,博客(Blog)是Web 2.0核心应用中最典型、最流行的代表之一,也是Web 2.0技术应用的最直观的表现,是Web 2.0精神和理念的具体体现。目前基于J2EE的开源框架也已经非常成熟,可以利用现有的优秀框架进行系统的设计与构建,使用J2EE技术来设计实现博客系统正是本次毕业设计的目的所在。1.1.2博客系统发展现状及趋势“中国博客之父”方兴东将博客概念引入中国后,博客在多元化网络浪潮的推动下在中国迅速发展起来,伴随着几大BSP(博客服务提供商)的广告效应以及博客自身的魅力,它越来越多地被大众所接受。许多人真正接触博客都是从新浪开始,从名人到锐博客,新浪博客凭借其浏览量将博客在中国的发展写下了浓厚的一笔,推动了博客这个新兴产物在中国得以大面积的铺开。依托于QQ这个庞大的消费群体,QQ空间的诞生似乎是理所当然了,而个性化时尚元素成了QQ空间最大的卖点,无需任何的代码烦恼,年轻一族可随意玩转QQ空间,唯一的缺点是系统的不稳定和速度缓慢。2006年下半年,网易部落正式升级为网易博客,它整合网易相册、邮箱、同学录和社区等多个产品,无论是功能的强大还是模版设置的多样化,操作的简易性,及圈子功能的不断完善,网易博客都发挥得淋漓尽致。还有,Live Spaces是外资互联网企业首次在国内引入的博客服务,得益于MSN,一经进入就占领了高端用户市场,彰显出一种大家风范,呈现出简约沉稳并且又不失娱乐的风格。国内外开发博客系统的技术多种多样,时下国外最流行的几个开源博客系统,例如WordPress、Serendipity等多以PHP为开发语言;此外,在开发博客系统时,人们更愿意使用具有图形化界面的ASP.net作为开发工具。411.2 系统技术方案1.2.1 方案分析由于博客提供了信息的实时发布,动态展示,信息状态的跟踪以及博主与游客、博主与博主之间的高交互性行为,因此对系统开发提出了比较苛刻的要求,为更好地适应系统的可扩展性,便于系统维护,在系统开发框架中选用了较流行的JSP+Servlet+JavaBean的设计结构。系统在B/S架构的基础上,选用Java作为开发语言,Eclips作为开发工具,后台使用MySQL5.0担任系统数据库的重任,运行服务器采用Tomcat7.0,Window系统是稳定的XP运行平台,适应博客系统的大众性。同时,为了提升客户端的用户体验,还会借助客户端技术JavaScript脚本语言。采用MVC设计模式,从而使整个系统的架构更加清晰,便于系统的扩展与维护。1.2.2设计技术1、设计语言Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言,是一种可以撰写跨平台应用软件的面向对象的程序设计语言,伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。JDK(Java Development Kit) 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库,自从Java推出以来,JDK已经成为使用最广泛的Java SDK1。2、开发平台J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。 目前,Java 2平台有3个版本,它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构2,3。3、开发工具本次设计采用JDK1.6,从SUN的JDK5.0开始,提供了泛型等非常实用的功能。从6.0开始,其运行效率得到了非常大的提高,尤其是在桌面应用方面。系统以 Eclipse Java EE IDE for Web Developers作为开发工具,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, JSP, CSS, Javascript, SQL;相比MyEclipse,它可以免费使用,可通过安装相应的插件来集成tomcat服务器,自由的配置自己的开发环境。简单而言, Eclipse是一款功能强大免费的J2EE集成开发环境,支持代码编写、配置、测试以及除错4。4、数据库MySQL是基于SQL的小型关系型数据库管理系统,由于其体积小、速度快、成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。更重要的是提供了用于C、C+、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API,从而可以很容易的将其加入到各种应用中。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。本系统选用MySQL5.0进行开发5。5、Web服务器Tomcat 是Apache-Jarkarta的一个子项目,是一个免费的、开放源代码的、支持JSP和Servlet技术的容器,它同时又是一个Web服务器软件。它运行时占用的系统资源小、扩展性好,支持负载与邮件服务等开放应用系统常用的功能。Tomcat是一个小型的轻量级应用服务器,它具有技术先进、性能稳定,而且免费的优点,深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器,在中小型系统和并发访问用户不是很多的场合下普遍使用。本系统中选用Tomcat7.0进行开发6。6、JavaScriptJavaScript是目前互联网上最流行的脚本语言,并且目前所有主要浏览器都能很好的支持它。在当今Web2.0时代的应用中,无一不借助它来提升客户端的用户体验7。7、MVC设计模式MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(Model)、视图(View)、控制器(Control)。它们各自处理自己的任务。具有低耦合性、高重用性和可适用性、较低的生命周期、快速的部署、可维护性、有利于软件工程化管理的优点8,9。1.3 关键技术JSP+Servlet+JavaBean的设计模式是对MVC设计思想的良好实现,一共划分了三个业务层:前台展示+业务控制+数据库操作;其中JSP主要实现前台的展示(View),Servlet主要实现业务的控制(Control),JavaBean主要实现数据库的操作(Model)。1.3.1 JSP在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame10,11,12。 JSP的优点:对于用户界面的更新,其实就是由 Web Server进行的,所以给人的感觉更新很快。 所有的应用都是基于服务器的,所以它们可以时刻保持最新版本。 客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改。1.3.2 Servlet当Web刚开始被用来传送服务时,服务提供者就已经意识到了动态内容的需要。Applet是为了实现这个目标的一种最早的尝试,它主要关注使用客户端平台来交付动态用户体验。与此同时,开发人员也在研究如何使用服务器平台实现这个目标。开始的时候,公共网关接口(Common Gateway Interface ,CGI)脚本是生成动态内容的主要技术。虽然使用得非常广泛,但CGI脚本技术有很多的缺陷,这包括平台相关性和缺乏可扩展性。为了避免这些局限性,Java Servlet技术因应而生,它能够以一种可移植的方法来提供动态的、面向用户的内容。一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。Java Servlet技术为这些应用程序定义了一个特定于HTTP的 servlet类。javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现Servlet接口,该接口定义了生命周期方法。当实现一个通用的服务时,您可以使用或扩展由Java Servlet API提供的GenericServlet类。HttpServlet类提供了一些方法,诸如doGet和doPost,以用于处理特定于HTTP的服务。1.3.3 JavaBean用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,Java中开发但可以跨平台重用的组件,它是一种组件体系结构,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。 JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。沈阳理工大学学士学位论文2 需求分析2.1 系统可行性分析可行性分析是系统开发的一项关键步骤,通过对整个系统的需求,技术及开发方法,以及开发人员、所需资金的综合考虑以评估对于该系统的开发是否符合实际。2.1.1市场可行性分析随着博客的发展,越来越多的人希望拥有一个属于自己的博客,时下BSP(博客服务供应商)数量众多,国内的比较著名的财经博客:中金博客、和讯博客和金融界博客,它们的目标人群基本就是广大股民和从事证券或者金融相关行业的人员,所以这些人一般上网浏览博客的话,会倾向于这几家BSP所提供的博客。著名的IT技术博客如:博客巴士和CSDN博客等。几大门户之一的新浪博客,但主要侧重于名人博客,通过名人效应,带动着广大粉丝网友参与到其中的互动中。而在当今整个IT界相当有影响力的腾讯公司,它们则借助于强大的用户群,将他们的博客产品QQ空间覆盖到了80%以上的上网用户。在这样的市场导向下,我们可以预想如果博客系统从行业入手,做一个专业点的垂直行业的博客,同时博主也也可以有自己的天地,那么这样的博客系统必有它的市场。此博客系统具有简单、快捷、低成本的特点。博客就像一个个性化的主页,只需要注册就可以获得一个属于自己的天地,抒发感情、记录生活点滴或是整理学习笔记。与传统的个人主页相比,它的优势在于简单,“会上网打字,就会博客”。博客界面设计美观,方便用户使用。2.1.2经济可行性分析该博客管理系统是个低成本的系统,用户注册博客也都是免费注册,在系统预计盈利方面计划采用植入式广告。普通用户一般不会采用购买独立域名或者使用开源博客系统安装在自己的服务器上,他们通常最终选在BSP上注册一个账号,拥有一个博客。因此只要博客做出特色,吸引网民在这个博客系统中注册博客,广告的良性循环是该系统经济可行性的支柱。2.1.3技术可行性分析该博客系统开发采用了成熟并符合实际应用的开发方法,大量使用CSS+DIV布局,页面美观、灵活。动态网页采用JSP技术,基于MVC设计模式,提升了系统的可扩展性、维护性和健壮性。系统后台采用小巧、高效的MySQL数据库,是系统的响应时间更短。配合稳定的Tomecat7.0服务器,使得整个系统的运行效率大大提升。沈阳理工大学学士学位论文2.2 系统性能要求各模块界面布局合理友好、功能完善、流程清晰,色彩搭配和谐、突出主题特色;系统整体设计合理、功能齐全、操作简便、界面友好、安全可靠;方便简单、链接正确、流程清晰,系统具有可操作性、易用性和灵活性;支持多用户并发访问,要求响应时间短,页面响应时间不能超过3秒,并且页面不能出现假死现象。2.3系统运行环境要求(1)硬件要求:PC一台,Windows XP以上操作系统,20GB以上硬盘容量,1G以上内存。(2)软件要求:JDK1.6,Eclipse及Tomcat插件以及相应的jar包,MySQL5.0 及以上版本;Tomcat6.0以上版本,Ultraedit,SQLyog5.0,Dreamweaver8.0及以上版本。2.4系统功能分析2.4.1系统功能概述本系统最主要的功能是体现多用户的使用,用户可以在本系统中注册,注册成功后,用户即可拥有属于自己的博客,可以发表博文、上传照片、管理自己的相关信息。同时,其他用户也可浏览博客文章、评论博文、给他人留言、下载图片等操作。对于普通游客只能在前台页面实现文章等信息的浏览,不能查看和添加评论。管理员登录系统后,可以进入管理员后台对系统进行维护,实现对用户、评论、日志的删除功能,发布公告,以维护系统的安全性与合法性13。2.4.2 系统基本功能要求博客管理系统功能如图2.1所示,系统主要功能包括以下几个方面(1)用户的登录与注册。(2)根据用户角色显示相应菜单。(3)游客可以登录系统查看博客内容,但是不能发表、评论博客内容。(4)用户注册成功后,可以进入自己的博客,实现对自己用户信息的修改与用户的注销;对个人日志进行管理, 包括发表日志、删除日志、搜索日志、修改日志,管理个人博客中的评论,包括添加评论、删除评论;对个人日志的类别进行管理,包括添加类别、编辑类别、删除类别。还可以上传自己的照片,管理自己的照片,可以使用站内应用,包括站内聊天室,给其他注册用户留言,站内文章搜索等功能。(5)系统管理后台,管理员成功登录后,即可进入管理员后台页面,实现对用户、日志、评论的查询、删除功能;并可以添加网站的公告信息。 图2.1 博客管理系统功能模块示意图2.4.3 系统用户分析本博客管理系统包括三类用户:游客,会员,管理员。(1)游客:游客表现为没有登录系统,在当前系统中,没有身份标识,仅仅是浏览者的身份,因此在系统中也只能实现浏览功能。(2)会员:会员是成功注册后并登录系统的用户,用户名作为会员在系统中的唯一标识,会员可以拥有自己的博客,可以实现对自己博客的管理,同时也可由浏览他人博文并发表评论,给其他博主留言以及与其他在线用户互动交流等功能。(3)管理员:该类用户作为特殊的注册用户,可以实现普通用户的所有功能,并可以进入本博客系统的管理员管理页面,对系统进行维护。2.4.4系统详细功能描述本博客系统主要用例包括:游客用例,注册用户(会员)用例,管理员用例。1、游客用例如图2.2所示 图2.2 游客用例图(1)浏览照片:游客可以通过系统首页链接浏览照片并下载照片。(2)浏览日志:游客可以通过系统首页链接浏览某一篇日志。2、会员用例如图2.3所示图2.3 会员用例图(1)拥有游客的所有权限。(2)日志管理:对本用户博客日志进行管理,具体操作包括:发表日志、修改日志、删除日志、查询日志。(3)评论管理:对本用户博客中的评论进行管理,具体操作包括:查看评论、添加评论、删除评论。3、管理员用例如图2.4所示(1)用户管理:对系统的注册用户进行管理,当某个用户利用该系统的博客发布反动言论或违法的日志,操作员有权将该用户从系统中删除。该用例具体操作有查询用户、删除用户。(2)博文管理:如果博客系统的存在反动、违法的日志,系统管理员有权将该日志删除,以维护整个博客系统内容的健康、合法。具体操作有查询博文、删除博文。(3)评论管理:当博客系统中存在不健康、违法的评论时,系统管理员有权删除该条评论以维护整个系统的安全、合法。具体操作有查询评论、删除评论。图2.4 管理员用例图沈阳理工大学学士学位论文3 系统总体设计博客管理系统采用结构化与原型法相结合的方法,兼顾了结构化开发方法开发过程控制性强的特点和原型法开发周期短、见效快的特点,使开发过程更具灵活性。具体设计过程中,采用结构化生命周期法的设计思想,自顶向下,从总体到部分,合理划分系统的结构,设计数据库模型。在系统的分析与初步设计上采用原型法做出原始模型,根据实际情况的反馈再结合结构化生命周期法进行系统的详细设计。3.1系统功能模块划分博客管理系统主要由系统博客首页、用户博客首页和管理员后台3大功能模块组合而成,系统总体功能模块如图3.1所示:图3.1 系统总体功能模块图(1)博客系统首页:展示博客系统中的日志信息、公告信息,供用户浏览。提供登录、注册功能。(2)用户博客首页:作为注册用户管理自己博客的平台,可以实现用户对博客的管理。(3)管理员后台:类似于用户博客首页,是管理员对博客系统进行维护的平台。3.2数据库设计系统由7张表组成,分别是user(用户表),blog(日志表),userCategory(用户类别表),advice(公告表),comments(评论表),photo(照片表),voice(留言表)。各表详细设计如下14:3.2.1 user用户表表3.1user用户表通过isadmin字段分为两种角色管理员和用户,当isadmin字段值为“0”时表示普通用户,当该字段值为“1”时表示系统管理员。userid是users表的标识列,为该表的主键。表3.1 user用户表字段内容字段名称数据类型是否为空默认值备注用户IDuseridint(11)not nullPK,自增用户昵称usernamevarchar(30)not null用户密码userpwdvarchar(16)not null个人介绍userinfovarchar(100)not null是否是管理员isadminchar(1)not null创建时间createtimedate3.2.2 blog日志表表3.2blog日志表中blogid是日志表的主键,起到标识位的作用。通过外键userid与user用户表关联,一个用户可以有多篇日志;通过外键usercategoryid与usercategory用户自定义分类表关联,一个用户可以自定义多个日志类别。表3.2 blog日志表字段内容字段名称数据类型是否为空默认值备注日志IDblogidint(11)not nullPK,自增发布者IDuseridint(11)not nullFK日志标题blogtitlevarchar(50)not null日志内容blogcontentvarchar(400)not null最多200字日志浏览数viewnumint(11)not null用户自定义分类usercategoryidint(11)not nullFK发布时间createtimedatetimenot null3.2.3 comments评论表表3.3comments评论表通过userid与user用户表关联,一个用户可以有多条评论,通过blogid与blog日志表关联,一篇日志可以有多条评论。表3.3 comments评论表字段内容字段名称数据类型是否为空默认值备注评论IDcommentsidint (11)not nullPK,自增评论者IDuseridint (11)not nullFK博客IDblogidint (11)not nullFK评论内容cmtcontentvarchar(200)not null最多100字评论发布时间cmttimedatetimenot null3.2.4 advice公告表表3.4advice公告表通过userid与user用户表关联,本程序中设置只有管理员才能发布公告,所以userid等于user表中的管理员的userid。表3.4 advice公告表字段内容字段名称数据类型是否为空默认值备注公告IDidint(11)not nullPK,自增公告标题titlevarchar(20)not null公告人IDuseridint (11)not null1FK公告时间pdatedate公告内容contentvarchar(100)not null3.2.5 usercategory用户分类表表3.5usercategory用户分类表用于存放用户为日志添加的类别。通过userid与user表关联,一个用户可以有多个用户分类。表3.5 usercategory用户分类表字段内容字段名称数据类型是否为空默认值备注自定义分类IDucategoryidint(11)not nullPK,自增所属用户IDuseridint(11)not nullFK自定义分类名ucategorynamevarchar(30)not null3.2.6 photo照片表表3.6photo照片表用于存放用户上传的照片的地址。通过userid与user表关联,一个用户可以上传多张照片。表3.6 photo照片表字段内容字段名称数据类型是否为空默认值备注照片IDidint(11)not nullPK,自增所属用户IDuseridint(11)not nullFK照片地址addressvarchar(100)not null照片介绍photoinfovarchar(100)not null上传时间pdatedatetime3.2.7 voice留言表表3.7voice留言表中的fromid和toid都是与user表的userid相关联的,分别表示留言方和留言接受方,一个用户可以给多个用户留言,一个用户也可以接受多个用户的留言。表3.7 voice留言表字段内容字段名称数据类型是否为空默认值备注留言IDidint(11)not nullPK,自增内容contentvarchar(100)not null留言者fromidint(11)not nullFK被留言者toidint(11)not nullFK留言时间vdatedatetime沈阳理工大学学士学位论文4 系统详细设计与编码实现4.1 程序结构本系统源程序包结构如图所示。图4.1 系统程序结构图1、包名称解释:(1)myblog为项目名称,也是项目的根目录。(2)src为源文件目录,系统设计中使用接口,能更好得实现系统的延展与维护。源文件包含以下几个部分:l com.liandiedu.bean:作为JavaBean对象,包中包含用户类,日志类,评论类等,是数据库中各表的实例化对象。 l mon:工具包,里面包含着日期格式化类和数据库连接类。l com.liandiedu.dao:利用封装好的bean中的对象与数据库交互,实现对数据库的查询,修改,删除,添加等操作,主要接受Servlet的调用,将结果返回给调用他的JSP或者是Servlet。l com.liandiedu.servlet:主要业务类,实现业务控制,接收响应,处理请求,调用dao类与数据库交互操作,将查询和操作的结果返回给相应的JSP页面。2、WebContent目录解释图4.2页面结构结构图l css、js、style用于存放页面中相应的css,javascript文件。l images用户存放页面中用于显示的图片。l admin 用于存放各个业务文件夹。l admin/advice,/note,/photo,/comments等为各个业务文件夹,其中包含添加,查看,删除等jsp页面。l WEB-INF文件夹内存放有lib文件夹,里面是系统所需要使用的jar包;包含web.xml配置文件,其作用是用来配置各个servlet以及filter。4.2 数据库持久化层实现4.2.1 DBConn类本程序使用mysql数据库,公用一个DBConn类,创建与数据库的连接,建立与数据库连接以及释放连接的代码如下:/加载驱动将Mysql的驱动强制加载到内存public class DBConn statictry Class.forName(com.mysql.jdbc.Driver); catch (ClassNotFoundException e) e.printStackTrace();/设置URL,获得与数据库的连接对象Connectionpublic Connection getConn()Connection conn = null;try conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/myblog?useUnicode=true&characterEncoding=utf8, root, mysql); catch (SQLException e) e.printStackTrace();return conn;/释放与数据库的连接public void freeConn(Connection conn)if(null != conn)try conn.close(); catch (SQLException e) e.printStackTrace();获得Connection对象之后通过preparedstatement方法获得preparedstatement对象,采用preparedstatement方法而不采用createstatement的原因是:preparedstatement是一种预编译的方法,在处理大批量的数据库操作的时候执行效率更高15。4.2.2 DAO层com.liandiedu.dao里面的各种类通过调用DBConn对象建立与数据库连接,利用SQL语句实现对数据库中相应表的增删改查操作,将查询或操作结果返回给调用他的jsp或者servlet,现以notedao中对数据库中blog表的增加操作(添加日志)为例说明:public int save(Note note)/获取与数据库的连接Connection conn=db.getConn();PreparedStatement ps=null; int flag=0;try /SQL查询语句String sql=insert into blog(userid,blogtitle,blogcontent,usercategoryid,createtime,viewnum)values(?,?,?,?,now(),?);/获得preparedstatement对象ps=conn.prepareStatement(sql);ps.setInt(1, note.getUserid();ps.setString(2, note.getBlogtitle();ps.setString(3, note.getBlogcontent();ps.setInt(4, note.getUsercategoryid();ps.setInt(5, note.getViewnum();/执行添加操作 flag=ps.executeUpdate(); catch (Exception e) e.printStackTrace();finally/释放与数据库连接db.freeConn(conn);return flag;4.3 系统主要功能模块设计实现4.3.1 系统主页设计系统的主页是面向所有的用户对象的,可以在主页进行热门日志和热门图片的浏览,查看公告,进行登录注册等操作,主页如图4.3所示:图4.3 主页画面主页右上角会显示登录用户信息,没有登录会显示以游客身份访问,jsp中的主要代码如下所示:%User user= (User)request.getSession().getAttribute(user); String name=null; if(user!=null) name=user.getUsername(); else name=游客; request.getSession().setAttribute(name, name); /查询热门文章 NoteDao ndao=new NoteDao(); List notes= ndao.queryByviewnum(); /查询公告 AdviceDao adao=new AdviceDao(); List advices=adao.query(); Advice advice= (Advice)advices.get(0); String title= advice.getTitle(); /查询最新图片PhotoDao pdao=new PhotoDao();List photos= pdao.query();%4.3.2 系统登录注册模块设计点击主页右上角的“登录/注册”会跳转到登录注册画面,如图4.4所示:图4.4 用户登录画面登录验证过程:要求输入用户名密码以及验证码,验证码的作用是告知服务器操作的对象是人而非机器程序,服务器会首先验证验证码是否正确,防止非法以及恶意操作,如果验证码正确,就会去查询数据库,检测用户名和密码是否正确,否则将跳转回登录画面,页面每刷新一次验证码都会变换一次;当输入的用户名和密码正确的时候将返回首页16。登录验证的流程图如图4.5所示: 图4.5 登录验证流程图点击登陆界面的注册用户将进入用户注册画面如图4.6所示:图4.6 用户注册画面注册画面会做注册的输入验证,当输入为空或者两次输入的密码不一致时将出现弹出对话框提示,本程序通过javascript实现验证,主要实现代码如下:/用户注册验证function saveuser() if(document.form1.username.value=)window.alert(请输入用户名!);return false;if(document.form1.userpwd.value=)window.alert(请输入用户登录密码!);return false;if(document.form1.reuserpwd.value=)window.alert(请输入重复登录密码!);return false;if (form1.userpwd.value!=form1.reuserpwd.value)alert(您两次输入的密码不一致,请重新输入!);return false;if(document.form1.userinfo.value=)window.alert(请输入个人简介!);return false;4.3.3 普通注册用户管理模块

温馨提示

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

评论

0/150

提交评论