javablog毕业

上传人:痛*** 文档编号:74766691 上传时间:2022-04-14 格式:DOC 页数:44 大小:662.02KB
收藏 版权申诉 举报 下载
javablog毕业_第1页
第1页 / 共44页
javablog毕业_第2页
第2页 / 共44页
javablog毕业_第3页
第3页 / 共44页
资源描述:

《javablog毕业》由会员分享,可在线阅读,更多相关《javablog毕业(44页珍藏版)》请在装配图网上搜索。

1、摘 要本篇论文共分为八个部分:包括绪论、相关技术简介、Blog设计的系统分析、数据库设计、Blog的详细设计、Blog开发中的困难、Java web前景展望和结论。其中第五部分“Blog的详细设计”是本篇论文的重点。整篇论文都是围绕着这一部分来展开论述的,在这一部分里详细介绍Blog的开发全过程和开发过程中存在的疑难问题。其中包括:所需组件的介绍、Blog各个模块的实现和数据的流程。 J2EE 带动了Java在企业级的发展,现在,随着对JAVA2平台企业版(J2EE)第三方支持的增多,JAVA被广泛接纳为开发企业级服务器端解决方案的首选平台之一。随着Spring,Hibernate的不断完善和

2、发展,EJB3.0出现了,成为了未来Java 企业级开发的新的方向。 关键字:J2EE,Blog, Java Web, 模块AbstractThis paper includes eight parts: including introduction, related technology introduction, Blog design system analysis, database design, detailed design, Blog Blog development difficulties, Java web prospect and conclusion. Among t

3、hem the fifth part Blog is the detailed design of this essay focus. The whole thesis is all around this part to discuss, in this part of the development of the detailed introduction Blog process and development process in the knotty problem. Including: required components introduction, Blog modules

4、of realization and the flow of information. The J2EE impetus to the development of the enterprise Java, now, as to JAVA2 platform enterprise edition (J2EE) third-party support increasing, Java widely accepted as development enterprise-level server solution preferred platform one. With Hibernate are,

5、 developing and perfecting, EJB3.0 appeared, become the future development of the new direction of hongdu Java.Keywords: J2EE,Blog, Java Web,Modul毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过

6、帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何

7、其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生

8、在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优

9、 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意

10、? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件

11、)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日目 录摘 要.IAbstract.III目 录.V第1章 绪 论.11.1 课程背景11.1 课题的目的、意义1第2章 J2SE简介.22.1 J2SE简介22.1.1 J2SE的概念22

12、.1.2 J2SE的特性22.2数据库技术简介42.2.1 数据库概念42.2.2 常用数据库4第3章 Blog设计的系统分析.63.1 系统需求分析63.2 系统实现的目标63.3 系统模块的设计63.4系统流程图7第4章 数据库设计.84.1 创建数据库84.1.1数据库概念结构设计84.1.2数据库逻辑结构设计84.2 数据库表的设计10第5章 Blog的详细设计.135.1 所需组件简介135.1.1 DbUtil组件简介135.1.2 diaplaytag组件简介145.1.3upfileload组件简介165.2主要模块设计165.2.1来访者模块175.2.2管理员模块195.2

13、.3博文管理模块235.2.4博文类别管理模块265.2.5留言管理275.5.6文件管理28第6章 Blog开发过程中的困难.336.1 Blog开发存在的困难336.1.1 结构流程问题336.1.2 组件使用问题336.1.3博文分页34第7章 结 论.37-35-第1章 绪 论1.1 课程背景Blog 全名Web log,中文意思是“网络日志”,后来缩写为Blog。它是继Email、BBS、IM之后出现的第四种网络交流方式,是网络时代的个人“读者文摘”,是以超级链接为武器的网络日记,是代表着新的生活方式和新的工作方式,更代表着新的学习方式。简言之,Blog 就是以网络作为载体,简易迅速

