JavaEE-博客系统3(功能设计)

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

本部分内容为:实现登录功能;强制要求用户登录;实现显示用户信息;退出登录;发布博客




JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器

JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器

JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器
该部分的后端代码如下:

   @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //1.从请求中获取用户名和密码
        //    给请求对象设置字符集, 保证说请求中的 username 或者 password 是中文, 也能正确处理.
        req.setCharacterEncoding("utf8");
        String username=req.getParameter("username");
        String password=req.getParameter("password");
        if(username==null || password==null || "".equals(username) || "".equals(password)){
            //这是用户名和密码有误
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("username or password is empty");
            return;
        }
        //2.从数据库的数据进行验证,看用户名和密码是否匹配
        //通过用户名查询信息
        UserDao userDao=new UserDao();
        User user=userDao.getUserByName(username);
        if(user==null){
            //当前提交的用户名密码错误
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("username or password is wrong");
            return;
        }
        if(!password.equals(user.getPassword())){
            //当前提交的用户名密码错误
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("username or password is wrong");
            return;
        }
        //3创建会话
        HttpSession session= req.getSession(true);
        // 把当前登录的用户信息保存到 session 中, 方便后续进行获取.
        session.setAttribute("user",user);
        //4跳转到博客列表页
        resp.sendRedirect("blog_list.html");

JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器

JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器




JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器
该部分的后端代码如下:

@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //根据上面,我们建立了会话为依据
        HttpSession session= req.getSession(false);
        if(session==null){
            //未登录,返回前端
            resp.setStatus(403);
            return;
        }
        //不仅仅要看session是否存在,还要看上述中存储的用户信息是否存在
        User user= (User) session.getAttribute("user");
        if(user==null){
            //未登录,返回前端
            resp.setStatus(403);
            return;
        }
        //表示已经登陆
        resp.setStatus(200);
    }



JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器

JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器
该部分的后端代码如下:

private ObjectMapper objectMapper=new ObjectMapper();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //通过判断请求是否带有blogId这个参数,来判断是列表页发来的请求还是详情页发来的请求
        String blogId=req.getParameter("blogId");
        if(blogId==null){
            //表明是列表页
            //列表页可以从保存下来的session中拿到用户信息
            HttpSession session=req.getSession(false);
            //拿到的这个session可能为空
            if(session==null){
                //session为空,那么用户信息也必然为空,这里需要创建一个卡用户出来
                User user=new User();
                //Jackson ObjectMapper类(com.fasterxml.jackson.databind.ObjectMapper)解析JSON工具
                //
                //序列化:      Java对象生成Json
                //
                //反序列化:  Json解析为Java对象
                String respJson=objectMapper.writeValueAsString(user);
                resp.setContentType("application/json;charset=utf8");
                resp.getWriter().write(respJson);
                return;
            }
            User user= (User) session.getAttribute("user");
            if(user==null){
                user=new User();
                String respJson=objectMapper.writeValueAsString(user);
                resp.setContentType("application/json;charset=utf8");
                resp.getWriter().write(respJson);
                return;
            }
            String respJson=objectMapper.writeValueAsString(user);
            resp.setContentType("applicaion/json;charset=utf8");
            resp.getWriter().write(respJson);
        }else{
            //表明是详情页
            //需要查询数据库,通过blogId关联找到blog,再通过getuserid找到userid,通过userid找到user
            BlogDao blogDao=new BlogDao();
            Blog blog=blogDao.getBlog(Integer.parseInt(blogId));
            if(blog==null){
                User user=new User();
                String respJson=objectMapper.writeValueAsString(user);
                resp.setContentType("application/json;charset=utf8");
                resp.getWriter().write(respJson);
                return;
            }
            UserDao userDao=new UserDao();
            User user=userDao.getUserById(blog.getBlogId());
            if(user==null){
                user=new User();
                String respJson=objectMapper.writeValueAsString(user);
                resp.setContentType("application/json;charset=utf8");
                resp.getWriter().write(respJson);
                return;
            }
            String respJson=objectMapper.writeValueAsString(user);
            resp.setContentType("application/json;charset=utf8");
            resp.getWriter().write(respJson);
        }
    }

JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器




JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器上述过程的后端代码如下:

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       HttpSession session=req.getSession(false);
       if(session==null){
           //当前状态未登录,不做处理,跳转到登录
           resp.sendRedirect("login.html");
           return;
       }
       //在登录成功之后,session中会有user这个属性,
        // 把他删除之后,状态就成了为登录
        session.removeAttribute("user");
       resp.sendRedirect("login.html");

JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器




JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器
JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器
上述过程的后端代码如下:

//1.获取登录的用户
        //虽然编写内容的时候,一定会有用户登录,但是为了防止其它情况,我们还是要做检查
        HttpSession session=req.getSession(false);
        if(session==null){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("user don`t register,please register");
            return;
        }
        User user= (User) session.getAttribute("user");
        if(user==null){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("user don`t register,please register");
            return;
        }
        //2.从请求中获取用户传递过来的信息
        req.setCharacterEncoding("utf8");
        String title=req.getParameter("title");
        String content=req.getParameter("content");
        if(title==null || content==null || "".equals(title) || "".equals(content)){
            resp.setContentType("text/html;charset=utf8");
            resp.getWriter().write("title or content is empty");
            return;
        }
        //3.构造对象,将其插入倒数据库中
        Blog blog=new Blog();
        blog.setTitle(title);
        blog.setContent(content);
        blog.setUserId(user.getUserId());
        //此处的时间是sql通过自带的now获取,不需要手动获取
        BlogDao blogDao=new BlogDao();
        blogDao.insert(blog);
        //4.跳转到列表页
        resp.sendRedirect("blog_list.html");

JavaEE-博客系统3(功能设计),Java-EE,java-ee,windows,服务器文章来源地址https://www.toymoban.com/news/detail-743803.html




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

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

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

相关文章

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

    在原来的编辑页面点击发布文章按钮,是不会有什么效果的。 这是因为此时还不能实现前后端的交互。 请求使用 POST ,路径是 /blog title=这是标题content=这是正文 请求中要有 body,按照 form 表单的方式添加进去。 响应使用 HTTP/1.1 302 跳转到列表页:Location: blog.list.html 在一篇博

    2024年02月07日
    浏览(45)
  • 博客系统后端设计(五) - 实现登录页面功能

    这里约定 请求 是一个 POST 请求,路径是 /login ,使用的是以下的格式: usernam=zhangsanpassword=123 响应是 HTTP/1.1 302 ,因为在成功登录之后,会直接跳转到列表页, 因此此时的 Location 是 blog.list.html 。 此时的响应要求是 302,因此要使用 form 表单才可以进行页面的跳转; 如果是

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

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

    2024年02月14日
    浏览(40)
  • 【JavaEE】前后端综合项目-博客系统(下)

    【JavaEE】前后端综合项目-博客系统(下) 紧接上文:【JavaEE】前后端综合项目-博客系统(上)_s:103的博客-CSDN博客 1.1 用户名密码校验 1.1.1 约定前后端交互接口 请求:POST 向谁请求:/login 响应:302(重定向)location:博客列表页 请求的正文格式:application/x-www-from-urlencoded q

    2024年02月16日
    浏览(33)
  • 【JavaEE】前后端综合项目-博客系统(上)

    【JavaEE】前后端综合项目-博客系统(上) 前端综合项目-个人博客网页设计_s:103的博客-CSDN博客 在之前的前端综合项目里,我们已经有了博客系统的前端部分 接下来我们将以所学的后端知识去搞定前端后端交互! 实现一个真正的网站! 在src的main里创建目录结构:webapp/WEB-

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

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

    2024年02月04日
    浏览(43)
  • JavaEE-博客系统1(数据库和后端的交互)

    本部分内容包括网站设计总述,数据库和后端的交互; 数据库操作代码如下: DBUtil.java blog.java user.java blogDao.java userDao.java

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

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

    2024年02月09日
    浏览(41)
  • 毕业设计So Easy:Java Vue SpringCloud实现博客系统

    目录 1、项目功能 2、项目架构设计 3、项目数据库设计 4、项目架构实现 4.1、Vue架构的实现 4.2、SpringCloud架构的实现 4.3、博客的高可用的实现 5、用户的个人中心 5.1、登录的智能验证 5.2、博客的登录注册 5.3、登录的权限验证 6、用户的安全中心 6.1、用户的安全布局 6.2、用户

    2024年02月11日
    浏览(44)
  • 基于Java(SpringBoot框架)毕业设计作品成品(40)网络网上个人博客系统设计与实现

    博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(63)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包