Java个人微博客毕业论文_第1页
Java个人微博客毕业论文_第2页
Java个人微博客毕业论文_第3页
Java个人微博客毕业论文_第4页
Java个人微博客毕业论文_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、学士学位毕业设计(论文)基于JSP的个人微博系统 摘要博客是一种新的表达方式,它传播的不仅仅是情感,还有很多智慧、观点和想法。从某种意义上说,这是一种新的文化现象,标志着互联网的发展已经开始进入更高的阶段。该系统主要实现了博主发布博客和照片,访客可以浏览评论,以及发表留言等功能。该系统的设计采用Enterprise Architect和MyEclipse工具来实现。MVC是一个框架模型,它强制分离输入、处理和输出的应用程序。使用MVC应用程序分为三个核心组件:模型、视图、控制器。他们处理自己的任务。最典型的MVC模式是JSP+servlet+javabean。该系统使用的数据库是SQL Ser

2、ver2008。SQL Server可以承受世界上最强的负载,对整个数据库、数据文件和日志文件进行加密,而不需要对应用程序进行修改,而且它通过第三方支持密钥管理(HSM)产品和安全模块提供了对外键管理的支持。关键词:视图/模型/控制器(MVC);博客系统;数据库目录TOC o 1-3 h z u HYPERLINK l _RefHeading_Toc384905962 前言1 HYPERLINK l _RefHeading_Toc384905963 第1章绪论2 HYPERLINK l _RefHeading_Toc384905964 1.1 开发工具介绍2 HYPERLINK l _RefH

3、eading_Toc384905965 1.2 论文组织结构介绍3 HYPERLINK l _RefHeading_Toc384905966 第2章项目需求分析4 HYPERLINK l _RefHeading_Toc384905967 2.1 需求功能点介绍4 HYPERLINK l _RefHeading_Toc384905968 2.2 用例图表示需求4 HYPERLINK l _RefHeading_Toc384905969 2.3 用例图描述6 HYPERLINK l _RefHeading_Toc384905970 第3章详细分析与设计11 HYPERLINK l _RefHead

4、ing_Toc384905971 3.1 面向对象分析11 HYPERLINK l _RefHeading_Toc384905972 3.2 类图设计11 HYPERLINK l _RefHeading_Toc384905973 3.2.1 类图12 HYPERLINK l _RefHeading_Toc384905974 3.3 数据库基本分析与建模12 HYPERLINK l _RefHeading_Toc384905975 3.3.1 数据库的需求分析13 HYPERLINK l _RefHeading_Toc384905976 3.3.2 数据库的逻辑设计13 HYPERLINK l

5、_RefHeading_Toc384905977 第4章项目编码实现18 HYPERLINK l _RefHeading_Toc384905978 4.1 系统的实现18 HYPERLINK l _RefHeading_Toc384905979 4.1.1 用户表现层18 HYPERLINK l _RefHeading_Toc384905980 4.1.2 业务逻辑层20 HYPERLINK l _RefHeading_Toc384905981 4.1.3 数据持久层26 HYPERLINK l _RefHeading_Toc384905982 4.2关键技术介绍27 HYPERLINK l

6、_RefHeading_Toc384905983 4.2.1 MVC模式27 HYPERLINK l _RefHeading_Toc384905984 4.2.2 数据库连接池的配置和使用28 HYPERLINK l _RefHeading_Toc384905985 4.2.3 中文的乱码问题29 HYPERLINK l _RefHeading_Toc384905986 第5章项目测试设计31 HYPERLINK l _RefHeading_Toc384905987 5.1 测试计划31 HYPERLINK l _RefHeading_Toc384905988 5.2 具体设计测试的方案介绍3

7、1 HYPERLINK l _RefHeading_Toc384905989 5.3 列举测试数据与分析32 HYPERLINK l _RefHeading_Toc384905990 结论33 HYPERLINK l _RefHeading_Toc384905991 参考文献34 HYPERLINK l _RefHeading_Toc384905992 附录35 HYPERLINK l _RefHeading_Toc384905993 辞36前 言博客,翻译过来就是网络日志、博客或博客,是一种通常由个人管理,会不定期发布新文章的博客。许多博客专注于提供评论或表达对新闻中特定话题的看法,而另一些

