1、本 科 毕 业 设 计(论文) 题 目:个人博客系统的设计与实现 专题题目: 摘 要 随着互联网的发展,博客在自由和共享的精神的影响下应运而生。博客的 出现让我们有更多机会在日常生活中向他人展示自己的观点和信息。博客就是 开放的私人空间。在互联网中,你可以尽情的发表自己的思想和言论。可以在 网络上结交各式各样的人。 互联网在大家的方方面面都提供了极大的帮助。所以很明显的趋势就是网 站的出现。个人博客系统为树立个人在网络上的形象提供了一个良好的平台。 JAVA 作为目前最盛行的技术之一,J2EE(JAVA 企业版本)十分适合于 Web 应用程序的设计和实现。此外,目前基于 J2EE 的开源框架在
2、市场上久经考验, java 社区也是十分活跃。本文的目的就是利用 J2EE 技术设计和实现个人博客 系统。 关键词:个人博客系统;B/S 结构;SpringMVC ; Spring ;MyBatis ABSTRACT blog comes into being under the influence of the spirit of freedom and sharing. The advent of blogs gives us more opportunities to present our views and information to others in our daily liv
3、es. Blog is open private space. On the Internet, you can express your thoughts and opinions. You can make all kinds of people on the internet. The Internet has provided great help in all aspects of our. So the obvious trend is the emergence of the site. Personal blog system provides a good platform
4、for setting up the image of the individual on the network. JAVA is currently the most popular technology, J2EE (JAVA enterprise version) is very suitable for the design and implementation of Web applications. In addition, the current open source framework based on J2EE has been tested on the market,
5、 Java community is also very active. The purpose of this paper is to use J2EE technology to design and implement personal blog system. Key words: Personal Blog System;B / S structure ;SpringMVC;Spring ;MyBati 目 录 第一章 绪论 .1 第二章 相关技术介绍 2 2.1 B/S 简介 .2 2.2 JAVA 简介 2 2.3 JSP 简介 .3 2.4 springMVC 简介 .3 第三
6、章 可行性分析 4 3.1 技术可行性分析 .4 3.2 经济可行性分析 .4 3.3 操作可行性 .4 3.4 法律可行性 .4 第四章 系统设计 5 4.1 系统总流程 .5 4.2 博主用例 .6 4.3 游客用例 .7 4.4 系统类 .9 4.5 E-R 图 11 4.6 系统表设计 14 第五章 系统实现 .16 5.1 登录模块 16 5.1.1 博主登录 16 5.2 博客管理模块: 19 5.2.1 博客查询 19 5.2.2 博客新建 21 5.2.3 博客修改 23 5.2.4 博客删除 25 5.3 博客类别管理模块 26 5.3.1 添加博客类别 26 5.3.2 修
7、改博客类别 28 5.3.3 删除博客类别 30 5.3.4 显示博客类别 32 5.4 评论管理模块 34 5.4.1 审核评论 34 5.4.2 删除评论 36 第六章 系统测试 .38 6.1 前台模块测试 38 6.2 后台模块测试 38 参考文献 .41 致 谢 .42 第一章 绪论 个人博客是人们在网络上展现自己个性的一种方式。自从互联网走进千家 万户,大受人们喜爱。大家都喜欢通过网络来获取各种各样的信息。而在网络 上,你也可以畅所欲言,而个人博客也是其中一种。在个人博客上,你可以发 表自己的心路旅程,发表自己的工作经验,发表技术博客等等。 首先介绍一下什么是博客,它也被称为网络日
8、志。博客其实就是一个网页, 它是由各种各样的帖子组成。这些帖子可以是你某一天观看电影的感慨,也可 以是阅读到某篇书籍的读后感,更可以是你在自己技术领域的心得。它就是一 个网页,但是大家可以在上面用文字或者图片分享自己的心情等,它提供的内 容可以用来进行交流。 博客最开始的时候是论坛下的一个子系统。最早参与博客的都是一些信息 技术的一些专家和学者,讨论的都是专业技能。直到发现了博客的商业价值, 一些开放了自发式的博客,大家也都发现了博客分享和讨论的趣味。越来越多 的人参与进来,博客也越来越风靡盛行。 博客与论坛有许多的相似之处,许多朋友都分不清他们两的区别。首先, 论坛和博客都可以进行交友和交流
9、等。而其中论坛注重的是集体讨论,博客注 重的是个人分享。它们两者的核心点就有着很大的区别。论坛的创建的用户是 基于为众人服务,而博客是为了博主服务。它们的不同点还有在形式上的不同。 博客是独立存在的。而论坛并不是。总结起来,论坛是多人一起交流的地方, 互动性强,社交性强。博客是发表个人文章的地方,虽然也可以交流,但更多 的还是自娱自乐。 第二章 相关技术介绍 2.1 B/S 简介 软件系统体系结构分为两种,是客户机/服务器结构和浏览器/服务器结构。 其中的浏览器/服务器结构就是B/S结构。 C/s模式:是客户端/服务器(Client/Server)模式,主要指的是传统的桌面 级的应用程序。比如
10、我们经常用的信息管理系统。 B/S 模式:是浏览器/服务器(Browser/Server)模式,主要指的是 web 应用 程序,就像电子商务网站,如淘宝,阿里巴巴等。相对于 C/S 模式的应用程序 来说,B/S 模式最大的优势在于客户端只要有浏览器就可以运行。而 C/S 模式 的应用程序需要在客户端进行安装,而且升级也不太方便。而 B/S 模式的应用 程序对于客户端来说,永远都是最新版本的。 2.2 JAVA 简介 Java 的前身是 Oak,sun 公司在 1995 年申请注册商标的时候,发现已经 Oak 已经被注册了,最终才另外取了一个名字叫 JAVA(其中还有一个趣味故事, 有兴趣的可以
11、去查找看看) , 要使用 Java 首先要到官网甲骨文官网上下载 Java 的软件开发工具包,其 中分为 windows 版本和 Linux 版本,我使用的是 Windows 的。而在 Windows 上 要使用 Java,要设置 JAVA 的环境变量。设置环境变量的步骤如下:第一步, 点击计算机属性中的高级系统设置,点击系统属性高级的环境变量。第二步, 设置一个系统变量为 JAVA_HOME,其中的值是你的 Java 安装目录。它的作用还 在于一些使用 Java 的工具时候需要用到这个变量,否则打不开,例如 eclipse.第 三步,设置一个 classpath 系统变量,它的作用是在你写
12、Java 源文件导包的时 候去查找的类路径。第三步,在 Windows 自有的系统变量 path 中加入 Java 安 装目录下的 bin 路径。既可以写成%JAVA_HOME%/bin;这就将 Java 的运行环境搭 配好了。 介绍一下 Java 的文件目录。首先最重要的 bin 目录下面包含的是一些 JDK 包含的一些开发工具执行文件,例如像编译器 javac.exe.运行 Java 的 java.exe 等等都在这个目录下面。其中 Java 启动的虚拟机在 Java 目录的 jre 目录中。 2.3 JSP 简介 Jsp 是服务端技术,与微软的 ASP 一样,是一种动态网页的技术,不过
13、jsp 是使用 Java 语言技术开发的技术,jsp 使用的时候会被 jsp 引擎解析成 Servlet 代码,而 jsp 虽然可以写 Java 代码,但是 jsp 主要的作用是为了展示 视图,所以 jsp+javabean 可以很好的解决代码混淆问题,然后将视图与逻辑 分离。 2.4 SpringMVC 简介 SpringMVC 是一种现今十分流行的 WEB 框架,它的作用是使用了 MVC 思想 设计模式对 web 层进行解耦。是用来接受请求和处理请求的。 SpringMVC 处理请求的流程是如下:首先用户从浏览器中发送请求;之 后它 SpringMVC 的核心组件 DispacherSer
14、vlet 前端控制器根据请求信息也即 是 url 的信息来选择一个页面控制器进行处理;页面控制器接受得到委托之后, 它首先会收集和绑定参数到某个对象中,然后调用业务对象进行业务逻辑代码 处理,处理结束后返回 ModelAndView。前端控制器根据视图的名字渲染相应的 视图然后将响应传到前台去。 第三章 可行性分析 3.1 技术可行性分析 本系统管理项目使用的是 maven,数据库连接使用的是 mybatis,数据库使 用的是 mysql,接受浏览器请求并处理的是使用 springmvc,他们都是经过市场检 验的,都已经十分成熟了,在安全性、可用性、可靠性等方面都是可以值得肯 定的 3.2 经
15、济可行性分析 本系统使用的技术框架都是开源框架,比如 spring,springmvc,mybatis.而使用的数据库也是开源免费的 mysql,使用的开 发软件 eclipse 也是免费的,人员就本人一个也是免费的。所以在经济上消费 很低,在经济可行性分析中是可以确定可行的。 3.3 操作可行性 个人博客系统开发结合个人需求而开发,能解决用户可以通过互联网来展 现自己等诸多问题,因此该项目符合开发条件,具有成熟的基础,并且,从前 面的分析来看,技术上的操作是十分成熟并且开源免费广为人们使用,从系统 的操作上是可行的。 第四章 系统设计 4.1 系统总流程 图 4-1 系统流程图 本个人博客系
16、统分为两个角色,分别是博主和游客。只有博主才能登录后 台管理系统,进行博客发表。 1.首先要通过用户名和密码登录后台管理系统,才能发布博客。 2.博主和游客都可以阅读博客。 3.博主和游客都可以发表评论。 4.经过博主的评论审核,评论才可以发布。 5.此时博主和游客才可以观看到评论。 4.2 博主用例 图 4-2 博主用例图 博主的功能简介: 1.登入功能 登入后台管理系统:首先进入登录页面,需要输入账号和密码。它会 使用 Shiro 进行安全管理,对前台输入的密码进行加密运算,然后与数据 库中的进行比较。成功后才能登入后台系统。 1.博客管理功能 博客管理功能分为写博客和博客信息管理。写博客
17、是博主用来发表编 写博客的,需要博客标题,然后选择博客类型,最后将博客内容填入百度 的富文本编辑器中,点击发布博客按钮即可发布博客。 2.博客类别管理系统 博主类别管理系统可以添加,修改和删除博客类型名称和排序序号。 将会显示到首页的按日志类别区域。游客可以从这里查找相关的感兴趣的 博客内容。 4.评论管理功能 评论管理功能分为评论审核和评论信息管理两部分。评论审核是当有 游客或自己发表了评论之后,博主需要在后台管理系统中审核评论。若想 将此评论显示在页面上则点击审核通过,否则点击审核不通过。 5.个人信息管理功能 在这里可以修改博主的个人信息,可以修改昵称,个性签名,可以添 加个人头像,修改
18、个人简介。 6.系统管理功能 这里的功能有友情链接管理,修改密码,刷新系统缓存和安全退出。 友情链接管理可以添加,修改,删除友情链接网址。 4.3 游客用例 图 4-3 游客用例图 用例一 用例名称:查询博客 参与者:游客 主要流程: 1. 在查询搜索处填写所需的条件 2. 点击查询 3. 便会显示出符合条件的所有博客 用例二 用例名称:查看博客内容 参与者:游客 主要流程: 1. 点击想要查看的博客,进入博客内容页面 2. 观看博客内容信息 用例三 用例名称:查看博主个人信息 参与者:游客 主要流程: 1. 点击关于博主,进入博主个人信息页面 2. 可以看到博主的个人信息内容 用例四 用例名
19、称:发表评论 参与者:游客 前置条件:首先要进入到博客内容页面 主要流程: 1. 在发表评论的评论框中写入自己想要发表的评论 2. 填入验证码 3. 点击发表评论 用例五 用例名称:查看友情链接 参与者:游客 主要流程: 1. 在每个页面的右下角可以看到友情链接 2. 若想跳转到某个友情链接则点击相应的友情链接即可 3. 观看友情链接内容 4.4 系统类 图 4-4 博客类图 本系统主要功能和模块的 JavaBean 主要集中博客、博客类型、评论、友情 链接这四个类。 一、博客类 1.功能 用于存储博主发表的博客的一些信息 2.属性 id; / 编号 title; / 博客标题 summary
20、; / 摘要 leaseDate; / 发布日期 clickHit; / 查看次数 replyHit; / 回复次数 content; / 博客内容 contentNoTag; / 博客内容 无网页标签 Lucene 分词用 blogType; / 博客类型 blogCount; / 博客数量 非博客实际属性,主要是 根据发布日期 归档查询博客数量用 releaseDateStr; / 发布日期字符串 只取年和月 keyWord; / 关键字 3.方法 都是属性对应的 setter,getter 方法 二、博客类型类 1.功能:对博客进行分类,将博客分为几大类型 2.属性: id; / 编号
21、userName; / 用户名 password; / 密码 nickName; / 昵称 sign; / 个性签名 proFile; / 个人简介 imageName; / 博主头像 3.方法: 对应的 setter,getter 方法 三,评论类: 1.功能:对博客评论数据保存。 2,。属性: id; / 编号 userIp; / 用户 IP content; / 评论内容 blog; / 被评论的博客 commentDate; / 评论日期 state; / 审核状态 0 待审核 1 审核通过 2 审核未通过 3.方法: 对应的 setter,getter 方法 四友情链接类 1.功能:
22、可以保存页面上的友情链接网址。 2.属性: id; / 编号 linkName; / 链接名称 linkUrl; / 链接地址 orderNo; / 排序序号 从小到大排序 3.方法: 对应的 setter,getter 方法。 4.5 E-R 图 图 4-5 博客 E-R 图 博客类的关系模式如下(加下滑线的是主键): 博客(编号,博客标题,摘要,发布日期,查看次数,博客类型,关键字, 博客内容)。 标题 博客 查看次数 摘要 发布日期 博客内容 发布日期博客类型 关键字 图 4-6 博主 E-R 图 博主类的关系模式如下(加下滑线的是主键): 博主实体(编号,用户名,密码,昵称,个性签名,
23、个人简介,博主头像)。 图 4-7 博客类型 E-R 图 博客类型类的关系模式如下(加下滑线的是主键): 博客类型实体(编号,博客类型名称,数量,排序)。 博主 用户 名 个性签名个人简介 博主头像 昵称 密码 博客类型 博客类型名称 数量 排序 图 4-8 评论 E-R 图 评论类的关系模式如下(加下滑线的是主键): 评论实体(编号,用户 IP,评论内容,被评论的博客,评论日期,审核状 态)。 图 4-9 友情链接 E-R 图 友情链接类的关系模式如下(加下滑线的是主键): 友情链接实体(编号,链接名称,链接地址,排序序号)。 评论 用户 IP 评论内容 被评论的博 客 评论日期审核状态 友
24、情链接 链接名称 链接地址 排序 4.6 系统表设计 系统总共有五张表,分别是博客表,博主表,博客类型表,评论表,友情 链接表。如下所示: 表 4-1 t_blog 表 字段名 数据类型 允许非空 id int(11) no title varchar(200) yes summary varchar(400) yes releaseDate datetime yes clickHit int(11) yes replyHit int(11) yes content text yes typeId int(11) yes 表 4-2 t_blogger 表 字段名 数据类型 允许非空 id i
25、nt(11) no userName varchar(50) yes password varchar(100) yes profile text yes nickName varchar(50) yes sign varchar(100) yes imageName varchar(100) yes 表 4-3 t_blogtye 表 字段名 数据类型 允许非空 id int(11) no typeName varchar(30) yes orderNo int(11) yes 表 4-4 t_comment 表 字段名 数据类型 允许非空 id int(11) no userIp varc
26、har(50) yes blogId int(11) yes content varchar(1000) yes commentDate datetime yes state int(11) yes 表 4-5 t_link 表 字段名 数据类型 允许非空 id int(11) no linkName varchar(100) yes linkUrl varchar(200) yes orderNo int(11) yes 第五章 系统实现 5.1 登录模块 5.1.1 博主登录 登入系统后台管理登录页面,博主首先输入用户名和密码,它回去调用 Controller层代码,然后进入业务层调用数据
27、库的一些操作确认是否用户名密 码正确,然后返回到前台就会登进去。 登录首页模块主要代码: JSP代码: 使用form表单提交到后台进行数据验证: Java个人博客系统 $errorInfo 使用javascrip对输入的博主用户名和密码进行校验,若用户名或密码为空, 提示错误信息来提醒用户, 用户再去查找错误。 function checkForm() var userName=$(“#userName“).val(); var password=$(“#password“).val(); if(userName=null|userName=“) $(“#error“).html(“用户名不能
28、为空!“); return false; if(password=null|password=“) $(“#error“).html(“密码不能为空!“); return false; return true; java代码:使用MVC框架,对后台数据和前台form表单提交的数据进行交互 Controller RequestMapping(“/blogger“) public class BloggerController Resource private BloggerService bloggerService; /* * 用户登录 * param blogger * param requ
29、est * return */ RequestMapping(“/login“) public String login(Blogger blogger,HttpServletRequest request) Subject subject=SecurityUtils.getSubject(); UsernamePasswordToken token=new UsernamePasswordToken(blogger.getUserName(), CryptographyUtil.md5(blogger.getPassword(), “java1234“); try subject.login
30、(token); / 登录验证 return “redirect:/admin/main.jsp“; catch(Exception e) e.printStackTrace(); request.setAttribute(“blogger“, blogger); request.setAttribute(“errorInfo“, “用户名或密码错误!“); return “login“; 5.2 博客管理模块: 博客管理管理模块为个人博客系统的用户(即博主)提供写博客和博客信 息管理功能。在个人博客系统的首页上的博客就是从这里进行发布的。博客管 理包含 新建:対博客的新建,博客可以含有图片,
31、视频,音频附件。新建博客必 须要有博客标题,博客类别自己选择所需要的博客类别,然后填入博客内容, 最后发表文章。 搜索:在博客信息管理中,可以输入自己想要搜索的博客信息,系统会自 动筛选出适合的博客展现给用户。 修改: 点击你想要修改的博客,系统会弹出修改博客页面,之后博客的标 题,所属的博客类型,博客内容等都可以修改。 删除: 该系统支持单个删除和批量删除。 5.2.1 博客查询 图 4-1 查询博客时序图 步骤 系统行为描述 1 博客信息管理页面点查询按钮 2 页面表单提交调用控制层控制层的list方法 3 控制层list方法中调用服务层的list方法 4 服务层调用持久层list方法返回
32、博客集合 按条件查询博客,调用控制层的list方法,在其中调用服务层list方法,返 回 blog集合:List list。获得集合后使用方法把查询到符要求的数据 传到前台,在前台对数据进行处理。中心代码如下: RequestMapping(“/list“) public String list(RequestParam(value=“page“,required=false)String page,RequestParam(value=“rows“,required=false)String rows,Blog s_blog,HttpServletResponse response)thro
33、ws Exception PageBean pageBean=new PageBean(Integer.parseInt(page),Integer.parseInt(rows); Map map=new HashMap(); map.put(“title“, StringUtil.formatLike(s_blog.getTitle(); map.put(“start“, pageBean.getStart(); map.put(“size“, pageBean.getPageSize(); List blogList=blogService.list(map); Long total=bl
34、ogService.getTotal(map); JSONObject result=new JSONObject(); JsonConfig jsonConfig=new JsonConfig(); jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor(“yyyy-MM-dd“); JSONArray jsonArray=JSONArray.fromObject(blogList,jsonConfig); result.put(“rows“, jsonArray); res
35、ult.put(“total“, total); ResponseUtil.write(response, result); return null; 5.2.2 博客新建 图 4-2 新建博客时序图 步 骤 系统行为描述 1 博主在后台页面填写博客信息点击发布博客按钮 2 Jsp表单提交调用控制层controller的save方法 3 控制层save方法中调用service层的add方法 4 调用blogMapper持久层保存博客信息 5 添加索引 点击写博客进入博客发布界面,填写博客内容信息,点击发布博客,提交 到控制层的save方法,传入参数:Blog,该参数包含了该博客所有信息内容,
36、在提交的时候使用javascript对博客的内容进行校验。校验成功后便会调用控 制层的方法,在控制层的save()方法中调用服务层的add()方法,对该博客 进行保存,持久到数据库中。部分代码如下 RequestMapping(“/save“) public String save(Blog blog,HttpServletResponse response)throws Exception int resultTotal=0; / 操作的记录条数 if(blog.getId()=null) resultTotal=blogService.add(blog); blogIndex.addInd
37、ex(blog); / 添加博客索引 else resultTotal=blogService.update(blog); blogIndex.updateIndex(blog); / 更新博客索引 JSONObject result=new JSONObject(); if(resultTotal0) result.put(“success“, true); else result.put(“success“, false); ResponseUtil.write(response, result); return null; 5.2.3 博客修改 图 4-3 修改博客时序图 步 骤 系统行
38、为描述 1 博主在博客信息管理页面选择需要修改的博客打开博客修改页面 2 Jsp表单提交调用控制层controller的save方法 3 控制层save方法中调用service层的update方法 4 调用blogMapper持久层保存修改后的博客信息 5 更新索引 进入博客修改页面,修改博客内容信息,点击发布博客,提交到控制层的 save方法,传入参数:Blog,该参数包含了修改后的博客所有信息内容,在提 交的时候使用javascript对博客的内容进行校验。校验成功后便会调用控制层 的方法,在控制层的save()方法中调用服务层的update()方法,对该博客 进行保存,持久到数据库中。部
39、分代码如下 RequestMapping(“/save“) public String save(Blog blog,HttpServletResponse response)throws Exception int resultTotal=0; / 操作的记录条数 if(blog.getId()=null) resultTotal=blogService.add(blog); blogIndex.addIndex(blog); / 添加博客索引 else resultTotal=blogService.update(blog); blogIndex.updateIndex(blog); /
40、更新博客索引 JSONObject result=new JSONObject(); if(resultTotal0) result.put(“success“, true); else result.put(“success“, false); ResponseUtil.write(response, result); return null; 5.2.4 博客删除 图 4-4 删除博客时序图 步 骤 系统行为描述 1 博主在博客信息管理页面选择需要删除的博客(可以选择多条) 2 调用控制层controller的delete方法 3 控制层delete方法中调用service层的delete
41、方法 4 调用blogMapper持久层将对应的博客信息删除 5 删除对应博客的索引 在博客管理页面选择需要删除的博客,点击删除按钮,提交到控制层的 delete方法,传入参数:需要删除博客的id,调用控制层的方法,在控制层的 delete()方法中调用服务层的delete()方法,对该博客或多个博客进行删 除,持久到数据库中。部分代码如下: RequestMapping(“/delete“) public String delete(RequestParam(value=“ids“)String ids,HttpServletResponse response)throws Exceptio
42、n String idsStr=ids.split(“,“); for(int i=0;i0) result.put(“success“, true); else result.put(“success“, false); ResponseUtil.write(response, result); return null; 5.3.2 修改博客类别 图 4-6 修改博客类型时序图 步 骤 系统行为描述 1 博主在博客类别信息管理页面选择要修改的博客类别点击修改按钮弹出弹窗 2 调用blogType控制层controller的save方法 3 控制层save方法中调用service层的updat
43、e方法 4 调用blogTypeMapper持久层将对应的博客类别信息修改 5 返回成功系修改信息 在博客类别管理页面先选择要修改的数据,点击修改按钮,打开修改博客 类别弹窗,填写修改后博客类别名称和排序,点击保存按钮,提交到控制层的 save方法,传入参数:需要添加的博客类型blogType,调用控制层的方法,在 控制层的save()方法中调用服务层的update()方法,修改博客类别的相关信 息,持久到数据库中。部分代码如下: RequestMapping(“/save“) public String save(BlogType blogType,HttpServletResponse r
44、esponse)throws Exception int resultTotal=0; / 操作的记录条数 if(blogType.getId()=null) resultTotal=blogTypeService.add(blogType); else resultTotal=blogTypeService.update(blogType); JSONObject result=new JSONObject(); if(resultTotal0) result.put(“success“, true); else result.put(“success“, false); ResponseU
45、til.write(response, result); return null; 5.3.3 删除博客类别 图 4-7 删除博客类型时序图 步 骤 系统行为描述 1 博主在博客类别信息管理页面勾选上要删除的博客类别,点击删除按钮 2 调用blogType控制层controller的delete方法 3 控制层delete方法中调用service层的delete方法 4 调用blogTypeMapper持久层将对应的博客类别信息删除 5 返回成功删除信息 在博客类别管理页面先勾选上要删除的数据,点击删除按钮,提交到控制 层的delete方法,传入参数:需要删除的博客类型的id(可以是多个),调
46、用控 制层的方法,在控制层的delete()方法中调用服务层的delete()方法,删除 博客类别的相关信息,持久到数据库中。部分代码如下: /* * 删除博客类别信息 * param ids * param response * return * throws Exception */ RequestMapping(“/delete“) public String delete(RequestParam(value=“ids“)String ids,HttpServletResponse response)throws Exception String idsStr=ids.split(“,“); JSONObject result=new JSONObject(); for(int i=0;i0) result.put(“exist“, “博客类别下有博客,不能删除!“); else blog