14、便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。1.1 课题的目的、意义随着Blog快速扩张,它的目的与最初的浏览网页心得已相去甚远。目前网络上数以千计的 Bloggers发表和张贴Blog的目的有很大的差异。不过,由于沟通方式比电子邮件、讨论群组以及BBS和论坛更简单和容易,Blog已成为家庭、公司、部门和团队之间越来越盛行的沟通工具。博客作为一种新表达的方式,它的传播不仅情绪,包括大量的智慧、意见和思想。某种意义上说,它也是一种新的文化现象,博客的出现和繁荣,真正凸现网络的知识价值,标志着互联网发展开始步入更高的阶段。因此制作一个blog网站

15、已经很有必要。第2章 J2SE简介2.1 J2SE简介Java2平台包括:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnvironment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入式系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。2.1.1 J2SE的概念Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、

16、网络编程。2.1.2 J2SE的特性易于开发性您也许已经见过这样的报告,即一些新的 Java 语言变化包含易于开发性主题。这些变化包括泛型、元数据、autoboxing、增强的 for 循环、枚举类型、静态导入、C 风格的格式化 I/O、可变参数、并发实用程序以及更简单的 RMI 接口生成。 JSR 201 包括如下四个语言变化:增强的 for 循环、枚举类型、静态导入和 autoboxing;JSR 175 指定了新的元数据功能,而 JSR 14 则详细说明了泛型。 javac 编译器执行的默认语言规范是版本 1.4(并非最新版本)。这意味着要利用以下语言变化的任何好处,需要向 javac

17、命令传递参数 -source 1.5。 元数据J2SE 1.5 (并非最新版本)中的元数据特性提供这样的能力,即向 Java 类、接口、方法和字段关联附加的数据。这些附加的数据或者注释,可以被 javac 编译器或其他工具读取,并且根据配置不同,可以被保存在类文件中,也可以在运行时使用 Java 反射 API被发现。 向 Java 平台增加元数据的一个主要原因是,使得开发工具和运行工具有一个通用的基础结构,以减少开发和部署所需的成本。工具可以使用元数据信息生成附加的源代码,或者在调试时提供附加信息。 下面的例子用元数据工具创建了一个调试元数据注释,这些元数据注释然后又简单地在运行时显示出来。可

18、以想像,大部分的元数据标签形成一个标准,即一个良好规范的集合。利用一个元数据处理工具,许多重复的代码编写步骤可以减少成一个简练的元数据标签。 泛型泛型一直是 Java 社团所广泛期待的,现在已经是 J2SE 1.5 的一部分了。最先见到使用泛型的地方是在 Collections API 中。Collections API 提供可以被多个 Java 类型使用的公共功能性,比如 LinkedLists、ArrayLists 和 HashMaps。下一个例子使用 1.4.2 库和默认的 javac 编译模式。 泛型化 API 的用户必须使用 符号简单地声明在编译类型中使用的类型。不需要任何类型转换,

19、在本例中试图向一个 Integer 类型的集合中添加 String 对象将会在编译时被捕获。 因此,泛型允许 API 设计者提供这样的公共功能性:可以与多种数据类型一起使用,也可以在编译时出于类型安全对它进行检查。2.2数据库技术简介数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。2.2.1 数据库概念数据库

20、是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。2.2.2 常用数据库OracleOracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛

21、的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。 SQL Server1987 年,微软和IBM合作开发完成OS/2,IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了OS/2Database Manager,而微软产品线中尚缺少数据库产品。为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server 1.0 版。 mySQLmySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。目前My

22、SQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。第3章 Blog设计的系统分析3.1 系统需求分析现在是网络时代,大家交流变多了,比如去写日志就是一个很好的交流方法,可以与人分享自己的一些喜怒哀乐,和生活,学习,工作,等各种经验,通过网络日志,我们可以增添更多见识.Blog主要分为两部分,来访者浏览的页面和管理者对Blog的添加、删除、修改等管理操作。和他人分享自己的生活经验和见闻。3.2 系统实现的目标在Blog制作中要达到以下几个方面的目标(1)界面设

