博客系统的后端设计(八) - 实现发布博客功能

这篇具有很好参考价值的文章主要介绍了博客系统的后端设计(八) - 实现发布博客功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

发布博客


在原来的编辑页面点击发布文章按钮,是不会有什么效果的。
这是因为此时还不能实现前后端的交互。

博客系统的后端设计(八) - 实现发布博客功能

1. 约定前后端交互接口

请求使用 POST,路径是 /blog
title=这是标题&content=这是正文

请求中要有 body,按照 form 表单的方式添加进去。

响应使用 HTTP/1.1 302
跳转到列表页:Location: blog.list.html

在一篇博客当中,它有 blogId、title、content、userId、postTime 属性。
只有 title 和 content 是需要自己获取的,blogId 是自增主键,数据库会自己生成;
userId 是作者信息,看提交博客的用户是谁,直接从会话中拿即可;
postTime 是当前的时间。

2. 服务器代码


在之前实现好的 BlogServlet 类中重写一个 doPost 方法。

 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     // 发布博客
     // 读取请求,构造 Blog 对象,插入数据库即可
     HttpSession httpSession = req.getSession(false);
     if (httpSession == null) {
         // 未登录
         resp.setContentType("text/html; charset=utf8");
         resp.getWriter().write("当前未登录,无法发布博客!!!");
         return;
     }
     User user = (User) httpSession.getAttribute("user");
     if (user == null) {
         resp.setContentType("text/html; charset=utf8");
         resp.getWriter().write("当前未登录,无法发布博客!!!");
         return;
     }
     // 确定登陆之后,就可以把作者给拿到了

     // 获取博客标题和正文
     String title = req.getParameter("title");
     String content = req.getParameter("content");
     if (title == null || "".equals(title) || content == null || "".equals(content)) {
         resp.setContentType("text/html; charset=utf8");
         resp.getWriter().write("当前提交的数据有误,标题或正文为空!!!");
         return;
     }

     // 构造 Blog 对象
     Blog blog = new Blog();
     blog.setTitle(title);
     blog.setContent(content);
     blog.setUserId(user.getUserId());
     // 发布时间在 java 中生成/数据库都可以
     blog.setPostTime(new Timestamp(System.currentTimeMillis()));
     // 插入数据库
     BlogDao blogDao = new BlogDao();
     blogDao.add(blog);

     // 跳转到博客列表页
     resp.sendRedirect("blog.list.html");
 }

3. 客户端代码


将之前的写的编辑区容器代码改为以下代码。

<!-- 编辑区容器 -->
<div class="blog-edit-container">
    <form action="blog" method="post">
        <!-- 博客标题编辑区 -->
        <div class="title">
            <input type="text" id="title" placeholder="请输入文章标题" name="title">
            <input type="submit" id="submit" value="发布文章">
        </div>

        <!-- 博客编辑器 是为了和 markdrow 编辑器对接而设置的-->
        <div id="editor">
            <textarea name="content" style="display: none"></textarea>
        </div>
    </form>
</div>

4. 出现的问题


接下来启动服务器,在用户登录后发布一个博客。此时可以看到虽然自动跳转到了列表页,但是出现乱码了。

博客系统的后端设计(八) - 实现发布博客功能

发布博客后发现乱码了,此时考虑乱码是提交的时候乱的,还是获取的时候乱的。

如果是提交的时候乱的,只需要看一下数据库是不是乱的;此处应该是提交的的时候乱的,
因为提交功能是新写的,还没有测试过,获取博客已经测试过了。

博客系统的后端设计(八) - 实现发布博客功能
查看数据库后可以看到此时的数据库是乱的。


解决:

先将乱码的记录删除,之后在指定字符集。

博客系统的后端设计(八) - 实现发布博客功能

博客系统的后端设计(八) - 实现发布博客功能

此时文章发布成功。文章来源地址https://www.toymoban.com/news/detail-467185.html