8、则被用作个人日记,记录心情和生活。一个典型的博客结合文字、图片、其他博客或其他博客,与话题相关的其他媒体进行互动,让读者留下评论,这是很多博客所追求的。博主可以在与读者的互动中交到朋友。虽然从未谋面,但也能感受到朋友的支持和鼓励。博客作为一种新的表达方式,不仅传播情感,也传播很多智慧、思想和观点。从某种意义上说,它是一种新的文化现象,它的出现和繁荣标志着互联网的发展进入了一个更高的阶段,从而真正凸显了互联网的知识价值。博客已经成为网络文化不可分割的一部分。现在每个网民都有自己的博客,可以浏览和阅读博客,几乎每个人都有一两个喜欢的博客,无论是传统新闻媒体的官方新闻博客,还是与他的爱好相关的话题博

9、客,还是纯粹的娱乐博客。由于博客交流比电子和讨论组更容易和简单,博客已经成为家庭、朋友、部门和团队中越来越受欢迎的交流方式。博客可以实现多个用户之间的互动,满足用户之间互相访问博客、评论和留言的需求。目前各大博客各有特色,功能完善。但是有些博客页面广告太多,让人眼花缭乱。用户在使用博客时,经常会无意中点击进入广告,一些恶意制作的广告会携带病毒,导致电脑中毒。为了满足用户的基本需求,创建一个安全健康的博客系统,设计了一个个人微博系统。本系统采用JSP技术MVC模式实现。博客系统中照片的上传和下载是通过jspSmartUpLoad组件实现的。上传图片的路径存储在数据库中,通过查询数据库中存储的路径

10、,在页面上显示相应的照片。因为博文列表中可能有大量博文,所以默认显示每个类别的最新十篇博文。点击对应的博文类别标题,浏览该类别下分页显示的所有博文,方便用户查找和浏览博文。用户可以给博主留言,最后三条评论会显示在首页留言模块。每篇博文都有浏览量和评论数。用户点击每篇博文的标题,进入博文展示页面。此时,博文的浏览量会更新,用户对博文进行评论后,评论数也会更新。第一章情绪理论1.1开发工具介绍个人微博系统基于MVC+JDBC架构开发。开发工具为MyEclipse 8.5,运行环境为Windows 7+Tomcat 7.0 server,数据库为SQL Server2008,UML建模工具为Ente

11、rprise Architect。开发工具:MyEclipse Enterprise Workbench(简称MyEclipse)是Eclipse IDE的扩展。利用该平台,可以大大提高数据库和J2EE的开发和发布以及与应用服务器集成的工作效率。MyEclipse是一个丰富的J2EE集成开发环境,包括完整的编码、调试、测试和发布功能,全面支持HTML、CSS、JSF、Struts、JavaScript、Hibernate和SQL。MyEclipse 8.5是一个基于Eclipse平台的插件工具。该版本集成了Eclipse 3.5.2,改进了团队协作开发和开发周期管理,更好地支持Spring和H

12、ibernate。2.服务器:Tomcat 7.0Tomcat是Apache Software Foundation下的Jakarta project开发的Servlet容器。根据Sun Microsystems提供的技术规范,Tomcat支持servlets和Java Server Pages (JSP),并提供了一些作为Web服务器所独有的功能,如Tomcat管理和控制平台、安全局管理和Tomcat valve。Tomcat可以被视为一个独立的Web服务器,因为它也包含一个服务器。Apache Tomcat包括一个配置管理工具,可以通过编辑XML格式的配置文件进行配置。本系统使用Tomca

13、t 7.0。可以支持Servlet 3.0。数据库:SQL Server 2008SQL Server是一个关系数据库管理系统。最初由微软、Sybase和Ashton-Tate开发,于1988年推出了第一款OS/2。 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/26783.htm t _blank 版本。Windows NT推出后,微软和Sybase相继开发了SQL Server HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/272.htm t _blank 猛拉缰

14、绳走不同的路线,微软将SQL Server HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/258047.htm t _blank 移植到Windows NT HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/25302.htm t _blank 系统专注于 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/522596.htm t _blank 开发提升SQL Server的Windows NT版本。中的SQL

15、Server 2008 HYPERLINK ./%20%20%20%20:/baike.baidu%20%20%20%20/view/2422.htm t _blank Microsoft您可以组织和管理任何数据。结构化、半结构化和非结构化文档的数据可以直接存储在数据库中。您可以查询、搜索、同步、报告和分析数据。数据可以存储在各种设备上,从数据中心最大的服务器到台式计算机和移动设备,无论数据存储在哪里,it部门都可以控制数据。1.2开发技术介绍1.个人微博系统由JSP技术完成。JSP的全称是Java Server Pages,是一种简化的Servlet设计。它以的形式在Html中嵌入Java程