23、计有好、美观。(2)数据库安全、可靠。(3)博文的显示布局简约、明确。(4)提供友好、方便的博文管理功能。(5)具有易维护性、易操作性。3.3 系统模块的设计(1) 来访者模块:来访者对博文的浏览和留言和对文件的下载。(2) 管理员登录模块:通过用户名和密码登录博文管理界面和在管理界面可对本用户的密码进行修改。(3) 博文管理模块:发表、删除不同类别的博文和对博文的修改。(4) 博文类别管理模块:增加、修改类别和对类别的删除并对删除类别下的博文进行一并删除。(5) 来访者留言管理:查看来访者的留言信息和对留言的删除。(6) 文件管理:上传文件、对数据库添加相应的文件信息、对文件的删除和对数据库

24、中是相应信息删除。3.4 系统流程图Blog系统是用户进入来访者浏览页面对博文进行浏览和留言以及对文件的下载,当想进入后台管理页面时需要进行身份验证,验证通过后管理员可以对博文和类别执行添加,删除,修改操作、对来访者留言进行删除管理、对本用户的密码进行修改以及对文件的添加,删除。流程图3-1如下博文浏览文件下载博文留言来访页面登录页面是否登录 否 判断身份管 理留言文件类 别博文修改密码第4章 数据库设计4.1 创建数据库数据库的基本结构分物理数据层、概念数据层和逻辑数据层三个层次,反映了观察数据库的三种不同角度4.1.1数据库概念结构设计数据库概念结构设计是在需求分析的基础上,设计出能够满足

25、用户需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础。使用E-R图直观描述数据实体关系的。图中包括以下内容:(1)实体:用方框表示,方框内为实体的名成。(2)实体的各种属性:用椭圆表示,椭圆内为属性名称。(3)实体之间的联系:用菱形表示,菱形内为联系的名称。4.1.2数据库逻辑结构设计概念结构是独立于实际数据库模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。首先用户要进入管理页面时有要求用户是合法用户,必须对其判断,所以需要一个用来存储用户信息的用户表。用户信息实体属性图如图4-1所示:密 码用户名 用户信息实体图4-1用户信息实体属性图博文是Blog的中心,

26、是必不可少的部分,所以需要一个存储博文详细信息的实体。博文实体属性图4-2如示:博文详细实体标题DBXYD-TF477-46YM4-W74MH-6YDQ8内容DBXYD-TF477-46YM4-W74MH-6YDQ8发表时间DBXYD-TF477-46YM4-W74MH-6YDQ8类别DBXYD-TF477-46YM4-W74MH-6YDQ8图4-2 博文实体属性图为了方便来访者选择不同类别的博文进行阅读,并方便我们对博文的管理,因此对博文进行分类存储。所以要有一个存储类别信息的实体。类别实体属性图如4-3示:类 别 实 体类别名4-2类别级别图4-3类别实体属性图当来访者浏览你发表的博文时对

27、你的博文进行留言。并查看其他来访者对这篇文章的留言时,我们要把来访者的留言存储起来,所以需要一个留言信息实体。留言信息实体属性图4-4如示:留 言 实 体博 文内 容留言者留言时间图4-4留言信息实体属性图文件下载是Blog中的重要部分,和别人一起分享自己的资源,为用户方便下载分享文件,应对文件进行大致的描述,所以我们需要一个文件实体存储文件的详细信息,文件信息实体图如4-5所示:文件实体文件名文件大小文件描述上传时间上传人图4-5文件信息实体图4.2 数据库表的设计本Blog采用的是Mysql数据库管理系统,通过mysql的界面操作软件Navicat Lite制作一下表:博文表、类别表、留言

28、表、用户表和文件表。blog表保存所有博文的信息。包括博文编号(id)、主题(title)、内容(content)、时间(created_time)和所属类别的id值(category_id)。如图4-6所示。属性描述类型主键允许空id博文编号intYesNocatgory_id类别编号IntNoNotitle主题Varchar(100)NoNocontent内容varchar(500)NoNocreated_time时间DatetimeNoNo图4-6 Blog表category表对博文进行分类保存,id、分类的名称(name)、分类级别(level)。如4-7所示。属性描述类型主键允许空i

29、d类型编号intYesNoname分类名称varchar(50)NoNolevel级别varchar(50)NoNo图4-7 category表comment表保存对博文的评论,id,评论人(username)、评论的内容(content) 、评论时间(created_time),所评论的博文的id值(blog_id)。如图4-8所示属性描述类型主键允许空id评论编号intYesNoblog_id博客编号IntNonousername评论人varchar(50)NoNocontent评论内容varchar(50)NoNoCreated_time评论时间DatetimeNoNo图4-8 comm

