一种博客应用系统的制作方法

文档序号:6540927阅读:173来源:国知局
一种博客应用系统的制作方法
【专利摘要】本发明公开一种博客应用系统,涉及计算机网络系统,博客系统中包括博客注册模块,登录模块。在每一个注册并登陆后的博客中还会包括发表博文、博文管理、添加博文分类、博文分类的管理、博文评论的管理、密码修改等部分。将以上各个模块的功能进行整合形成一个完整的系统,建立一个数据库,所述前台功能模块中,查看博客文章部分,针对于游客,方便游客对博客文章的查看,是主要的前台模块;评论博文部分,针对于游客,主要让游客对博主文章发表自己的看法和评论,是游客与博主互动的模块。本系统具有易维护性,安全性,可扩展性,管理员能够简单方便地管理系统,定义新的应用。
【专利说明】一种博客应用系统
【技术领域】
[0001]本发明涉及计算机网络系统,具体说是一种博客应用系统。
【背景技术】
[0002]博客是WEB LOG的缩写,简单来说就是网络日记。它是1997年12月由美国的JornBarger最早提出的,这些年全球博客获得了突飞猛进的发展。据博客搜索Technorati统计,目前全球平均每5.8秒钟诞生一个博客。它是一个新型的个人互联网出版工具,博客使用者可以很方便地用文字、链接、影音、图片建立起个性化的网络世界。博客秉承了个人网站的自由精神,但是综合了激发创造的新模式,使其更具开放和建设性。它作为一种新表达的方式,它传播的不仅有情绪,包括大量的智慧、意见和思想。某种意义上说,它也是一种新的文化现象,博客的出现和繁荣,真正凸现网络的知识价值,标志着互联网发展开始步入更高的阶段。
[0003]商业网站设计的主要目的一般是通过网站的推广,实现更多网络用户的关注,从而吸引更多的企业用户投入更多的宣传经费到网站上。
[0004]长期的战略目标,商业网站不仅是公共产品信息和服务的推广,它还是将买家与卖家、厂商和合作伙伴紧密结合的平台,借助这些商业网站可以消除企业与客户之间时间与空间带来的障碍。
[0005]博客系统致力于为广大博客提供优质博客页面服务的商业网站。每个博客都希望借助自己的博客页面宣传自己,而博客数量越多,网站的点击率越高就越能够吸引广大的企业客户选择该商业网站作为媒介,将自己的产品展现给客户。可以说,对这些博客网站而言:为博客提供良好的服务就意味着为网站带来更多的商业客户。
[0006]博客记载了日常发生的事情和自己的兴趣爱好,把自己的思想和知识和他人分享、交流,同时又通过“六度空间”结识了更多志趣相投的朋友;而越来越多专业知识的博客的出现,让我们看到了博客更多所蕴涵的巨大的信息价值:不同的博客选择不同的内容,收集和整理成为很多人关注的专业博客一目前越来越多的人获取信息的来源是一些固定的博客。
[0007]博客作为一个随着互联网技术飞速发展的新应用产物,越来越多的人都拥有自己的博客,本发明公开一种博客管理系统。

【发明内容】