16、序块。JSP Servlet和JSP Servlet都是在服务器端执行,返回一个HTML文本给客户端,客户端可以使用浏览器浏览页面。Web服务器收到访问JSP网页的请求时,首先执行java程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库,重定向网页等。,从而实现构建动态网页所需的功能。JSP页面很少做数据处理,一般只用来实现静态页面,只用来通过表单提交数据,不做业务处理,把业务处理放到servlet里。Java Servlet是JSP的技术基础,常见Web应用的开发需要Java Servlet和JSP的配合。JSP使用Java技术简单易用

17、,完全面向对象,平台无关,安全可靠。图片的上传和下载使用组件jspSmartUpLoad.jarJspSmartUpload是jspsmart开发的一个免费的全功能文件上传下载组件,适合嵌入在执行上传下载操作的JSP文件中。该组件具有以下特征:(1)使用方便。在JSP文件中写三五行java代码就可以上传或下载文件,方便。(2)可以控制上传的全过程。通过使用jspSmartUpload组件提供的对象及其操作方法,可以获得上传文件的所有信息(包括文件名、大小、类型、扩展名、文件数据等。),方便查阅。(3)能够限制上传文件的大小和类型。这样可以过滤掉不符合要求的文件。(4)灵活下载。只需编写两行代码

18、,就可以将Web服务器变成文件服务器。无论文件是在Web服务器的目录中还是在任何其他目录中,都可以使用jspSmartUpload下载。1.3论文的组织结构介绍根据项目开发流程,论文的组织结构如下。第一章介绍了个人微博系统组织文章的开发工具和语言。第二章对系统进行了需求分析和面向对象的分析与设计。第三章通过UML中的用例图和类图对系统项目进行分析,并对数据库进行基本的分析和建模。第四章是项目的编码实现。4.1节介绍了系统的实现以及如何处理乱码的方法。第五章介绍了项目的测试计划和方案,并列出了测试数据和分析结果。最后,对项目开发阶段进行总结和进一步展望。第二章项目需求分析2.1需求功能点介绍随着

19、时代的进步和网络技术的不断发展,博客已经成为网络文化不可分割的一部分。现在每个网民都有自己的博客,可以浏览和阅读博客,几乎每个人都有一两个喜欢的博客,无论是传统新闻媒体的官方新闻博客,还是与他的爱好相关的话题博客,还是纯粹的娱乐博客。与电子和讨论组相比,博客交流更加容易和简单。博客已经成为家庭、朋友、部门、团队中越来越流行的沟通方式。该系统包括博客模块、访客模块和学生模块。1.博主模块:博主登录、发布博文、添加博文类别、修改和删除博文、删除博文类别、添加相册类别、添加相册、删除相册等功能。2.访客模块:浏览博文、发表评论、给博主留言、查看相册等功能。2.2用例图显示了需求在UML中,用例是一组

20、动作序列(包括它的变体)的描述,由系统执行,为参与者产生一个可观察的结果值。用例用于描述一组序列。序列代表了系统之外的事物(系统的参与者)和系统本身(及其关键抽象)之间的交互。在这个系统中有两种类型的参与者。他们是:博主和游客。在下面的用例图中,将分别描述两个参与者可以使用的用例。1.博客用例图图2SEQ 图 * ARABIC一个博客用例图2.游客用例图图2SEQ 图 * ARABIC2游客用例图2.3用例图描述描述了下面的系统用例图。1.Blogger用例图描述(主要用例)(1)以Blogger登录使用如下表所示为例。表2SEQ 表 * ARABIC一个登录系统用例描述用例名称登录博客系统用

21、例目标当blogger登录到系统时,用例开始,它验证blogger的身份,当一个过程完成时用例结束。等级子函数积极分子写日志(部落格)的人情况仅定义了初始路径。前兆条件没有成功的作品博主进入博客主页(index.jsp)主路径博主进入登录界面后,输入正确的用户名和密码,博主登录系统。可选路径博主进入登录界面后,点击“直接进入”异常路径进入登录界面后,博主输入无效账号和/或密码,系统显示“用户用户名和密码错误”。博主可以选择返回主路径的起点,重新输入正确的账号和密码;或者点击“直接进入”(2)以博文管理为例,如下表所示。表2SEQ 表 * ARABIC2博客帖子管理用例描述用例名称博文管理用例目

22、标用例从博主发布、修改和删除博文开始,到博主成功发布、修改和删除博文结束。等级子函数积极分子写日志(部落格)的人情况仅定义了初始路径。前兆条件博主登录个人微博系统成功的作品博主发布、修改、删除博文成功后主路径博主进入发布和管理博文的界面,添加或更新博文,保存在数据库中。可选路径异常路径没有(3)照片管理如下表所示。表2SEQ 表 * ARABIC三相册管理用例描述用例名称相册管理用例目标用例从博主添加和删除照片开始,到博主操作成功结束。等级子函数积极分子写日志(部落格)的人情况仅定义了初始路径。前兆条件博客登录系统成功的作品Blogger成功添加和删除了照片。主路径博主进入添加照片界面后,照片

