简单注册及登录逻辑的实现

我把整个过程大体分成了这几个部分完成,实现过程不算复杂:

1.创建数据库 java04,数据表user:
		CREATE DATABASE java04 CHARSET=utf8;
		USE java04;
		CREATE TABLE USER(
			id INT PRIMARY KEY AUTO_INCREMENT,
			NAME VARCHAR(32) NOT NULL,
			age INT NOT NULL,
			gender BOOL DEFAULT TRUE NOT NULL,
			username VARCHAR(32) UNIQUE NOT NULL,
			PASSWORD VARCHAR(32) NOT NULL,
			tel VARCHAR(15) UNIQUE NOT NULL
		)
		ALTER TABLE USER ADD loginDay TIMESTAMP;
		SELECT * FROM USER;

2.根据数据库字段信息创建对应的实体类:

		(数据库里的TIMESTAMP 映射到java里面用什么类型来接收?---->
		https://www.cnblogs.com/heganlin/p/6074485.html)

3.编写工具类,来完成对数据库的操作:

4.编写Userdao,Userdao中的login来对传入的User进行用户名密码的提取,然后查询User所有信息进行返回

5.编写LoginServlet对其供求进行处理,获取到用户名和密码,然后封装成user对象,传入Userdao中处理,返回的结果进行判断是否为null,
	否则跳转到登陆成功界面并展示登陆成功的信息!!!

6.编写Userdao中的register函数进行注册逻辑处理

7.编写registerServlet进行数据的收集,封装成user对象,传入Userdao的register函数中进行处理,对返回值进行判断处理

逻辑代码的结构目录:在这里插入图片描述
各个部分的代码如下:

userDao.java

package com.caiden.Dao;

import com.caiden.Tools.ToolClass;
import com.caiden.User.UserClass;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

public class UserDao {

    //创建Spring Template
    static JdbcTemplate template = new JdbcTemplate(ToolClass.getDatasource());

    public static UserClass login(UserClass user) {
        try {
            //查询用户数据并返回
            String username = user.getUsername();
            String password = user.getPassword();
            //进行查询
            String sql = "select * from user where username=? and password=?";
            UserClass userClass = template.queryForObject(sql,
                    new BeanPropertyRowMapper<UserClass>(UserClass.class),
                    username, password);
            return userClass;
        } catch (Exception e) {
            return null;
        }
    }

    public static int register(UserClass user) {

        /**
         * INSERT INTO USER VALUES(
         * 	DEFAULT,'李斯',16,FALSE,'lisi','123','156986659865',DEFAULT
         * )
         */
        try {
            String sql = "insert into user values(DEFAULT,?,?,?,?,?,?,DEFAULT)";
            int update = template.update(sql,
                    user.getName(),
                    user.getAge(),
                    user.isGender(),
                    user.getUsername(),
                    user.getPassword(),
                    user.getTel());
            return update;
        } catch (Exception e) {
            return 0;
        }
    }
}

FaileServlet.java

package com.caiden.Servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/faileServlet")
public class FaileServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        response.getWriter().write("<h1>用户名或密码错误,登陆失败<h1>");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

LoginServlet.java

package com.caiden.Servlet;

import com.caiden.Dao.UserDao;
import com.caiden.User.UserClass;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        UserClass userClass = new UserClass();
        userClass.setUsername(username);
        userClass.setPassword(password);
        UserClass login = UserDao.login(userClass);
        if (login == null) {
            request.getRequestDispatcher("/faileServlet").forward(request, response);
        } else {
            request.setAttribute("user", login);
            request.getRequestDispatcher("/successServlet").forward(request, response);
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

RegisterServlet.java

package com.caiden.Servlet;

import com.caiden.Dao.UserDao;
import com.caiden.User.UserClass;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/registerServlet")
public class RegisterServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String tel = request.getParameter("tel");
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        String gender = request.getParameter("gender");
        UserClass user = new UserClass();
        System.out.println("username:" + username);
        System.out.println("password:" + password);
        System.out.println("tel:" + tel);
        System.out.println("name:" + name);
        System.out.println("age:" + age);
        System.out.println("gender:" + gender);
        //设置
        user.setTel(tel);
        user.setName(name);
        user.setUsername(username);
        user.setPassword(password);
        user.setAge(Integer.valueOf(age));
        user.setGender(Boolean.getBoolean(gender));
        System.out.println(user);
        //处理
        int register = UserDao.register(user);
        if (register == 1) {
            request.getRequestDispatcher("/login.html").forward(request, response);
        }else {
            response.setContentType("text/html;charset=utf-8");
            response.getWriter().write("<h1>注册失败,用户名已被注册或者信息填写错误</h1>");
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

SuccessServlet.java

package com.caiden.Servlet;

import com.caiden.User.UserClass;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/successServlet")
public class SuccessServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        UserClass user = (UserClass) request.getAttribute("user");
        response.getWriter().write("<h1>欢迎: "
                + user.getName() + " 的到来<br>你的号码是: " + user.getTel()
                + "<br>您的注册时间为: " + user.getLoginDay() + "<h1>");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

TestClass.java

package com.caiden.Test;

import com.caiden.Dao.UserDao;
import com.caiden.User.UserClass;
import org.junit.Test;

public class TestClass {

    @Test
    public void Dao() {
        UserClass userClass = new UserClass();
        userClass.setUsername("guanyu");
        userClass.setPassword("123");

        UserClass login = UserDao.login(userClass);
        System.out.println(login);
    }

    @Test
    public void register() {
        UserClass user = new UserClass();
        user.setPassword("123");
        user.setUsername("456");
        user.setAge(15);
        user.setGender(false);
        user.setName("皮卡丘");
        user.setTel("153258963");

        int register = UserDao.register(user);
        System.out.println(register);
    }

    @Test
    public void age() {
        String gender = null;
        boolean aBoolean = Boolean.getBoolean(gender);
        System.out.println(aBoolean);
    }
}

ToolClass.java

package com.caiden.Tools;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

public class ToolClass {
    static DataSource dataSource = null;
    static Connection conn = null;

    static {
        //加载配置文件,获取DataSource
        InputStream resourceAsStream = ToolClass.class.getClassLoader().getResourceAsStream("druid.properties");
        Properties properties = new Properties();
        try {
            properties.load(resourceAsStream);
            dataSource = DruidDataSourceFactory.createDataSource(properties);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //获取dataSource对象
    public static DataSource getDatasource() {
        return dataSource;
    }

    public static Connection getConnection() {
        try {
            conn = dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return conn;
    }
}

UserClass.java

package com.caiden.User;

import java.sql.Timestamp;

public class UserClass {
    private int id;
    private String name;
    private int age;
    private boolean gender;
    private String username;
    private String password;
    private String tel;
    private Timestamp loginDay;

    @Override
    public String toString() {
        return "UserClass{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", gender=" + gender +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", tel='" + tel + '\'' +
                ", loginDay=" + loginDay +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public boolean isGender() {
        return gender;
    }

    public void setGender(boolean gender) {
        this.gender = gender;
    }

    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;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public Timestamp getLoginDay() {
        return loginDay;
    }

    public void setLoginDay(Timestamp loginDay) {
        this.loginDay = loginDay;
    }
}

代码简化部分1:在这里插入图片描述
代码简化部分2:在这里插入图片描述

发布了36 篇原创文章 · 获赞 75 · 访问量 5431

猜你喜欢

转载自blog.csdn.net/weixin_44449518/article/details/104008860