[0008]本发明目的是提供一种博客应用系统,该系统易升级维护,保证用户的个人信息数据安全,可扩展,并可带来新的生活、工作方式、新的学习方式的一种博客管理系统。
[0009]为实现上述目的本发明所采用的技术方案是:
一种博客应用系统,该系统的包括如下功能模块;
O前台功能模块,在前台功能模块上分为以下两个部分:
①查看博客文章部分: 网站游客可以登陆网站首页查看博主文章;
②评论博文部分:
对查看的博文进行评论;
2)后台功能模块,通过计算机网络将前台与后台的数据库相连,网站管理员将从前台得到的信息进行处理,实现文章管理,用户设置及博主设置;
①文章管理,管理员对网站中已有的文章进行删除,更新操作;
②用户设置,更新普通用户对博客的操作的权限;
③博主设置,对博主的信息进行操作。
[0010]所述前台功能模块中,查看博客文章部分,针对于游客,方便游客对博客文章的查看,是主要的前台模块;评论博文部分,针对于游客,主要让游客对博主文章发表自己的看法和评论,是游客与博主互动的模块;
所述后台功能模块中的注册登录模块,实现新用户注册,登录功能;其中,注册新用户时会对用户输入的注册信息进行有效的验证,包括基本数据格式的有效性,以及逻辑有效性;注册成功登录时会对博客输入的信息进行提示;同时在注册时还用到了验证码技术,防止恶意注册;
所述后台功能模块中的博文发表模块,实现了博主发表新文章的功能;博主发表文章时,可以选择文章所属类别,此外只有是博主才能发表文章,对此进行了严格的身份验证;所述后台功能模块中的博文管理模块,显示所有博客的标题,可以对已有的博客进行删除和编辑操作;
所述后台功能模块中的分类管理模块,对博客的分类进行添加和修改,实现博客的分类选择;
所述后台功能模块中的评论管理模块,实现了与文章相关的评论管理,博主可以对相关的评论进行修改和删除;
所述后台功能模块中的信息修改模块,对自己的信息进行修改,其中包括对登录密码的修改。
[0011]所述的一种博客应用系统,该系统的体系结构是,基于B/S结构,由用户终端、WEB服务器、数据服务器构成;个人博客网站的核心是中间的接入服务器和应用服务器部分。
[0012]所述的一种博客应用系统,该系统架构是由模型、视图与控制器三个组成部分;三个部分以最少的稿合,协同工作,从而提高应用的可扩展性及可维护性;
将一个应用的输入、处理、输出流程安照Mode 1、Vi ew、Contro 11 er的方式进行分离,这样一个应用被分成三层——模型层、视图层、控制层。
[0013]本发明具有如下优点:
1、易维护性,管理员能够简单方便地管理系统,定义新的应用,并对系统进行日常维护;随着博客网站信息的变更或增加、数据规模的增大,系统升级、维护应易于操作;各子系统、功能模块的设计应具有良好的灵活性,保证在博客网站系统建设过程中后期系统功能的实现不影响前期已投入使用的系统功能。
[0014]2、安全性,系统应充分考虑信息、设备、运行和管理的安全性,建立完善的多层次的安全保障体系,保证用户的个人信息等资料的数据安全。
[0015]3、可扩展性,博客网站的用户从事着各种行业,他们的需求各不相同,系统在设计时应充分考虑到用户需求不断变化的需要,降低系统在扩展新的业务功能时的复杂度。
【专利附图】