23、被成功添加和删除,并保存在数据库中。可选路径没有异常路径没有(4)博客文章的分类管理如下表所示,例如。表2SEQ 表 * ARABIC四博客文章类别管理用例描述用例名称博客文章类别管理用例目标用例从博主添加或删除博文开始,到博主成功操作结束。等级子函数积极分子写日志(部落格)的人情况仅定义了初始路径。前兆条件博客登录系统成功的作品Blogger添加和删除了博文类别,并成功保存到数据库中。主路径进入添加和删除博文的界面后,博主可以选择添加或删除博文,并保存到数据库中。可选路径没有异常路径没有(5)以相册类别管理为例,如下表所示。表2SEQ 表 * ARABIC五相册管理的用例描述用例名称相册类别

24、管理用例目标用例从博主添加或删除相册类别开始,到博主成功操作结束。等级子函数积极分子写日志(部落格)的人情况仅定义了初始路径。前兆条件博客登录系统成功的作品Blogger添加和删除相册类别,并成功保存在数据库中。主路径进入添加和删除相册类别界面后,博主可以选择添加或删除相册类别,并存储在数据库中。可选路径没有异常路径没有2.游客用例图描述(主要用例)(1)做出如下表所示的注释,例如。表2SEQ 表 * ARABIC六对用例描述进行注释用例名称评论用例目标当用户评论一个博客发布的博客文章时,用例开始,它处理评论的问题,当用户完成评论时用例结束。等级子函数积极分子用户(游客或博客)情况仅定义了初始

25、路径。前兆条件没有成功的作品评论发布成功。主路径用户提出意见,系统保存意见。可选路径没有异常路径没有(2)发布如下表所示的消息,例如。表2SEQ 表 * ARABIC七发布消息用例描述。用例名称发布消息用例目标用例从用户发布消息开始,处理消息问题,并在消息成功提交时结束。等级子函数积极分子用户(游客或博客)情况仅定义了初始路径。前兆条件没有成功的作品用户已成功发布消息。主路径用户发布消息,系统保存消息。可选路径没有异常路径没有第3章详细分析和设计3.1面向对象的分析面向对象分析是以系统能够完成的功能为基础,以对象之间的关联为核心。分析主要集中在对象的分类,相关属性和操作的识别,类和实例的关系,

26、以及各种对象的行为特征。在面向对象的系统中,客观世界中的所有实体都用对象来表示,此外,对象还可以表示软件开发人员所需的功能。从实现形式上看,对象是一系列状态和一系列可外部调用的操作或方法的包。状态记录操作的结果,方法定义一系列计算步骤。当一个对象被请求执行相关的方法时,就说一个操作已经被应用于该对象。可以在对象上执行的操作描述了由对象执行的功能,这些功能通过外部接口来表达。接口对象可以相互交互,交互是通过消息的传递来完成的。这里,消息是一个对象和另一个对象之间的通信单元,是要求对象执行操作的规范。类是一组具有相同数据结构和相同操作的对象。类的定义包括一组状态描述和方法定义。类的定义可以看作是具

27、有相似状态和共同行为的对象的模板。类模板以外部接口和部分算法和数据结构的形式提供了对类的完整描述。这种方法的主要优点是实现一个类的工作只需要做一次。在一个类中,每个对象都是该类的一个实例,对象可以通过实例化机制动态生成。继承是一种使用现有定义作为基础来建立定义的技术。新类可以通过修改或扩展现有类来定义,因此新类共享现有类的行为,但具有修改和添加的行为,这是继承的本质特征。这个定义的新类成为现有类的子类,而现有类成为新类的父类。从上面可以看出,面向对象不是一种编程语言,而是一种方式。它把程序看作一组相互协作又相互独立的对象,每个对象就像一个微程序,有自己的状态和功能。这种新方法带来了许多突出的优