30、ent表users表保存用户信息,id、用户名(username)和密码(password)。如图4-9所示。属性描述类型主键允许空id用户编号intYesNousername用户名varchar(100)NoNopassword密码varchar(50)NoNo图4-9 Users表files表保存为来访者提供的文件下载资源,id、文件名(filename)、文件大小(filesize)、上传时间(up_time)、上传用户(users_id)、对文件的描述(filedescribe)。如图4-10所示。属性描述类型主键允许空id文件编号intYesNoflename文件名varchar(1

31、00)NoNofiledescribe文件描述varchar(50)NoNofilesize文件大小varchar(100)NoNousers_id上传用户intNoNoup_time上传时间DatetimeNoNo图4-10 files表第5章 Blog的详细设计5.1 所需组件简介组件是抽象的概念而已,通俗的说是一些符合某种规范的类组合在一起就构成了组件。他可以提供某些特定的功能。例如J2EE,有servlet,jsp, javabean,ejb等许多组件。但实际他们都是类,只不过有他们特殊的规定。5.1.1 DbUtil组件简介当连接数据库是使用JDBC编写连接代码时它给已写的编码带来了

32、数量惊人的重复增加了程序的冗余,DbUtils是一个为做一些诸如关闭连接、装载JDBC驱动程序之类的常规工作提供有用方法的类.如下:ResultSetHandler一接口执行处理一个jaca.sql.ResultSet,将数据转变并处理为任何一种形式,这样有益于其应用而且使用起来更容易.QreryRunner这个类使执行SQL查询简单化了,它与ResultSetHandler串联在一起有效地履行着一些平常的任务,它能够大大减少你所要写的编码。如下是本系统具体连接数据库代码:1, 建立数据库连接池。首先在tomcat中的lib文件中添加mysql-connector-java-5.1.6-bin

33、.jar文件然后Tomcat服务器中config文件夹下的context.xml文件的配置,在与中添加如下内容:2在项目的WEB-INF/lib中导入commons-dbutils-1.3.jar文件后编写数据库连接类。package com.zzblog.servlet;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.sql.DataSource;import mons.dbutils.QueryRunner;publ

34、ic class ZzDbUtils public static QueryRunner getQueryRunner()DataSource ds = null;Context context;try context = new InitialContext();ds=(DataSource)context.lookup(java:/comp/env/jdbc/mysqlds);/加载数据库 catch (NamingException e) e.printStackTrace();QueryRunner qr = new QueryRunner(ds);return qr;/返回一个数据库

35、连接对象。5.1.2 diaplaytag组件简介使用DisplayTag可以大大减少Web界面的开发工作量,因为它支持样式(客户要求修改界面从此变得稍微容易了!),动态连接,分页显示,显示数据的排序,将表格数据输出成XLS等格式。在本系统中我们只使用简单的表格样式显示和分页。部分代码如下:1,导入dispalytag下载包displaytag-1.2.j和需的commons-beanutils-1.7.0.jar、commons-collections-3.1.jar、commons-lang-2.3.jar、commons-logging-3.1.jar、log4j-1.2.13.jar。

36、2, 在jsp页面加入displaytag,3, 使用displaytag标签。href=/zzblog/servlet/ZzMyBlogServlet?method=delete&id=$list.id4, 为表格显示内容作链接,为此要写一个链接类。package com.displaytag.link;import org.displaytag.decorator.TableDecorator;import com.zzblog.servlet.ZzBlog;public class MyWrapperBlog extends TableDecorator/继承内置的链接类 public

37、String getTitle() ZzBlog blog = (ZzBlog) getCurrentRowObject();int id = blog.getId();return + blog.getTitle() + ;public String getName()/链接的属性 ZzBlog blog = (ZzBlog) getCurrentRowObject();String id = blog.getCategory_id();return + blog.getName() + ;5.1.3 upfileload组件简介common-fileupload是jakarta项目组开发的