到了这里,关于博客系统的后端设计(八) - 实现发布博客功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你实现一个JavaWeb项目:创建一个自己的网页博客系统(前端+后端)(一)

    一篇博客带你实现一个真正的项目!  先来看看它是什么样式的: 目录: 1、大体步骤🦖:         1、创建Maven项目🦕         2、引入依赖🦕         3、创建必要的目录🦕         4、编写代码🦕         5、打包部署(基于SmartTomcat)🦕         

    2024年02月06日
    浏览(10)
  • 园子的现代化建设-博客版本控制:发布博客设置历史版本功能

    虽然园子当前面临着商业化的巨大困难与挑战,但园子的现代化建设也在尽自己所能地向前推进。 今天晚上我们发布了博客后台的一个小功能——博客设置历史版本,当您在博客后台设置页面修改了某个设置(比如公告)并保存时,会生成一个历史版本,您可以查看并还原这

    2023年04月11日
    浏览(12)
  • Spring第三课,Lombok工具包下载,对应图书管理系统列表和登录界面的后端代码,分层思想

    目录 一、Lombok工具包下载 二、前后端互联的图书管理系统 规范  三、分层思想 三层架构: 1.表现层 2.业务逻辑层 3.数据层 这个工具包是为了做什么呢? 他是为了不去反复的设置setting and getting 而去产生的工具包 ⚠️工具包下载:推荐不要下载太新的(较高的),也不要太

    2024年02月05日
    浏览(14)
  • 【项目实战】博客系统设计与实现

    1.项目需求 前端:展示文章,文章分类,评论,用户登录。 后端 :系统管理:用户管理,菜单管理,角色管理。内容管理:文章管理,分类管理,标签管理  2.总述  此项目为Springboot项目,前后端分离,典型的单体架构,主要功能是对文章,分类评论 等业务进行管理,同时

    2024年02月07日
    浏览(12)
  • 个人博客系统|基于Springboot的个人博客系统设计与实现(源码+数据库+文档)

    个人博客系统目录 目录 基于Springboot的个人博客系统设计与实现 一、前言 二、系统功能设计  三、系统实现 1、管理员功能实现 (1)用户管理 (2)文章分类管理 (3)公告信息管理 (4)博主信息管理 2、博主功能实现 (1)博主文章管理 3、用户功能实现 (1)博主文章信

    2024年04月13日
    浏览(14)
  • 博客系统后端(项目系列2)

    目录 前言 : 1.准备工作 1.1创建项目 1.2引入依赖 1.3创建必要的目录 2.数据库设计 2.1博客数据 2.2用户数据 3.封装数据库 3.1封装数据库的连接操作 3.2创建两个表对应的实体类 3.3封装一些必要的增删改查操作 4.前后端交互逻辑的实现 4.1博客列表页 4.1.1约定前后端交互接口 4.1

    2024年02月10日
    浏览(7)
  • 【JavaEE初阶】博客系统后端

    创建blog_system项目.将之前写的博客系统前端代码复制到webapp目录下. 在 pom.xml 中引入 Servlet mysql jackson 三个依赖: pom.xml : 结合之前的需求,在当前博客系统中,主要涉及到两个实体.即 用户 和 博客 . 经过分析我们可以得到, 用户 和 博客 之间是一对多的关系.即一个用户可以拥有多

    2024年02月14日
    浏览(10)
  • 基于java的个人博客系统设计与实现

    基于java的个人博客系统设计与实现 研究背景: 在互联网和信息技术快速发展的时代,人们对于信息交流和知识分享的需求越来越大。个人博客作为一种自由、开放、个性化的信息发布平台,受到了广泛的关注和青睐。个人博客系统的设计和实现也成为了计算机领域中的一个

    2024年02月04日
    浏览(16)
  • 个人博客系统(SSM版 前端+后端)

             在学习Servlet的时候,也写了一个博客系统,主要的就是使用servelet加Tomcat进行实现的,而这个项目 仅仅适合去学习Web项目开发的思想,并不满足当下企业使用框架的思想,进行学习过Spring,Spring Boot,Spring MVC以及MyBatis之后,我们就可以对之前的项目使用SSM框架的形式进行升

    2024年02月16日
    浏览(12)
  • 53基于java的资源博客论坛系统设计与实现

    ​ 本章节给大家带来一个基于java的资源博客论坛系统设计与实现,可适用于java个人博客系统,个人资源博客管理系统,java博客系统,java论坛系统,类似于交友微博,新浪微博,发表动态,笔记博客,个人笔记系统。 在这个网络充斥生活的时代,我们每天的生活都被网络包围

    2024年02月09日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包