javaweb课程设计报告个人博客网站的实现java大学论文.docx
《javaweb课程设计报告个人博客网站的实现java大学论文.docx》由会员分享,可在线阅读,更多相关《javaweb课程设计报告个人博客网站的实现java大学论文.docx(19页珍藏版)》请在冰豆网上搜索。
javaweb课程设计报告个人博客网站的实现java大学论文
武汉工商学院
信息工程学院
项目名称:
个人博客网站的实现(Java)学生姓名:
学号:
班级:
12计科本1
指导教师:
2014年12月23日
目录
1绪论1
1.1系统应用意义1
1.2主要设计任务1
1.3开发及运行环境1
1.3.1JSP的基础——Servlet技术1
1.3.2JavaBean原理和机制1
1.3.3开发平台:
Eclipse2
1.3.4数据库:
MicrosoftSQLServer20052
2系统需求分析3
2.1功能需求分析3
2.1.1前台3
2.1.2后台3
2.2系统功能结构4
3系统设计与实现4
3.1数据库的设计与描述4
3.2页面设计与描述5
3.3数据库连接6
4功能测试7
4.1功能实现7
5总结16
1绪论
1.1系统应用意义
博客,又译为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。
博客上的文章通常根据张贴时间,以倒序方式由新到旧排列。
许多博客专注在特定的课题上提供评论或新闻,其他则被作为比较个人的日记。
一个典型的博客结合了文字、图像、其他博客或网站的链接、及其它与主题相关的媒体。
能够让读者以互动的方式留下意见,是许多博客的重要要素。
大部分的博客内容以文字为主,仍有一些博客专注在艺术、摄影、视频、音乐、播客等各种主题。
博客是社会媒体网络的一部分。
博客秉承了个人网站的自由精神,但是综合了激发创造的新模式,使其更具开放和建设性。
它作为一种新表达的方式,它的传播不仅情绪,包括大量的智慧、意见和思想。
某种意义上说,它也是一种新的文化现象,博客的出现和繁荣,真正凸现网络的知识价值,标志着互联网发展开始步入更高的阶段。
1.2主要设计任务
博客网站系统的总任务是:
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的个人博客网站,为网络用户提供进行在线交流的网络平台。
通过个人博客网站可以结交更多的朋友,表达更多的想法,它随时可以发布文章。
可以浏览别人的博文。
1.3开发及运行环境
1.3.1JSP的基础——Servlet技术
JavaServlet是JSP技术的基础,JSP本身就是预先被编译成Servlet,然后再运行的,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成,Servlet这个名称大概源于Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用Servlet这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。
Servlet其实和传统的CGI程序和ISAPI、NSAPI等Web程序开发工具的作用是相同的,在使用JavaServlet以后,用户不必再使用效率低下的CGI方式,也不必使用只能在某个固定Web服务器平台运行的API方式来动态生成Web页面。
许多Web服务器都支持Servlet,即使不直接支持Servlet的Web服务器也可以通过附加的应用服务器和模块来支持Servlet。
得益于Java的跨平台的特性,Servlet也是平台无关的,实际上,只要符合JavaServlet规范,Servlet是完全平台无关且是Web服务器无关的。
由于JavaServlet内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此JavaServlet效率非常高。
但JavaServlet也不是没有缺点,和传统的CGI、ISAPI、NSAPI方式相同,JavaServlet是利用输出HTML语句来实现动态网页的,如果用JavaServlet来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。
这就是为什么SUN还要推出JavaServerPages的原因。
1.3.2JavaBean原理和机制
JavaBean是Java的可重用组件技术,提供了一定的通用功能,可以在Java应用(包括基于JSP的Web应用)中重复使用,JavaBean是一种符合某些命名和设计规范的Java类,通过封装属性和方法而具有某种功能或处理某个业务,简称beans。
由于JavaBean是基于JAVA语言的,因此JavaBean不依赖平台,它具有以下特点。
(1)可以实现代码的重用。
(2)易编写,易维护,易使用。
(3)可以再任何安装了Java运行环境的平台上使用,而不需要重新编译。
JSP页面是由普通的HTML标签和Java程序组成的,如果程序片HTML大量的交互在一起,页面就显得混杂,不易维护。
因此,不提倡在JSP页面中嵌入大量的Java程序片来处理数据。
通常提倡在JSP的web应用中集成JavaBean组件,由JavaBean处理业务逻辑,然后在JSP中调用,而JSP页面着重网页界面的设计,以此实现业务逻辑和前台显示的分离。
JSP页面将数据的处理过程封装到一个或几个beans中,只需要在JSP页面中调用beans即可。
使用JavaBean的好处有:
(1)可以是JSP页面变得清晰。
(2)节省软件开发时间(可以直接使用已经测试和可信的已有组件,避免重复开发)。
(3)降低系统维护的难度。
(4)为JSP应用带来了更多的课伸缩性,使系统变得健壮和和灵活。
JavaBean的传统应用是在可视化领域,如Java图形界面中使用的按钮,文本框或列表框等。
自从JSP诞生后,JavaBean在非可视化领域得到了更多的应用,在服务器端的应用的方面变现出越来越强的生命力。
在非可视化的JavaBean是指没有图形界面的JavaBean用于封装业务逻辑。
封装数据,同常与JSP搭配使用,实现业务逻辑与前台程序(JSP页面文件)的分离。
使得系统具有更好的健壮性和灵活性。
通过JavaBean可以很好的实现逻辑的封装,提高程序的可维护性。
例如在web应用中要是实现在购物车中添加一件商品的功能。
在引入JavaBean之前,直接使用脚本片段把这些处理操作写在JSP文件中,但这样的JSP页面可能有成百上千好代码,不便于程序的修改和维护。
掌握JavaBean相关知识后,就可以创建一个实现购物车的JavaBean,建立一个共有的additem()方法,在JSP文件中使用该JavaBean并调用additem()方法,用来实现添加商品的功能。
以后如果需要考虑添加商品时要判断库存是否还有该货物,没有该货物是显示缺货,这时就可以直接修改JavaBean的additem()方法。
加入相关的处理语句,完全不用修改JSP程序。
1.3.3开发平台:
Eclipse
Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。
它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。
它提供建造块和构造并运行集成软件开发工具的基础。
EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。
1.3.4数据库:
MicrosoftSQLServer2005
MicrosoftSQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
MicrosoftSQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
SQLServer2005NotificationServices是用于开发生成并发送通知的应用程序的平台,也是运行这些应用程序的引擎。
可以使用NotificationServices生成并向大量订阅方及时发送个性化的消息,还可以向各种各样的应用程序和设备传递消息。
使用NotificationServices平台,可以开发功能齐全的通知应用程序。
订阅表达了订阅方在特定信息(称为事件)方面的兴趣,可以根据事件的到达或计划对其进行评估。
事件数据本身可以源自数据库内部、其他数据库或外部源。
通知是事件和订阅匹配的结果,在发送给订阅方之前,可以采用各种格式。
2系统需求分析
2.1功能需求分析
21世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。
人们不在局限于打电话,接电话,而是发微博,微博就像一个平台一样,不论是熟人还是陌生人,都会相遇在这个平台,只要你愿意,就会交更多的朋友,真正实现“海内存知己,天涯若比邻”。
该系统所实现的功能:
(1)游客可以任意的写博文和浏览博文;
(2)游客也可以注册一个自己的账号,用来登录;
(3)管理员可以修改和删除用户信息
(4)管理员可以删除和修改用户的博文;
为了达到以上的开发目的,个人博客网站应遵循一定的设计和开发与原则:
1).模块接口定义清晰;
2).基础类库和接口设计合理,尽量建立叮扩展的接口和抽象类;
3).数据库操作使用标准SQL语句,如果一定要使用有差别的SQL语句,则尽量集中在一起,以减少将来维护和移植的难度;
4).采用开放的标准和工具等;
博客系统通常提供三类服务
1).信息服务,它可分为:
博文显示,浏览博文
2).注册服务:
游客注册一个新账号,用来登录
3).管理服务:
博主可以对自己的博客进行各种管理
在此,我参考现有的几大博客网站如QQ空间,新浪博客等,采用Browser/Server结构,将个人博客网站划分为两个子系统:
前台,后台。
下面分析各个子系统的功能需求。
2.1.1前台
在前台的功能实现上,可以分为以下几个部分:
1).博文主页:
游客可以浏览博客的首页,首页包括博文的摘要。
2).博文浏览:
游客可以浏览博客中感兴趣的博文。
。
2.1.2后台
通过计算机网络将前台与后台的数据库相连,网站管理员将从前台得到的信息进行处理,实现文章管理,公告管理,投票管理,个人相册管理,朋友圈,用户设置及博主设置等子系统。
1).博主登陆:
博客主人用帐号,密码登录到网站。
网站检测用户的帐号,密码并给予管理员权限对网站进行操作
2).博文发布:
发布博文,包括博文标题,内容时间和人。
3).博文管理:
对博客中的文章进行删除,更新等操作。
4).修改密码:
修改博主账号的密码。
2.2系统功能结构
该系统主页上有登录功能,发帖功能,后台管理,注册功能,注销几大功能,在后台管理中,还分用户管理,和帖子管理,在用户管理中,可以更改用户名和密码,在帖子管理中可以更改用户发布帖子的内容和删除指定用户的帖子。
在登录中,分为用户登录和管理员登录,在本系统中,管理员默认为admin。
他能够进行用户管理和博文管理。
在用户管理中,也分为修改和删除,在博文管理中也分为修改和删除。
图3-1系统功能结构
3系统设计与实现
3.1数据库的设计与描述
在这次系统设计的时候,数据库login里面共有两张数据表,一张是发博文表address1,主要用来存放用户发的帖子内容、时间、用户名、主题。
另一张是userinfo表,主要用来存放用户的密码和用户名,方便登录的时候进行验证,注册的时候进行存放用户信息。
表3-1address1表
列名
数据类型
允许空
id(自动增长)
int
不
text(内容)
varchar(max)
不
title(标题)
varchar(50)
不
people(发帖人)
varchar(50)
不
time(发帖时间)
varchar(50)
不
表3-2userinfo表
列名
数据类型
允许空
id(自动增长)
int
不
username(用户)
varchar(50)
不
password(密码)
varchar(50)
不
在用户的数据库中,有两个实体,和一个id号,id号是自动增长,每次有新的用户注册进来的时候就会自增一,这样系统不论是在注册和登录,还是用户管理中,调用数据库的时候,都是根据id号来进行查寻,只要id不为空,那么用户的信息都会反馈给客户端。
在帖子的数据库中,有四个实体,分别是主题,内容,时间,和发布者,在这四个选项中,尽量不能为空,尤其是id号,不能为空,不然就不能查找了。
各实体之间的实体—联系图如下所示。
图3-1系统E-R分析
3.2页面设计与描述
在这次系统设计中,有两个包,一个包名字是servlets,在它的下面servlets的Java类,它负责的是界面的跳转,每次页面发送跳转请求的时候,它就会最做出相应的响应,跳转到另一个界面的时候就会实现另一个界面的功能,每次页面跳转都必须经过servlets,它负责每次页面请求的处理。
就想一个中转站一样,每个jsp界面都会经过这个中转站。
另一个包是bean,在包的下面是一个DBBean的Java类,它的功能就是一个类,当用户注册的时候需要调用它来实现把用户名和密码存到数据库,当用户需要查看用户列表的时候,它就会被调用,来显示用户的详细信息;当用户进行发帖的时候,系统会调用它来它来存到数据库address1中,当再次浏览的时候,系统又会调用这个类,将用户的发的博文显示在主页上。
删除用户信息的时候,也会调用这个类,每次删除过后,系统会自从更新数据库。
管理员删除博文的时候也会一样的调用数据库,界面上的操作一般都是针对数据库进行的。
在该系统中一共用了19个JSP界面,每一个界面都有不同的功能,在index.jsp是用来显示主页的,这里需要调用数据库,因为要实现博文浏览的功能,所以它必须要调用数据库,将博文的内容显示在主页上。
Register.jsp是用来注册用户的,这里也离不开数据库,注册成功过后,数据库会存放来自客户端传过来的用户明和密码。
Common.jsp和admin.jsp是用来用户和管理员登录的,登录的时候,会经过数据库进行验证,如果密码或者账号错误的话,将无法登录。
Tiezimanage.jsp和commommanage.jsp是用来帖子管理和用户管理的,不过这些都必须是管理员进行操作,只有是管理员才能对用户名的密码进行修改和删除,还有对帖子修改和删除。
Background.jsp界面中只有三个选项,用户管理和帖子管理,和返回首页。
Del.jsp是用来删除博文的界面,删除过后就会自动跳转到主页面上去,delcommon.jsp是删除用户信息的界面,login.jsp是用来用户登录的界面,用户只需要输入自己的名字和密码系统就会自动的跳转到主页上去,进行博文的浏览。
Updata.jsp是用来更新数据库的,客户端将请求发送到后台,后台进行数据库的更新和管理。
与之对应的是Userupdata.jsp界面,用来用户信息的更新和操作。
Address.jsp是发帖的界面,在该接卖弄中设置了四个框框,主题,内容,时间,发帖者,在address1.jsp中把帖子存到数据库中,并方便响应后来的请求。
每次请求结束过后都会回到响应的主界面。
方便用户进行博文的浏览。
3.3数据库连接
JDBC访问数据库的步骤:
1、装载驱动程序Class.forName(“JDBC驱动程序类”);
2、与数据库建立连接Connectioncon=DriverManager.getConnection(url,Login,password);
3、建立语句对象Statementstmt=con.createStatement();
4、声明并执行SQL语句Stringsql=”select*frombook”;ResultSetrs=stmt.executeQuery(sql);inti=stmt.executeUpdate(sql);
5、对结果集进行处理。
6、关闭对象。
按照ResultSet、Statement、Connection的顺序依次关闭。
DBBean主要放在一个bean包中,作为一个类,就是系统每次需要调用数据库的时候,不用大段大段的写代码了,直接调用DBBean类就行了,这样节省了大量的时间,并且降低了出错的概率,这样是其它的界面更加清晰明了。
关键性代码:
publicclassDBBean{
privateStringdriverStr="com.microsoft.sqlserver.jdbc.SQLServerDriver";
privateStringconnStr="jdbc:
sqlserver:
//localhost:
1433;DatabaseName=login";
privateStringdbusername="sa";
privateStringdbpassword="123456";
privateConnectionconn=null;
privateStatementstmt=null;
publicDBBean(){
try{
Class.forName(driverStr);
conn=DriverManager.getConnection(connStr,dbusername,dbpassword);
stmt=conn.createStatement();
}catch(Exceptione){System.out.println("无法同数据库建立连接!
");}
}
publicintexecuteUpdate(Strings){
intresult=0;
try{result=stmt.executeUpdate(s);}
catch(Exceptione){System.out.println("执行更新错误!
");
e.printStackTrace();
}
returnresult;
}
publicResultSetexecuteQuery(Strings){
ResultSetrs=null;
try{rs=stmt.executeQuery(s);}
catch(Exceptione){System.out.println("执行查询错误!
");e.printStackTrace();}
returnrs;
}
publicvoidclose(){
try{stmt.close();conn.close();}
catch(Exceptione){}
}
}
4功能测试
1浏览博文界面
当游客访问该网站的时候,就会有一个首页出现,在首页的界面中,可以登录,发博文,进入后台,注册,和注销等界面,在首页上面可以浏览用户所发的的博文,会以一张表格的方式显示出来,有一个人性化的设置就是可以看到当前系统的时间。
下面是主页的界面。
图4-1博客首页界面图
2用户注册
对于新的游客来说,可以注册一个用户账号,用户名和密码自己设定,不过提示游客的是:
密码和用户名一般要简单容易记住的比较好,不然连自己都记不住。
下面是注册界面。
图4-2用户注册图
当用户注册成功过后,系统会提醒你,注册成功,系统会自动把账号和密码写进数据库里面,并且存档。
如图。
图4-3用户注册成功图
3获取用户列表
在注册的成功,可以查看当前的用户名,就是查看哪些用户名已经被占用,或者如果知道自己好友的用户名的话,就可以浏览他们的博文,关注他们的最新动态,下面是查看当前用户名的界面。
图4-4用户列表图
4用户登录
注册成功过后便可以直接点击登录了,不过要输入正确的用户名和密码,这样才能进入主页浏览博文,下面是登录的界面。
图4-5选择用户登录图
用户登录的时候,需要输入登录名和密码,只有密码正确的时候,用户才能进入首页中去浏览别人和自己的博文,如图。
图4-6用户登录图
用户点击登录过后,系统会自动的跳转到首页,在首页的最左上方,就会显示用户名,欢迎你进入,还可以看到当前时间,如图。
图4-7用户成功登录图
5发布博文
当然最重要的肯定是发博文了,下面是发博文的界面,当用户进入这个界面的时候,会有四个框框,主题,时间,发布者,内容。
完成了这四个框框后,点击发布,过后提示发布成功,直接跳转到主页上,用户就可以看到自己的博文了,这是发博文的界面。
图4-8用户发博客图
点击发布的时候,系统会提醒你添加成功,单击确认过后,系统会自动跳转到首页,用户会在首页上看到自己的博文和发布时间,如图。
图4-9用户成功发博客图
6进入后台
管理员只有一个,当然也有特殊的权利,可以进入后台,用户和游客想进入后台,系统会提醒用户和管理员,非管理员,不得进入后台,下面是管理员登录界面。
图4-10进入后台图
7管理员登录
在后台管理中也分两种,一个是用户管理,用户管理就是对用户名和密码进行操作,不过这些都要经过用户的同意才行,下面是用户管理的界面。
图4-11管理员登录图
8修改和删除博文
后台管理中还有一个是帖子管理,类似于用户管理,帖子管理就删除和修改帖子,对于不符合规范帖子,管理员可以删除。
以下是帖子管理的界面。
图4-12博文管理图
在帖子管理的界面中,单击删除过后,系统会自动的删除你不想看到的博文,当然这个只有管理员才能这样做。
单击确认过后,如图。
删除成功过后,页面会自动跳转到首页,这个时候你会发现当面界面和上次登录的界面不一样。
如图。
图4-13删除博文图
再次进入后天,进行博文修改,单击修改之后,就会进入修改的界面,如图。
图4-14修改博文图
进入修改过后,就会出现一个修改的框框,框框里面就会显示当前博文的详细信息,如图。
修改成功过后,系统会提示你修改成功,单击确认,系统会返回到主页面,如图。
再次返回主页面的时候,你会发现这次的主页面和首次登陆的时候的博文有所改变,如图。
图4-15返回首页图
9修改和删除用户信息
后台管理还有一个重要的就是用户管理,在这里该网站就知道自己的网站有多少用户了,下面就是用户管理界面。
图4-16修改用户信息图
在用户管理的界面中,点击修改用户信息的时候,就会出现用户名,不论你是要改用户名还是密码都可以。
如图。
修改成功过后,系统提醒你单击过后就会返回到首页,再次返回用户管理的时候就会出现用户的详细信息,就会发现你要改的用户信息已经改了。
如图。
图4-17修改用户信息图
在用户管理的界面中,进入删除。
如图。
图4-18删除用户图
10注销
当用户想退出的时候可以注销,选择注销过后,再次访问该博文的时候又要重新登录。
以下是注销的界面。
图4-19再次登录图
5总结
这次Javaweb课程设计我做的是“个人博客设计”,通过这次课程设计,不仅巩固了本学期所学的课本上的理论知识,而且锻炼了我的动手实践能力和团队合作能力。
当课程设计任务分配下来的时候,我先查找资料了解相关的以前的例子,然后考试设计自己的系统有借鉴的东西也