【附图说明】
[0016]图1是本发明的博客系统整体结构图;
图2是本发明的博客网站体系结构图;
图3是本发明的前台系统流程图;
图4是本发明的后台系统流程图;
图5是本发明的数据流程图;
图6是本发明的博客管理员用例图;
图7是本发明的后台登录流程图;
图8是本发明的修改密码流程图;
图9是本发明的前台页面效果图。
【具体实施方式】
[0017]如图1-9所示,一种博客应用系统,该系统包括如下功能模块;
O前台功能模块,在前台功能模块上分为以下两个部分:
①查看博客文章部分:
网站游客可以登陆网站首页查看博主文章;
②评论博文部分:
对查看的博文进行评论;
2)后台功能模块,通过计算机网络将前台与后台的数据库相连,网站管理员将从前台得到的信息进行处理,实现文章管理,用户设置及博主设置;
①文章管理,管理员对网站中已有的文章进行删除,更新操作;
②用户设置,更新普通用户对博客的操作的权限;
③博主设置,对博主的信息进行操作。
[0018]所述前台功能模块中,查看博客文章部分,针对于游客,方便游客对博客文章的查看,是主要的前台模块;评论博文部分,针对于游客,主要让游客对博主文章发表自己的看法和评论,是游客与博主互动的模块;
所述后台功能模块中的注册登录模块,实现新用户注册,登录功能;其中,注册新用户时会对用户输入的注册信息进行有效的验证,包括基本数据格式的有效性,以及逻辑有效性;注册成功登录时会对博客输入的信息进行提示;同时在注册时还用到了验证码技术,防止恶意注册;
所述后台功能模块中的博文发表模块,实现了博主发表新文章的功能;博主发表文章时,可以选择文章所属类别,此外只有是博主才能发表文章,对此进行了严格的身份验证;所述后台功能模块中的博文管理模块,显示所有博客的标题,可以对已有的博客进行删除和编辑操作;
所述后台功能模块中的分类管理模块,对博客的分类进行添加和修改,实现博客的分类选择;
所述后台功能模块中的评论管理模块,实现了与文章相关的评论管理,博主可以对相关的评论进行修改和删除;
所述后台功能模块中的信息修改模块,对自己的信息进行修改,其中包括对登录密码的修改。
[0019]该系统的体系结构是,基于B/S结构,由用户终端、WEB服务器、数据服务器构成;个人博客网站的核心是中间的接入服务器和应用服务器部分。
[0020]该系统架构是由模型、视图与控制器三个组成部分;三个部分以最少的稿合,协同工作,从而提高应用的可扩展性及可维护性;
将一个应用的输入、处理、输出流程安照Model、View、Controller的方式进行分离,这样一个应用被分成三层——模型层、视图层、控制层。
[0021]数据库连接池配置,数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用中体现的尤为突出。对数据库连接的管理显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能功能指标。因此需要在此博客管理系统中加入连接池的应用。
[0022]Tomcat服务器中使用默认的连接池技术是DBCP。具体的配置通过修改Tomcat服务器conf目录下的context, xml文件进行配置。
[0023]配置Tomcat数据库连接池的前提条件:
有Java运行环境。
[0024]拥有MySqL数据库服务器。
[0025]在Tomcat的common/lib目录下加入MySql的数据库驱动包。
[0026]配置方法:
在 Tomcat 的 conf/context.xml 中的〈Context〉和〈/Context〉之间填入如下代码:
〈Resource name=〃jdbc/mysqlds〃
auth=〃Container〃
type="javax.sql.DataSource^
maxActive="100"
maxldle=〃30〃
maxWait="10000"
username=〃root〃
password="I23456〃`
driverClassName=〃com.mysql.jdbc.Driver^
url="jdbc:mysql://127.0.0.l/db_blog"/>
数据库连接与连接池:
通过之前Tomcat已经配置好,当Tomcat服务器启动时,将创建一个针对MySQL数据库的连接池。之后就可以调用context的10kupO方法获取数据源对象,然后通过DataSource对象的getConnectionO方法获取数据库的连接。
[0027]为了简化JDBC编程的步骤和更高效的使用JDBC技术,本系统采用一个能更方便的对数据库进行操作的开源类库,DbUtil。通过使用其中的QueryRunner类中的query O和update O方法进行数据库的相关操作。主要代码如下:
public static QueryRunner getQueryRunner() {//数据源对象可以理解为连接池的管理者,通过他可以获取数据库的连接。[0028]DataSource ds = null;
try {//通过在context, xml文件,设定的数据源对象的名字,获取数据源对象 Context context = new InitialContext O ;
ds = (DataSource) context, lookup(〃java:/comp/env/jdbc/mysqlds〃);
} catch (Exception e) {
System, out.println(〃获取数据源时出错〃);
}
QueryRunner qr = new QueryRunner(ds);
return qr;
}
对于JSP页面传递的参数统一釆用Servlet接收并处理,其中部分Servlet的doGet()方法的操作都交给doPostO来处理。JSP页面传递的参数对于Servlet来说有可能产生中文乱码的问题,因此会加入。
[0029]request.setCharacterEncoding ("UTF-8");
来进行处理,解决从JSP页面接受中文参数乱码。
[0030]在后台操作中,为了博客用户的安全性,会在每一次跳转页面进行一次验证。
[0031]HttpSession session = request.getSession();
User user = (User) session.getAttribute (〃user〃);
只有user不为空时,才会继续进行一下的操作,不然会跳转到登录界面, response.sendRedirect(〃/blog/admin/login.jsp〃);
以保证用户的合法性。
[0032]在JSP页面参数接收方面,釆用request.getParameter O进行参数的获取。
[0033]数据库操作方面釆用context, xml文件,通过设定的数据源对象的名字,获取数据源对象,通过他可以获取数据库的连接。
[0034]Context context = new InitialContext ();
ds = (DataSource) context, lookup(〃java:/comp/env/jdbc/mysqlds〃);
由于会有很多Servelt通过数数据源对象获取数据库连接,因将其封装到DbHelper类中。
[0035]DataSource ds = null;
Context context = new InitialContext();
ds = (DataSource) context, lookup(〃java:/comp/env/jdbc/mysqlds〃);
QueryRunner qr = new QueryRunner(ds);
return qr;
统一通过 QueryRunner qr = DbHelper.getQueryRunner ();来调用,已完成数据库的操作。
[0036]与博客相关的Servlet
用来接收JSP传递过来的与博文 的添加、修改、删除有关的参数、操作。其主要对象与方法如下:
(I) AddBlogServletString title = request.getParameter (〃title〃);
String content = request.getParameter(〃content〃);
String categoryld = request.getParameter("category");
接收JSP页面发送来的三个参数,分别代表博客的标题,内容和分类。
[0037]Stringsql = 〃insert into blog (title, content, category—id,createdtime)
values ( ?,, ,now())";
String params[] = { title, content, categoryld };
QueryRunner qr = new QueryRunner(ds);
result = qr.update (sql,params) ; // query ()
添加博文的SQL语句,向blog表中标题、分类、内容插入记录,?为设定的参数,数组params []中放着参数,用qr.update O执行SQL语句,now O用来生成当前系统时间。
[0038]if (result == I) {
message = 〃添加博文成功! 〃;
} else {
message = 〃添加博文失败! 〃;`
}
用来向result, jsp页面返回对数据库操纵的结果。
[0039]request.setAttribute("message",message);
request.getRequestDispatcher(^/admin/result.jsp〃).forward (request,response);
向JSP页面传递参数,指明跳转的页面。
[0040](2) AdminBlogListServlet
String sql = "select b.1d as id,title,content,createdtime, c.name ascategory from blog b,category c where b.category_id=c.1d order by b.1d desc〃;List list = (List) qr.query(sql, new BeanListHandler(Blog, class));
执行SQL语句,将获取的数据放到List当中,然后通过JSP的for循环语句将列表中的数据提取出来。
[0041]request.setAttribute ("list",list);
request.getRequestDispatcher(〃/admin/adminBlogList.jsp〃).forward(request,response);
将列表数据传递给list并跳转到adminBlogList.jsp页面。
[0042](3) DeleteBlogServlet
String sql = "delete from blog where id=〃 + id;
QueryRunner qr = new QueryRunner(ds);
qr.update (sql);
通过qr.update ()执行sql语句。
[0043]request.getRequestDispatcher(〃/servlet/AdminBlogListServlet〃).forward (request, response);
重新返回到管理博客列表。[0044](4) PostEditBlogServlet
String title = request.getParameter (〃title〃);
String content = request.getParameter(〃content〃);
String id = request.getParameter(〃id〃);
String categoryId=request.getParameter("category");
接受页面传递过来的参数。
[0045]Stringsql = 〃update blog set title= ,content= ?,category_id= ?
where id= 〃;
String params[] = { title, content, categoryld, id };
result = qr.update(sql, params);
执行与数组对应参数的SQL语句,对博客表的记录进行更新,并返回result。
[0046]if (result == I) {
message = “您修改成功了 ! ” ;
} else {`
message = “您修改失败了 ! ” ;
}
request.setAttribute( “message”,message);
request.getRequestDispatcher ( “/admin/result, jsp,,).forward (request,response);
根据result的不同对信息进行返回,然后跳转到相应页面进行提示。
[0047](5) PreAddBlogServlet
String sql = 〃select id, name, level from category order by level desc,iddesc〃;
list = (List) qr.query(sql, new BeanListHandler(Category, class));
request.setAttribute(〃list〃,list);
request.getRequestDispatcher(〃/admin/addBlog.jsp〃).forward (request,response);
执行SQL语句,将执行的结果放到list当中,然后返回给接受页面进行显示。
[0048](6) PreEditBlogServlet
String id = request.getParameter (〃id〃);
获取页面传递的参数。
[0049]String sql = 〃select id, title,content,category—id as categoryid fromblog where id=〃 + id;
Blog blog=null;
List categorys=null;
List list = (List) qr.query(sql, new BeanListHandler(Blog, class));
执行SQL语句并把blog返回的结果赋给一个列表。
[0050]blog = (Blog) list, get (0);
由于列表中相符的记录就一个,所以get (O)。[0051]sql=〃select id, name from category order by level desc,id desc〃;
categorys= (List)qr.query(sql, new BeanListHandler(Category, class));
执行关于分类的SQL语句同样是返回给一个列表。
[0052]request.setAttribute ("blog",blog);
request.setAttribute(〃categorys〃,categorys);
request.getRequestDispatcher(^/admin/editBlog.jsp〃).forward (request,response);
将博客与列表的各项参数返回给editBlog.jsp进行处理.。
[0053]与分类相关的Servlet
用来接收JSP传递过来的与博文分类有关的参数和操作,主要处理添加、修改、删除等相关的功能。
[0054]主管分类的Servlet将添加、删除、显示列表、编辑和更新的功能集成到一起,通过JSP页面当中的隐藏表单传过来的method参数判断执行那个功能。
[0055]String sql = 〃select id, name, level from category order by level desc,iddesc〃;
list = (List) qr.query (sql, new BeanListHandler (Category, class));
request.setAttribute(〃list〃,list);
request.getRequestDi spat cher(///admin/a dm inCategoryList.jsp〃).forward (request, response);
执行SQL语句,查询结果赋给列表,返回给JSP页面。
[0056]String id = request.getParameter ("id");
String sql = "delete from category where id=〃 + id;
qr.update (sql);
request.getRequestDispatcher(〃/servlet/CategoryServlet ? method=list〃).forward(request, response);
获取页面参数id,执行删除关于id的语句,并跳转到列表Servelt执行列表方法,以重新显示列表。
[0057]String id = request.getParameter ("id");
String sql = 〃select id, name, level from category where id=〃 + id;
List list = (List) qr.query (sql, new BeanListHandler(Category, class));
category = (Category) list, get (0);
获取参数id,执行关于id的SQL语句,将结果返回给列表,查找列表中的值 request.setAttribute("category",category);
request.getRequestDispatcher(^/admin/editCategory.jsp〃).forward (request,response);
将值交给editCategory.jsp进行显示,进而编辑 String id = request.getParameter (〃id〃);
String name = request.getParameter("name");
String level = request.getParameter(〃level〃);获取页面ID、名称、级别三个参数
String sql = 〃update category set name= ?,level= ^ where id= 〃;
String params [] = { name, level, id };
qr.update (sql, params);
执行带着三个参数的SQL语句予以更新,完成编辑过程 String name = request.getParameter("name");
String level = request.getParameter(〃level〃);
String sql = "insert into category (name, level) values ( ',,rI 丫,
String params[] = { name, level };
result = qr.update(sql, params);
获取参数,执行添加语句
if (result == I) {message = 〃好消息,博客分类添加成功! 〃;
} else {
message = 〃坏消息,博客分类添加失败! 〃;
}
将执行的情况予以判断
request.setAttribute(〃message〃,message);
request.getRequestDispatcher(〃/admin/result.jsp〃).forward (request,response);
将判断结果交给JSP页面 与评论相关的Servlet
与之前的CategoryServlet釆用同样的方式,接收JSP传递过来的与博文评论有关的参数和操作,进行添加、删除、显示列表、编辑和更新的功能,通过JSP页面当中的隐藏表单传过来的method参数判断执行那个功能。
【权利要求】
1.一种博客应用系统,其特征在于:该系统包括有如下模块; O前台功能模块:前台功能模块分为以下两个部分: ①查看博客文章部分:网站游客登陆网站首页查看博主文章; ②评论博文部分:对查看的博文进行评论; 2)后台功能模块:通过计算机网络将前台与后台的数据库相连,网站管理员将从前台得到的信息进行处理,实现文章管理,用户设置及博主设置; ①文章管理,管理员对网站中已有的文章进行删除,更新操作; ②用户设置,更新普通用户对博客的操作的权限; ③博主设置,对博主的信息进行操作。
2.根据权利要求1所述的一种博客应用系统,其特征在于:所述前台功能模块中,查看博客文章部分,针对于游客,方便游客对博客文章的查看,是主要的前台模块;评论博文部分,针对于游客,主要让游客对博主文章发表自己的看法和评论,是游客与博主互动的模块; 所述后台功能模块中的注册登录模块,实现新用户注册,登录功能;其中,注册新用户时会对用户输入的注册信息进行有效的验证,包括基本数据格式的有效性,以及逻辑有效性;注册成功登录时会对博客输入的信息进行提示;同时在注册时还用到了验证码技术,防止恶意注册; 所述后台功能模块中的博文发表模块,实现了博主发表新文章的功能;博主发表文章时,可以选择文章所属类别,此外只有是博主才能发表文章,对此进行了严格的身份验证; 所述后台功能模块中的博文管理模块,显示所有博客的标题,可以对已有的博客进行删除和编辑操作; 所述后台功能模块中的分类管理模块,对博客的分类进行添加和修改,实现博客的分类选择; 所述后台功能模块中的评论管理模块,实现了与文章相关的评论管理,博主可以对相关的评论进行修改和删除; 所述后台功能模块中的信息修改模块,对自己的信息进行修改,其中包括对登录密码的修改。
3.根据权利要求1所述的一种博客应用系统,其特征在于:该系统的体系结构是,基于B/S结构,由用户终端、WEB服务器、数据服务器构成;个人博客网站的核心是中间的接入服务器和应用服务器部分。
4.根据权利要求1所述的一种博客应用系统,其特征在于:该系统架构是由模型、视图与控制器三个组成部分;三个部分以最少的稿合,协同工作,从而提高应用的可扩展性及可维护性; 将一个应用的输入、处理、输出流程安照Model、View、Controller的方式进行分离,这样一个应用被分成三层——模型层、视图层、控制层。
【文档编号】G06F17/30GK103870276SQ201410100325
【公开日】2014年6月18日 申请日期:2014年3月19日 优先权日:2014年3月19日
【发明者】张晓丹, 宁志高 申请人:沈阳化工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1