• JavaWeb实现登录注册功能[代码+详解]


    文章目录


    前言

    本次实现用户登录和注册,了解java框架原理,在以后学习java框架时更快上手。完成前需做一些准备工作。


    一、准备工作

    1.创建建数据库表

    用来存储编号,用户名,密码

    2.实现一个实体类

    package com.ithema.web.pojo;
    
    public class User {
        private int id;
        private String username;
        private String password;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username='" + username + ''' +
                    ", passworld='" + password + ''' +
                    '}';
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    3.把登录、注册静态页面导入**(都以post方式提交表单)**

    登录页代码

    
    
    
        
        
        
        登录页
        
    
    
        

    免费试听 现在体验

    姓名:
    密码:
    点我注册
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75

    注册页代码

    
    
    
        
        
        
        注册页
        
    
    
        

    免费注册

    姓名:
    密码:
    点我登录
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75

    二、sql语句

    登录、注册sql语句代码

    这里sql语句比较短,用的注解的方式编写的sql语句。

    package com.ithema.web.mapper;
    
    import com.ithema.web.pojo.User;
    import org.apache.ibatis.annotations.Param;
    import org.apache.ibatis.annotations.Select;
    
    public interface UserMapper {
        @Select("select * from tb_user where username=#{username} and password=#{password}")
        User select(@Param("username") String username, @Param("password") String password);
    
        @Select("select * from tb_user where username=#{username}")
        User selectByUsername(String username);
    
        @Select("insert into tb_user(username,password) values(#{username},#{password})")
        void add(User user);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    三、核心代码请求、响应

    1.登录页面

    1.首先我们要获取表单输入的值,

    String username = request.getParameter("username");
    String password = request.getParameter("password");
    
    • 1
    • 2

    2.然后把该值用刚写好的sql语句到数据库去查找有没有该用户

    User user = userMapper.select(username, password);
    
    • 1

    3.将查找结果返回一个user对象

    4.判断user对象如果不为null表示有这个数据,可以显示登录成功

    5.否则登陆失败。

     response.setContentType("text/html;charset=utf-8");
            PrintWriter writer = response.getWriter();
    
            //3.判断登录是否成功
            if(user!=null){
                writer.write("登录成功");
            }else{
                writer.write("登陆失败");
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2.注册页面

    1.获取表单输入的值

    String username = request.getParameter("username");
    String password = request.getParameter("password");
    
    • 1
    • 2

    2.new一个user对象

    User user=new User();
    user.setUsername(username);
    user.setPassword(password);
    
    • 1
    • 2
    • 3

    3.通过username查找数据库有没有该值

     User u = userMapper.selectByUsername(username);
    
    • 1

    4.进行判断,如果数据库有该用户,我们就显示注册不成功

    5.否则的话,表示可以进行注册,实现add方法sql语句添加

     response.setContentType("text/html;charset=utf-8");
            PrintWriter writer = response.getWriter();
            //3.判断注册是否成功
            if(u!=null){
                writer.write("已有账号,不能进行注册");
            }else{
                userMapper.add(user);
                writer.write("注册成功");
                sqlSession.commit();
                sqlSession.close();
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    四、实现效果图

    1.登录页面

    登录成功效果

    登录失败效果

    2.注册页面

    注册成功效果

    注册失败效果

    3.数据库表的变化

    以把注册用户信息添加到数据库表中。。


    总结

    这里也是写完了,用到的是Mybatis对数据库的操作,还用到了maven和tomcat等技术。导入jar包之列的这里没显示,自己导一下就可以,都是些基础步骤。

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    Java实验七
    最全2000道Java后端面试题,从基础到进阶
    docker私有仓库registry
    kkFileView getCorsFile 任意文件读取漏洞(CVE-2021-43734)
    lv5 嵌入式开发-1 进程的创建和回收
    服务器如何开启远程连接?
    笔记53:torch.nn.rnn() 函数详解
    Ajax学习:nodejs安装+express框架介绍
    轻量级的开源代理服务器Tinyproxy安装与配置
    js中 slice 用法用法全解析
  • 原文地址:https://blog.csdn.net/jiey0407/article/details/126105700