28、点,如模块化、可重用性和可维护性。object的引入最大限度地减少了“真实世界”和“软件程序”的语义差异,屏蔽了实现细节,使得大型程序的理解和调试变得非常容易;类在软件开发中支持行为共享,提供代码重用,使得面向对象技术在软件开发的全过程中高效且易于维护8。3.2类图设计从用例图到类图是使用UML进行系统分析的核心步骤,也是系统分析和设计的重要步骤。这一步帮助我们从仅仅知道系统完成后将做什么,到系统将如何完成这些功能。类图类图用于显示系统中每个类的静态结构。它表示由类系统处理的事物。这些类可以通过多种方式相互连接,包括关联(类相互连接)、依赖(一个类依赖/使用另一个类)、专门化(一个类是另一个类

29、的专门化)或大包(多个类组合成一个单元)。所有这些关系都与每个类的部分结构一起显示在类图中,其中一个类的部分结构由该类的属性和操作表示。因为类图描述的结构在系统生命周期的任何地方都是有效的,所以一般认为类图是静态的。一般一个系统有多个类图,不是所有的类图都放在一个类图里,一个类可以参与多个类图。下图是这个系统的类图。图31类图3.3数据库的基本分析和建模一个专业管理系统的实现,必然会涉及到后台数据库对系统数据信息的保存和维护。考虑到系统对用户并行处理数据库中数据的需求,一般选择Oracle、DB2等大型数据库管理系统。考虑到系统的可移植性和开源性,采用了对用户并发连接数的优良性能,本系统中的相

30、关数据信息由SQL Server数据库管理系统处理。3.3.1数据库需求分析根据个人微博系统的总体要求,通过对整个系统功能、数据流程和操作流程的分析,可以得出数据库应该包含以下表格:1.文章表:文章编号、文章标题、文章内容、文章发表时间、文章类别、文章浏览次数、文章评论次数。2.文章类别表:文章类别编号和文章类别名称。3.评论形式:评论号、文章号、用户名、评论时间、评论容量。4.博主信息表:博主主编号、博主昵称、博主真实、博主注册时间、博主性别、博主生日、博主身高、博主体重、博主登录次数、博主发布的博文和博客浏览次数。5.消息形式:消息编号、消息发送者、消息容量和消息时间。6.照片表:照片号、

31、相册类别号、照片名、照片路径。7.相册类别表:相册类别号,相册名称,相册封面图片路径。3.3.2数据库的逻辑设计根据个人微博系统的需求分析,在确定各表主键字段的基础上,根据表间相关字段的关系建立表间关系。这些关系的建立可以避免误操作造成的数据库崩溃,保证表间数据的统一性。数据库对应的示意图如下(图3-3)。图3SEQ 图 * ARABIC三数据库对应图博客信息表:文章是一个数据表,用来保存博主发布的所有博客信息。下表(表3-1)列出了该表中包含的字段描述信息。表3SEQ 表 * ARABIC八博客信息表列标题类型宽度列含义主键连续增加外部密钥文章序号(同Internationalorganiz

32、ations)国际组织四编号是是不文章标题可变长字符串50文章标题不不不文章内容文本温蓉蓉不不不文章发送时间可变长字符串50出版时间不不不读取计数(同Internationalorganizations)国际组织四打击不不不注释计数(同Internationalorganizations)国际组织四评论数量不不不文章类型_id(同Internationalorganizations)国际组织四商品类型编号不不是2.博客文章类别信息表:articletype表是一个数据表,用于保存博客文章的类别信息。下表(表3-2)列出了该表中包含的字段描述信息。表32博客帖子类别表列标题类型宽度列含义主键连续

33、增加外部密钥t_id(同Internationalorganizations)国际组织四商品类别号是是不名字可变长字符串50类别名称不不不3.意见表:评论表是用来保存评论信息的数据表。下表(表3-3)列出了该表中包含的字段描述信息。表33意见表列标题类型宽度列含义主键连续增加外部密钥备注d(同Internationalorganizations)国际组织四注释编号是是不文章序号(同Internationalorganizations)国际组织四编号不不是评论员可变长字符串20观察者不不不评论的内容文本评论不不不commentSendTime可变长字符串50评论时间不不不4.Blogger信息表

34、:博主信息表(会员)是用来保存博主个人信息的数据表。下表(表3-4)列出了该表中包含的字段描述信息。表34博客信息表列标题类型宽度列含义主键连续增加外部密钥用户界面设计(User Interface Design的缩写)(同Internationalorganizations)国际组织四博客编辑编号是是不unickName可变长字符串20博客昵称不不不utrueName可变长字符串20真名不不不密码可变长字符串20密码不不不uregisterTime可变长字符串20登录时间不不不uLastLoginTime可变长字符串50上次登录时间不不不usex可变长字符串2性别不不不生日可变长字符串50生

35、日不不不结婚了可变长字符串2结婚不不不超高(同Internationalorganizations)国际组织四高度不不不超轻量级(同Internationalorganizations)国际组织四重量不不不文章计数(同Internationalorganizations)国际组织四博客帖子的数量不不不登录时间(同Internationalorganizations)国际组织四着陆时间不不不数数(同Internationalorganizations)国际组织四访问次数不不不5.消息信息表单:Messages是一个用来保存消息信息的数据表。下表(表3-5)列出了该表中包含的字段描述信息。表35消

