个人博客管理系统WEB课程设计.docx
- 文档编号:10275088
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:36
- 大小:218.25KB
个人博客管理系统WEB课程设计.docx
《个人博客管理系统WEB课程设计.docx》由会员分享,可在线阅读,更多相关《个人博客管理系统WEB课程设计.docx(36页珍藏版)》请在冰豆网上搜索。
个人博客管理系统WEB课程设计
1.系统应用背景
随着计算机技术的发展和普及,blog得到了极大的发展。
Blog,是Weblog的简称。
blog是一种新的生活方式、新的工作方式、新的学习方式和交流方式。
它是继E-mail、BBS、ICQ、之后出现的第4种网络交流方式。
Blog主要应用于3个方面:
一是新的人际交流方式;二是以个人为中心的信息摘选和知识管理;三是以个人为中心的传播出版。
blog作为个人的一种学习工具,简单易用,吸引人的兴趣。
Blog在教育方面得到了很大的发展,它将互联网从过去的通讯功能,资料功能、交流功能等进一步强化,使其更加个性化、开放化、实时化、全球化,把信息共享发展到资源共享、思想共享、生命历程共享。
Blog已经成为一种继课件、积件、资源库、教育主题网站等信息化教学模式之后,新的网络应用模式。
它是应时代的需求而兴起的,也是应时代需求不断进步的[1]。
博客的精神是:
自由表达,开放宽容,个性张扬,专业精神。
在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。
博客的出现,让人们可以不断的把自己以前的和每天激发的一些想法或者感受整理放在自己的博客上,每次在写文章的时候,可能又会产生新的想法。
虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有了更多的一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释放思考得以延伸的满足感。
生活中每天的一个小小的事情都会引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。
督促自己努力、把一时的想法变成观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。
这样就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自己的每一天上留下了一道浅浅的思考和划痕。
不仅如此,通过写博客、记录自己的想法可以帮助实现如下这些目的:
a)记录生活,在自己的每一天上留下思考的划痕。
b)整理思路,固化知识,获得更多更好的想法。
c)分享,将自己的想法、经验与人分享。
d)交流、提高,通过交流产生更多的思维火花,相互提高。
e)交友,互相鼓励,一路同行。
如果说博客网站是一个舞台,那么所有的博客都是其中的舞者,把自己有价值的真实的一面展示在网络世界中,相互交流沟通;如果博客仅仅为了写日志,那么博客是一面镜子,镜子中展现的是真实的自己;如果博客是一个自由媒体,可以把自身感觉有价值的信息通过博客这个工具发布,与网友共享[2]。
2.系统分析
2.1.系统功能分析
系统功能模块包括两大块:
管理界面功能模块和普通用户界面功能模块。
其具体功能如下所示:
*管理员功能:
分类管理,文章管理,评论管理,链接管理,留言管理。
*普通用户功能:
阅读文章,留言,评论和在线聊天。
*分类管理:
文章类型的添加,修改,删除。
*文章管理:
文章的修改,删除。
*评论管理:
评论的删除。
*链接管理:
链接的添加和删除。
*留言管理:
留言的删除和回复。
*管理员用户功能图如图表2-1所示:
图表2-1管理员用户功能图
*普通用户功能图如图表2-2所示:
图表2-2普通用户功能图
2.2.系统模块分析
博客信息管理系统分为面向网络用户的前台及面向个人博客维护管理的后台,依据博客网站中所要实现的基本功能的设定,将所有功能分解为如下四个主要的功能模块来加以实现。
用户以合法的用户名及密码登录,系统即可按该登录用户的权限分配操作模块。
2.2.1.博客注册登录管理模块
博客注册登录管理模块用于建立博客网站固定的客户群体,通过记录对应的博客档案,实现对博客信息的后台维护及管理,同时也便于通过博客档案库将网站最新动态及相关企业的信息方便地传达给每一位潜在的客户。
该功能模块实现了以下几个子功能[3]。
a)新博客在线注册。
b)博客登录管理。
c)跳转到博客主页。
只有进行登录并通过身份验证的用户,才可以在个人博客页面发表日志,并借助个人设置实现对个人博客相关信息的管理维护。
对于没有经过身份验证的网络用户不允许在博客页面中发表日志,更不允许对博客页面信息进行管理维护。
该模块实现新博客的注册及登录验证功能。
其中,注册新博客时会对用户输入的注册信息进行有效性验证,包括基本数据格式的有效性以及逻辑有效性,例如,用户名被占用时将及时给出提示。
注册成功的博客登录时,会随时根据博客输入的登录信息进行提示,如用户名错误或者密码错误。
2.2.2.博客及文章检索查询模块
博客及文章检索查询模块为网络用户提供便捷的搜索,以及日志阅读浏览等功能,同时对日志的评论信息、博客推荐也能够及时反馈给网络用户。
该功能模块实现了以下几个子功能。
a)热门博客页面推荐。
b)最新博客日志推荐。
c)日志信息关键字搜索。
该模块能够在网页中随时提供在线的最新日志信息。
该信息需要定期更新,网络用户可以随时获得最新日志以及最热门的博客推荐。
在客户选择了某个博客或者某个感兴趣的日志后,可以方便地跳转到对应博客页面进行日志的阅读,并和博客进行交流互动。
2.2.3.博客页面显示模块
为了使网络用户尽快定位到所需的博客资料及日志信息,本模块提供了搜索功能,用户可以对所关注的日志信息按照标题进行关键字搜索,以避免用户浏览多个页面来寻找所需的日志信息[4]。
当网络用户进入某个人博客主页后,在该页面中将提供博客日志列表的显示,同时为了方便用户浏览,在该模块中提供根据分类名进行日志列表的显示,也提供日志评论的浏览,此外还允许用户在博客页面中发表评论及留言。
该功能模块实现了如下几个子功能。
a)用户可以分页查看对应的日志内容及评论信息。
b)用户可以针对日志内容发表评论。
c)用户可以针对博客进行留言。
d)用户可以分类查看日志内容。
在该模块中还提供了博客页面统计信息,日志、评论及留言信息分页显示等方便用户的显示效果。
2.3.博客个人管理维护模块
博客个人维护管理模块用于实现用户对博客个人主页及相关信息的动态管理。
该功能模块实现了如下几个子功能:
a)日志及日志分类管理。
b)评论及留言管理。
c)个人基本信息维护管理。
借助该模块,用户可以随时对个人博客主页中的内容进行增加或修改,包括日志分类信息的更新、评论及留言管理等功能,也允许用户对博客的个人信息进行维护及其管理。
3.系统设计
3.1.数据库设计
3.1.1.数据库需求分析
用户分为普通用户和管理员用户
*管理员涉及类型管理、文章管理、添加文章、评论管理、链接管理、留言管理。
*普通用户可以阅读文章、发表回应、留言、评论。
一种文章类型有多篇文章。
一篇文章有多篇评论、回复。
对上面系统功能分析,设计如下数据项:
*管理员信息:
用户名、密码。
*类型信息:
类型编号、类型名称。
*链接:
链接编号、链接名称、链接地址。
*留言:
留言编号、留言人呢称、留言标题、个人主页、留言内容、留言时间、留言回复。
*文章信息:
文章序号、文章作者、文章标题、摘要、文章内容、文章发表日期、文章人气、回复、文章类型编号、文章类型名称、文章回复数。
*评论:
评论序号、评论用户呢称、评论标题、评论内容、评论时间、评论的文章序号。
3.1.2.数据表设计
表格3-1ST_admin(用户表)
序号
列名
数据类型
长度
字段说明
1
ST_admin_user
Nvarchar
50
管理员ID
2
ST_admin_psw
Nvarchar
50
管理员密码
该表为管理员登录的信息表,本系统没有包含管理员用户的注册模块,管理员帐号直接在数据库中设计。
普通用户匿名登录主页。
表格3-2ST_class(类型信息表)
序号
列名
数据类型
长度
字段说明
1
ST_c_id
Bigint
8
文章类型号
2
ST_c_name
Nvarchar
50
文章类型名
该表用来记录文章类型的相关信息,系统文章分了类别,使管理文章,查看文章都变的非常的方便。
表格3-3ST_link(链接信息表)
序号
列名
数据类型
长度
字段说明
1
ST_l_id
Bigint
8
链接号
2
ST_l_name
Nvarchar
50
链接名
3
ST_l_url
Nvarchar
50
链接地址
该表记录了链接的相关信息,方便用户快速的链接到想浏览的网站,提高了用户的操作效率。
表格3-4ST_message(留言信息表)
序号
列名
数据类型
长度
字段说明
1
ST_id
Bigint
8
留言号
2
ST_nickname
Nvarchar
50
网友呢称
3
ST_title
Nvarchar
50
留言标题
4
ST_homepage
Nvarchar
50
个人主页
5
ST_content
Ntext
16
留言内容
6
ST_mdate
Datetime
8
留言时间
7
ST_hf
Ntext
16
留言回复
该表包含了留言的相关信息,留言模块方便普通用户和版主之间的交流,为他们提供了一个专门的途径。
表格3-5ST_news(文章信息表)
序号
列名
数据类型
长度
字段说明
1
ST_n_id
Bigint
4
文章号
2
ST_n_author
Nvarchar
50
文章作者
3
ST_n_title
Nvarchar
200
文章标题
4
ST_n_key
Nvarchar
200
文章摘要
5
ST_n_content
Ntext
16
文章内容
6
ST_n_date
Datetime
8
文章发表日期
7
ST_n_re
Bigint
8
文章回复
8
ST_c_id
Bigint
8
文章类型编号
9
ST_c_name
Nvarchar
50
文章类型名称
10
ST_n_iscmd
int
4
文章回复数
该表为文章信息表,包含了文章的相关属性,用来记录文章信息。
该模块可以帮助用户了解文章的基本信息。
比如:
文章人气高可能是内容很有意义,方便用户去阅读那些比较好的文章。
表格3-6ST_replay(评论信息表)
序号
列名
数据类型
长度
字段说明
1
ST_r_id
Bigint
8
评论号
2
ST_r_nick
Nvarchar
50
呢称
3
ST_r_title
Nvarchar
50
评论标题
4
ST_r_content
Nvarchar
250
评论内容
5
ST_r_date
Datetime
8
评论发表时间
6
ST_n_id
Int
4
评论文章编号
3.2.界面设计及主要代码
此表为评论信息表,用来记录评论信息。
评论也是用户的一种交流方式。
该模块加强了用户之间的沟通[5]。
3.2.1.文章信息管理界面
文章管理页图如下所示:
图表3-1文章管理
编写后台事件处理页面ArticleManage.aspx.cs,实现数据的查询、修改、删除和添加文章的功能。
在页面加载事件中调用ST_Article_Bind方法,从数据库中获取文章信息并绑定GridView控件。
单击ArticleManage.aspx页面中的“查找”、按钮,触发Click事件。
具体代码如下:
publicpartialclassModule_Blog_ArticleManage:
System.Web.UI.Page
{
SqlDatada=newSqlData();
SqlConnectionmycon;
privatestaticstringID;
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
IsPostBack)
{
//调用自定义绑定方法绑定数据
ST_Article_Bind();
/*判断是否登录*/
ST_check_Login();
}
stringST_dns=ConfigurationSettings.AppSettings["conStr"];
mycon=newSqlConnection(ST_dns);
DataSetmydataset=newDataSet();
SqlDataAdaptermydataadapter1=newSqlDataAdapter("select*fromtb_BlogwhereUserName='"+Session["UserName"]+"'",mycon);
mydataadapter1.Fill(mydataset,"tb_Blog");
DataRowViewrowview1=mydataset.Tables["tb_Blog"].DefaultView[0];
ID=rowview1["BlogID"].ToString();
}
publicvoidST_check_Login()
{
if((Session["UserName"]==null))
{
Response.Write("");
Response.End();
}
}
publicvoidST_Article_Bind()
{
stringsqlstr="select*fromST_newswhereBlogID='"+ID+"'";
//调用公共类中的ExceDS方法,返回一个DataSet类型的数据集,并作为GridView控件的数据源
GridView1.DataSource=da.ExceDS(sqlstr);
GridView1.DataKeyNames=newstring[]{"ST_n_id"};
GridView1.DataBind();
}
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
SqlDatada=newSqlData();
booldelete=da.ExceSQL("deletefromST_newswhereST_n_id='"+GridView1.DataKeys[e.RowIndex].Value+"'");
if(delete)
{
Response.Write("
');location='ArticleManage.aspx'");
}
else
{
Response.Write("
');location='ArticleManage.aspx'");
}
}
protectedvoidbtnSearch_Click(objectsender,EventArgse)
{
SqlDatada=newSqlData();
stringsearch=this.ddlSearch.SelectedValue;
switch(search)
{
case"文章ID":
da.BindData(this.GridView1,"Select*FromST_newsWhereST_n_idLike'%"+this.txtKey.Text+"%'andBlogID='"+ID+"'");
break;
case"文章主题":
da.BindData(this.GridView1,"Select*FromST_newsWhereST_n_titleLike'%"+this.txtKey.Text+"%'andBlogID='"+ID+"'");
break;
default:
Response.Write("
');location='javascript:
history.go(-1)'");
break;
}
}
protectedvoidGridView1_PageIndexChanging(objectsender,GridViewPageEventArgse)
{
GridView1.PageIndex=e.NewPageIndex;
ST_Article_Bind();
}
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
if((e.Row.Cells[1].Text).Length>5)
{
e.Row.Cells[1].Text=(e.Row.Cells[1].Text).Substring(0,5)+"…";
}
((LinkButton)e.Row.Cells[5].Controls[0]).Attributes.Add("onclick","returnconfirm('确定要删除吗?
')");
}
}
protectedvoidCheckBox2_CheckedChanged(objectsender,EventArgse)
{
for(inti=0;i<=GridView1.Rows.Count-1;i++)
{
CheckBoxcbox=(CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if(CheckBox2.Checked==true)
{
cbox.Checked=true;
}
else
{
cbox.Checked=false;
}
}
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
//mycon.Open();
for(inti=0;i<=GridView1.Rows.Count-1;i++)
{
CheckBoxcbox=(CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if(cbox.Checked==true)
{
stringsqlstr="deletefromST_newswhereST_n_id='"+GridView1.DataKeys[i].Value+"'";
da.ExceSQL(sqlstr);
Response.Write("
');location='ArticleManage.aspx'");
}
}
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
CheckBox2.Checked=false;
for(inti=0;i<=GridView1.Rows.Count-1;i++)
{
CheckBoxcbox=(CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
cbox.Checked=false;
}
}
}
3.2.2.博客文章信息修改
当单机GridView控件中的“修改”按钮时,将会链接到ViewContent.aspx页面,如下图所示:
图表3-2博客文章信息修改图
具体代码如下:
publicpartialclassModule_Blog_ReplayContent:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
//if(Session["UserName"]==null)
//{
//Response.Redirect("~/BlogIndex.aspx");
//}
if(!
IsPostBack)
{
try
{
stringstr;
stringstr2=Page.Request["id"].ToString();
//此处用来实现将数据绑定到前台
SqlConnectionmycon=newSqlConnection(ConfigurationManager.AppSettings["conStr"]);
mycon.Open();
SqlDataAdaptermyada=newSqlDataAdapter("select*fromST_newswhereST_n_id='"+str2+"'",mycon);
DataSetds=newDataSet();
myada.Fill(ds,"ST_news");
//创建DataRowView对象的一个实例
DataRowViewrowview=ds.Tables["ST_news"].DefaultView[0];
//将文章主题读取到labSubject文本框中
this.labSubject.Text=rowview["ST_n_title"].ToString();
//将文章内容读取到txtContent文本框中
this.txtContent.Text=rowview["ST_n_content"].ToString();
mycon.Close();
}
catch(Exceptionex)
{
Response.Write(ex.Message);
}
}
}
protectedvoidbtnUpdate_Click(objectsender,EventArgse)
{
stringid
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 博客 管理 系统 WEB 课程设计