Servlet,数据库实现登录页面跳转

该博客展示了如何使用Java JDBC连接MySQL数据库实现用户登录功能。包括数据库连接、实体类创建、事务接口及其实现、登录业务接口及其实现以及Servlet处理登录请求。整个流程涵盖了从接收用户输入到查询数据库验证用户名和密码,最后根据结果展示登录成功或失败的页面。

一、连接数据库

public class JdbcUtils {
    static final String drive = "com.mysql.jdbc.Driver";
    static final String url = "jdbc:mysql://localhost:3306/zyj?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
    static final String username = "root";
    static final String password = "root";
    static Connection connection = null;
    private String sql;

    //连接数据库
    public static Connection getConnection() {
        try {
            Class.forName(drive);
            connection = DriverManager.getConnection(url, username, password);
            System.out.println("数据库连接成功!");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("数据库连接失败!");
        }
        return connection;
    }

    //关闭数据库连接
    public void closeCon() {
        if (connection != null) {
            try {
                connection.close();
                System.out.println("数据库连接已经关闭!");
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    //数据库查询方法
    public void select() {
        sql = "SELECT * FROM tb_users";
        Statement stmt = null;
        try {
            stmt = connection.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                System.out.println(rs.getString(1) + rs.getString(2) + rs.getString(3));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //事务的提交
    public static void commit(){
        Connection connection = null;
        connection=getConnection();
        try {
            connection.commit();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

二、创建用户实体类

public class Users {
    private String username;
    private String password;

    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 "Users{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

三、创建事务接口

public interface UserSDao {
    public Users select(String username);
}

四、创建事务的实现类

public class UsersDaoImp implements UserSDao{
    QueryRunner queryRunner = new QueryRunner();
    @Override
    public Users select(String username) {
        Users n= null;
        try {
            n = queryRunner.query(JdbcUtils.getConnection(),"select * from tb_users where username=?;",new BeanHandler<Users>(Users.class),username);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return n;
    }
}

五、创建页面登录业务功能

public interface UsersService {
    public Users login(String username,String password);
}

六、创建登录业务实现类

public class UsersServiceImpl implements UsersService {
    private UserSDao usersdao = new UsersDaoImp();
    @Override
    public Users login(String username, String password) {
        Users result = null;
        try {
            JdbcUtils.getConnection();
            Users user = usersdao.select(username);
            if (user != null){
                if(user.getPassword().equals(password)){
                    result = user;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }
}

七、创建LoginServlet

@WebServlet(value = "/index")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                //1.收参
        String username = request.getParameter("username");
        String password = request.getParameter("password");
                //2.调用业务逻辑
        UsersService usersservice = new UsersServiceImpl();
        Users user = usersservice.login(username,password);
                //3.处理结果
        PrintWriter out = response.getWriter();
        if (user!=null){
            out.println("<html>");
            out.println("<head>");
            out.println("<meta charset='UTF-8'>");
            out.println("<title>结果页面</title>");
            out.println("<body>");
            out.println("<h1>success</h1>");
            out.println("</body>");
            out.println("</head>");
            out.println("</html>");
        }else {
            out.println("<html>");
            out.println("<head>");
            out.println("<meta charset='UTF-8'>");
            out.println("<title>结果页面</title>");
            out.println("<body>");
            out.println("<h1>failed</h1>");
            out.println("</body>");
            out.println("</head>");
            out.println("</html>");
        }
    }
}

八、创建登录页面

<%--
  Created by IntelliJ IDEA.
  User: Admin
  Date: 2020/10/28
  Time: 16:39
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>myWeb</title>
  </head>
  <body>
    <form action="/testMyweb/index" method="post">

        账号:<input type="text" style="width: 100px ; height: 35px" name="username">


        密码:<input type="password" style="width: 100px ; height: 35px" name="password">


        <input type="submit" value="提交">

    </form>
  </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值