36、息信息表列标题类型宽度列含义主键连续增加外部密钥w_id(同Internationalorganizations)国际组织四消息编号是是不姓名可变长字符串50信息接受者不不不w_word可变长字符串最大消息不不不w _时间可变长字符串50消息时间不不不6.图片:Photo是一个数据表,用来保存博主发布的所有照片信息。下表(表3-6)列出了该表中包含的字段描述信息。表36照片表列标题类型宽度列含义主键连续增加外部密钥编号(同Internationalorganizations)国际组织四照片号是是不tp_id(同Internationalorganizations)国际组织四类别号不不是图片名称

37、瓦尔彻50照片名称不不不光路径可变长字符串50照片路径不不不7.相册类别信息表:相册类别表是用来保存相册类别信息的数据表。下表(表3-7)列出了该表中包含的字段描述信息。表37相册类别表列标题类型宽度列含义主键连续增加外部密钥身份(同Internationalorganizations)国际组织四类别号是是不栏目名称可变长字符串50类别名称不不不facepath瓦尔彻50覆盖路径不不不第四章项目编码的实施4.1系统的实施本系统设计了两种用户,即博主和游客。根据不同的用户,分别设计了相关功能所涉及的流程。在个人博客系统中,博主发布博文、添加照片、查看评论、留言等。通过页面上的提示。要求博主在发布

38、博文时填写博文的标题和内容。访问者可以通过页面关联查看不同类别的博文和不同相册的照片。访问者可以对博客帖子进行评论,并发表自己的意见。点击留言板,给博主留言。4.1.1用户表现层下面是本系统各层实现的具体流程。1.前端用户表示层(1)用户登录主页(login.jsp)该系统中有两个用户。直接点击默认输入其游客身份,输入用户名和密码登录成功,输入其博主身份。他们都进入了index.jsp。图4SEQ 图 * ARABIC四登录页面(2)博文展示页面(MyArticleList.sp)点击页面上的“博客列表”,将显示每个类别下的10篇博客文章。单击类别以显示该类别下的所有博客文章,单击博客文章标题

39、以显示博客文章的详细信息。图4SEQ 图 * ARABIC五博客文章显示页面(3)相册展示页面用户点击页面上的“相册列表”,就会显示相册分类和封面图片。点击类别名称,该类别下的所有照片都可以按类别显示。图43相册显示页面(4)留言板页面用户点击页面的“留言板”,显示用户发布的消息页面,用户可以发布消息。图44留言板页面4.1.2业务逻辑层在该系统的业务逻辑层,保存和处理各种类型的对象,如分类信息和用户信息。对应于业务逻辑层的类的包在应用程序目录WEBINF下的classes目录中。下面简要介绍业务逻辑层中的主要类。1.封装了数据库相关操作的BaseDao.java的主要实现代码。package

40、 . personal blog . Dao;导入Java . SQL . connection;导入Java . SQL . driver manager;导入Java . SQL . prepared statement;导入Java . SQL . resultset;导入Java . SQL . SQL exception;导入Java . SQL . statement;公共类BaseDao 私有静态字符串drivater name = . Microsoft . SQL server . JDBC . SQL server driver ;私有静态字符串dbURL = JDBC:S

41、QL server:/127 . 0 . 0 . 1:1433;sDatabaseName = blog _ db ;私有静态字符串userName = sa私有静态字符串psd = 123456/*获得连接*退货*/公共静态连接getConnection() 连接连接=空;尝试class . for name(drivater name);conn = driver manager . getconnection(dbURL,userName,PSD); catch(ClassNotFoundException e)/ TODO自动生成的catch块e . printstacktrace()

42、; catch (SQLException e) / TODO自动生成的catch块e . printstacktrace();返回连接器;/*数据库查询*参数sql*退货*/公共静态结果集sel(字符串sql) Connection con = null语句stmt = null结果集rs = null尝试con = base Dao . getconnection();stmt = con . create statement(ResultSet。类型_滚动_敏感,结果集。CONCUR _可更新);RS = stmt . execute query(SQL); catch (SQLExce

43、ption e) / TODO自动生成的catch块e . printstacktrace();返回RS;/*插入、删除和修改数据库。*/public static int exec(String SQL)int I = 0;Connection con = nullPreparedStatement pstmt = null尝试con = base Dao . getconnection();PS TMT = con . prepare statement(SQL);I = PS TMT . execute update(); catch (SQLException e) / TODO自动生