38、一个功能很强大的上传文件组件,可以支持多个文件同时上传,同时也可以除了将上传文件保存为文件之外,还可以将上传的文件数据提取保存至数据库中。Fileupload中主要有以下几个接口或类:DiskFileItemFactory为文件提供一个文件工厂,通过工厂可以对伤处文件进行设置和创建文件上传类,ServletFileUpload用于接受客户端的数据进行。FileItem可有ServletFileUpload得到,对表单进行判断是否是文件表单,可得到表单内容,通过,write()实现文件上传,详细代码请在文件管理模块中查看。5.2 主要模块设计Blog是通过网络日志与人分享自己的一些喜怒哀乐,和生

39、活,学习,工作,等各种经验,所以最核心的就是博文,对博文的发表和修改,博文是有各种各样的类型,对不同的事件的叙述,我们要对博文进行分类保存,方便读者查看,当来访者浏览博文是如想对作者留言表达自己的意见和经验。我们还可以为读者提供一些文件的下载作者上传的文档,方便交流和分享。因此对Blog进行分模块开发,来完成不同的功能,主要有来访者模块、管理员登录模块、博文管理模块、博文类别管理模块、来访者留言管理、文件管理模块.以下是对各模块的详细介绍。5.2.1来访者模块此模块是为来访者显示作者的博文,供其阅读和留言的。因为我们把数据存放在我们的数据库里,我们要从中取出在页面显示。具体步骤如下。1,我们使

40、用DbUtil组件建立连接数据库,当去除数据时我们需要一个博文类的泛型来存储信息,所以要增加一个博文类package com.zzblog.servlet;import java.sql.Date;public class ZzBlog private Integer id;/博文idprivate String title;/博文标题private String content;/内容private String name;/博文所属类别private String category_id;/ 博文所属类别idprivate Date created_time;/发表时间并创建set和get

41、方法,存放取的数据sql=select blog.id,title,content,name,created_time,category_id from blog,category where blog.category_id=category.id;QueryRunner =ZzDbUtils.getQueryRunner();/连接数据库List list = null;list = (List) qr.query(sql, new BeanListHandler(ZzBlog.class);/取数据2,当把数据取得后,在把数据传输到显示页面。在前台显示个浏览,接受代码如下List lis

42、t = (List)request.getAttribute(list);然后遍历list把每一个博文的每一项发blog类里,通过类方法显示博文,显示效果图如5-1图所示。图5-1 博文列表图3,当来访者想具体查看每一博文,我们要为其显示这一本文的具体内容和其他来访者的留言。首先通过在链接后加参数得到对其那一篇博文阅读即id。通过条件查询取得博文内容和留言。String id = request.getParameter(id);/到想浏览的博文idString sql = select blog.id,title,content,name,created_time,category_id f

43、rom blog,category where blog.category_id=category.id and blog.id=+ id;/条件查询QueryRunner qr =ZzDbUtils.getQueryRunner();List showBlog = (List) qr.query(sql new BeanListHandler(ZzBlog.class);ZzBlog blog = showBlog.get(0);/得到特定博文request.setAttribute(showBlog, blog);/数据放进request里传到前台在前台接受单条数据ZzBlog blog

44、= (ZzBlog)request.getAttribute(showBlog);通过类方法显示,效果图如5-2所示。图5-2 特定博文浏览图总结:此模块是显示你所分享的博文和文件,以供他人浏览和交流。我们要从数据库里取出所有数据传到前台显示。显示Blog 的大致信息,当来访查询特定一篇博文是我们要对其博文和流言单个查询取出显示给来访者。5.2.2管理员模块Blog是发表自己的所见所闻的网络日志,是个人所有的,为此我们要为限制他人只能浏览我提供的信息,不能对我的信息进行操作,只有本人才能进行操作,为此我们需要一个身份验证机制来完成此功能。完成此模块有一下步骤。1,为用户显示一个登录管理页面。如

45、5-3图所示。图5-3 用户登录页面2当用户输入用户名和密码后我们javascript代码判断是否为空后提交。我们在Servlet里得到用户输入的信息。String username = request.getParameter(username);/得到用户名String password= request.getParameter(password);/得到密码这时我们要到数据库中匹配用户名和密码,查询代码如下,String sql = select id,username,password from users where username=+ username + and passwo

46、rd= + password + ;/匹配信息QueryRunner qr = ZzDbUtils.getQueryRunner();userlist = (List) qr.query(sql,new BeanListHandler(ZzUsers.class);user = userlist.get(0);当查询不到信息时返回登录页面并显示错误提示信息。如5-4图所示,图5-4 登录错误提示图当查询出信息时,同样要把数据保存在Users泛型里后放入session中,以便随时使用,新建Users类如下。package com.zzblog.servlet;public class ZzUse

47、rs private Integer id;private String username;/用户名private String password;/密码同样增加set和get方法。登录成功后进入后台页面如5-5如所示。图5-5 登录成功页面3为防止密码被泄露,在进入管理页面时,我们可以对本用户的密码进行修改,修改页面如下,图5-6 修改密码页面用JavaScript判断旧密码是否与老密码相同,新密码和确认密码是否是相同,然后传入后台接受后修改数据库数据。HttpSession session = request.getSession();ZzUsers users = (ZzUsers) s

48、ession.getAttribute(user);/从session中得到String username = users.getUsername();/得到用户String renewpsw =request.getParameter(renewpassword);/得到新密码String sql = update users set password=? where username=?;/修改数据库数据String parms = renewpsw, username ;QueryRunner qr = ZzDbUtils.getQueryRunner();qr.update(sql,

49、parms);修改完成后返回一个提示信息,当修改成功是现实如下图所示。当失败是现实修改密码失败图5-7 提示信息图4,在进入管理页面是进行身份验证,限制必须从登录页面进入,防止用户不通过验证直接输入地址进入后台。并提示错误信息。HttpSession session = request.getSession();/创建session对象ZzUsersuser=(ZzUsers)session.getAttribute(user);/得到users总结:用户登录为用户验证身份,只有通过验证才能进入后台管理对Blog进行操作。否则你能对博文的浏览和流言操作,当用户退去时释放session里的值。5

50、.2.3博文管理模块博文是Blog的主题,是分享和交流的主要内容,是用户对所见所闻的看法和态度,所以需要有一个发表博文功能,让来访者查看。还要对博文进行修改和删除功能,来实现对博文的不同操作。具体功能实现如下,1,首先为用户提供一个输入页面,让用户填写要发表的文章和对文章进行分类,如图5-5 登录成功页面。2,要把用户添加的博文信息添加到数据库里,得到用户填写在页面的信息后,插入数据库中。String title = request.getParameter(title);/得到博文标题String category =request.getParameter(categoryId);/列别i

51、dString content = request.getParameter(content);/内容QueryRunner qr = ZzDbUtils.getQueryRunner();String sql = insert into blog(title,category_id,content,created_time) values(?,?,?,now();/添加到数据库String params = title, category, content ;qr.update(sql, params);添加完成后返回提示如图5-7信息。3,当我们有写博文不需要时,我们要对其进行删除操作,来

52、实现此功能,首先我们需要从数据库里面取出所有博文以列表的形式显示,这时我们需要使用displaytag组件显示,显示效果如下图,图5-8 博文列表图当选择要删除的博文后通过博文id标识博文并对其留言一并删除,在servlet中接受并执行操作,String id = request.getParameter(id);QueryRunner qr = ZzDbUtils.getQueryRunner();sql = delete from blog where id= + id;删除博文String sql1 = delete from comment where blog_id=+id;/删除留

53、言qr.update(sql);删除后为用户显示提示信息。4,用户在对博文进行操作时如需对某篇博文进行修改后在重新发表,在此要实现修改功能,在图5-8中点击修改时,进入修改页面时而我们要为用户提供博文原先信息这时我们要从数据库取出数据并显示如查看特定博文机制得到数据,显示页面如下,图5-9 博文修改页面然后对博文进行修改后提交,我们在servlet中得到数据并不写入数据库中。String id = request.getParameter(id);/博文idString title = request.getParameter(title);/博文标题String category = request.getParameter(categor

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!