44、成的catch块e . printstacktrace();最后尝试pstmt . close();con . close(); catch(异常e) e . printstacktrace();返回I;/*关闭所有资源。*参数连接*参数测试*参数rs*/public void closeAll(连接连接,语句结构,结果集rs) /如果(rs!= null) 尝试RS . close(); catch (SQLException e) e . printstacktrace();如果(stmt!= null) 尝试stmt . close(); catch (SQLException e) e

45、 . printstacktrace();如果(conn!= null) 尝试conn . close(); catch (SQLException e) e . printstacktrace();2.LoginServlet的主要实现代码封装了登录页面的相关操作,是:公共void登录(ServletRequest请求,ServletResponse响应)引发ServletException,IOException System.out.print(loginservlet中的loginservlet方法);RequestDispatcher rd = null字符串消息= ;布尔标志=真;

46、session session = request . getsession(false);string userName = request . getparameter( userName );string password = request . getparameter( user pass );if(username = = null | | username . equals( )flag = falseMessage += 请输入用户名 ;if(password = = null | | password . equals( )flag = falseMessage += 请输入

47、密码;如果(标志)if (username = null) 用户名= ;if (password = null) 密码= ;Users u =新用户();u.setUnickName(用户名);/用用户输入的用户名和密码给Lernameu.setUpassword(密码);UserDaoImpl us = new UserDaoImpl();users user = us . doc check(u);/返回当前用户userdao的登录(loginbeaninbean赋值;如果(用户!= null) /跳转到登录成功页面;Message = 登录成功 ;String sql = 更新博客数据库

48、.成员集log in time = log in time+1 ;base Dao bs = new base Dao();System.out.print(执行登录+bs . exec(SQL);session.setAttribute(blog ,u . getunikname();response . send redirect( index . JSP );否则Message = 用户输入的用户名和密码错误 ;request.setAttribute(messages ,消息);rd = request . getrequest dispatcher( log in . JSP );r

49、d.forward(请求、响应);/跳转到index.jsp并提示用户;否则request.setAttribute(messages ,消息);rd = request . getrequest dispatcher( log in . JSP );rd.forward(请求、响应);3.发布博文的主要实现代码:public void article add(servlet request请求,ServletResponse响应)引发ServletException,IOException 字符串消息= ;字符串向前= ;Date Date = new Date();string date

50、1 = stringdateparseutil . getstring(date);boolean flag=validateArticle(请求,响应);system . out . print(flag);如果(标志)Article文章= new Article();article . setarticlecontent(change(request . getparameter( articlecontent );/文章内容article.setArticleSendTime(日期1);article . setarticlettitle(change(request . getpara

51、meter( article title );article . setarticletype _ id(integer . parse int(request . getparameter( column 1 );article . setcommentcount(0);article . setreadcount(0);ArticleDaoImpl ADI = new ArticleDaoImpl();int mark = ADI . insert(article);if(mark=1) Messages = 文章发布成功! ;forward = my article list . JSP

52、 ;否则Messages=文章发布失败! ;forward = AddArticle.jsprequest.setAttribute(messages ,消息);否则forward = error.jsprequest dispatcher rd = request . getrequest dispatcher(forward);rd.forward(请求、响应);4.1.3数据持久层数据持久层是一个软件服务层,它将应用程序与程序使用和操作的数据源分开,并在对象/关系数据库之间提供一个成功的企业级映射解决方案。数据源之上的数据库持久层隐藏了用于访问这些数据源的数据访问API。数据库持久层提供

53、的是一个完全抽象的服务,它隐藏了使用和操作来自数据源的数据的物理细节。以下是目前数据持久层的主要技术,作为数据持久层框架的选择方案简单介绍一下。1.JDBC封装目前,大多数Web应用程序使用JDBC来操作关系数据库。它可以操作大量的数据,有保证数据一致性的机制,支持信息的并发访问,使用非常成熟的SQL语言。因为JDBC使用的关系案例不能用于存储对象,所以我们应该放弃使用面向对象的原则在代码中存储数据。而是需要在数据持久层编写大量的SQL代码,封装底层的JDBC API,为业务逻辑层提供简洁的接口。2.实体Bean封装实体Bean (entity E) o实体Bean被引入到Java平台的企业应

54、用中。它是描述数据库中持久数据信息的组件。e通过使用类似于对象到对象映射的方法,提供了持久数据的面向对象的表示。电子关系数据库没有限制,它描述的持久信息可以来自企业信息系统(e is)或其他存储设备。要求E遵循一个严格的标准,实现E的用户必须严格遵循这个标准。但是,E标准在面向对象方面有一些缺点,比如一些高级特性:继承、多态和复合关系(E2.0已经改进)。其次,它是一个需要消耗应用服务器大量资源才能运行的重量级组件。但是,由E container管理的服务为处理一些企业功能提供了很大的好处。例如安全性、交易处理和资源管理。4.2关键技术介绍4.2.1 MVC模式MVC将软件系统分为三个基本部分

55、:模型、视图和控制器,如图4所示。SEQ 图 * ARABIC六如图所示。图47 MVC模式结构(1)控制器层(控制器)这一层主要用于定义应用的行为,控制应用的进程,处理事件,更新用户动作到模型的映射,选择响应视图。(2)视图层(View)这一层首先可以实现数据有目的的展示。视图中通常没有程序逻辑。为了刷新视图,视图需要访问它所监视的数据模型,所以它应该事先用它所监视的数据进行注册,还可以将用户的输入发送给控制器,以允许控制区域选择视图。(3)模型或业务逻辑处理这一层用于封装与应用程序的业务逻辑相关的数据以及数据的处理方法。“模型”有权直接访问数据,如数据库。“模型”独立于“视图”和“控制器”

56、,即模型不关心它将如何显示或操作。然而,模型中数据的变化通常通过刷新机制发布。4.2.2数据库连接池的配置和使用Java数据库连接(JDBC)由一组用Java编程语言编写的类和接口组成。它为JDBC工具/数据库开发人员提供了一个标准API,使他们能够用纯Java API编写数据库应用程序。但是各个开发者的界面并不完全一样,所以开发环境的变化会带来一些配置的变化。1.Java应用程序访问数据库的基本原理在Java语言中,JDBC(Java数据库连接)是应用程序和数据库之间的桥梁,即Java语言通过JDBC技术访问数据库。它为JDBC数据库应用程序开发人员和数据库前端工具开发人员提供了标准的应用程

57、序编程接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。JDBC提供了两种API,即面向开发者的API和面向底层JDBC驱动的API。底层主要通过直接JDBC驱动和JDBC-ODBC桥驱动连接到数据库。一般来说,Java应用程序访问数据库的过程是:(1)加载数据库驱动程序;(2)通过JDBC建立数据库连接;(3)访问数据库并执行SQL语句;(4)断开数据库。在使用JDBC开发与数据库相关的应用程序时,一个主要的困难是数据库连接的管理。很多时候,连接管理混乱导致的系统资源开销过大已经成为制约大型企业应用效率的瓶颈。对于大量用户访问的Web应用,使用数据库连接技术的系统的效率和稳定性要

58、比使用其他传统方法的系统好得多。2.环境配置首先,我的tomcat的安装路径是:C: Program Files(x86) Apache Software Foundation Tomcat 7.0;JDK的安装路径是:C: Program Files(x86) Java JDK 1 . 7 . 0 _ 17。然后,要添加环境变量,右击“计算机”-属性-高级属性-双击路径-添加“jdbc.jar的完整路径”(我的是D: Program Files Microsoft SQL Server JDBC驱动3.0 SQL JDBC _ 3.0 SQL JDBC.jar)。配置MyEclipse打开我

59、的eclipse-window-references-Java-installed jres-选择你的JRE-点击编辑在右边-添加外部jar-选择sqljdbc4.jar保存。配置项目右键单击要使用的项目名,构建路径-配置构建路径-库选项卡-添加外部jar-选择sqljdbc4.jar4.2.3中文乱码中文乱码是java程序开发中常见的问题。要彻底解决这个问题,必须对Java编码机制及其过程有一个大致的了解。在系统实施过程中,彻底解决了中文乱码问题。以下是解决方案:1.Java的部分编码机制Java语言部门使用Unicode表示字符,完全遵循UnicodeV2.0标准。注释、字符、标识符等除外

60、。,Java程序中的所有输入元素只由ASC字符或生成ASC字符的Unicode转义序列组成。因此,在读入字符时,字符将被转换为Unicode字符。2.汉字编码机制在Java中,汉字的默认编码方式是Unicode,而中文常用的文件和数据库是基于GB2312或BIG5编码的。因此,在处理中文乱码时,要正确选择汉字的编码方式,正确处理汉字的编码。英文字符用一个字节表示,最常用的编码方式是ASCII。但是一个字节最多只能区分256个字符,而汉字有上千个,所以现在汉字都是用双字节来表示。在实际项目中,经常遇到的编码方式有GB2312、BIG5、Unicode等。当浏览器客户端提交的信息中含有汉字时,在数

温馨提示

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

评论

0/150

提交评论