用户登录实现(Tomcat、HttpServlet、JDBC、Mysql、Navicat)

目录

案例 用户登录

案例需求: 在网站的首页上,登录的链接,点击登录的链接,可以跳转到登录的页面.在登录的页面中输入用户名和密码点击登录的案例.完成登录的功能.

案例分析:

实现步骤

先来看一下写完的项目结构

解释下划线的意义:

代码实现

测试1:输入正确账号密码

测试2:输入错误的账号或密码


案例 用户登录

案例需求: 在网站的首页上,登录的链接,点击登录的链接,可以跳转到登录的页面.在登录的页面中输入用户名和密码点击登录的案例.完成登录的功能.

案例分析:

实现步骤

 

  • 创建数据库表
  • 创建WEB项⽬
    • 添加必要的jar,配置⽂件,⼯具类,JavaBean(User类)
    • 创建⾃⼰的包
  • 编写⻚⾯
  • 编写服务器Servlet

先来看一下写完的项目结构

解释下划线的意义:

  • DruidUtils为工具类,DBUtils就是JDBC的简化开发⼯具包。需要项⽬导⼊commons-dbutils-1.6.jar 才能够正常使⽤DBUtils⼯具。不懂可以看看这篇文章:https://blog.csdn.net/weixin_40959890/article/details/107747573
  • druid.properties是上面DruidUtils需要的配置文件
  • User类是与书库相匹配的用户类,用于接收查询结果
  • UserServlet主要功能在于交互式地浏览和生成数据或动态Web内容(此处是接收用户输入的用户名和密码,然后将用户名与数据库对比并返回结果),不懂可以看看这篇文章:https://blog.csdn.net/weixin_40959890/article/details/107833714
  • lib为工具类包,DRUID连接池使⽤的jar包: druid-1.1.16.jar  数据库MySQL链接jar包:mysql-connector-java-8.0.15.jar,因为的的MySQl安装的是8版本,所以用这个,如果安装的MySQL 是5版本,需要用mysql-connector-java-5.1.37-bin.jar,而且对性的配置文件中有些许不同,在面会讲。链接:https://pan.baidu.com/s/1nf5cpEJMUvDzXuNzkx-Evw 提取码:19e8
  • Login.html文件是网页前端显示文件,用户输交互界面

代码实现

数据库SQL语句,在数据库中存入一些用户名和对应的密码,后面查询用

CREATE TABLE `user`(
    username VARCHAR(50),
    `password` VARCHAR(50)
);
INSERT INTO `user` VALUES('tom','123'),('jerry','456');
# 通过⽤户名,密码查询 user表
SELECT * FROM `user` WHERE username='tom' AND `password`='123'
/*
 dbutils 使⽤哪个结果集
 BeanHandler 查询结果⼀个JavaBean
 BeanListHandler 查询结果集是多个JavaBean,存储List集合
 ScalarHandler 单项值查询
 ColumnListHandler 查询⼀个列数据存储集合List<Object>
*/

html页面代码,head里面的title部分是标题设置,在body里面写入输入用户名和密码的表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
    <!--登录表单-->
    <form action="/user" method="post">
        ⽤户名:<input type="text" name="username" /> <br/>
        密 码:<input type="text" name="password" /> <br/>
        <input type="submit" />
    </form>

</body>
</html>

User类:

package pojo;

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

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public User() {
    }

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

连接池工具类DruidUtils

package Utils;

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 DruidUtils {
    /*
    1. 加载 druid.properties 配置文件
    2. 创建 Druid 连接池对象
    3. 提供 获得 连接池对象的方法
    4. 提供 从连接池中 获取连接对象Connection的 方法
    */
    public static DataSource dataSource = null;

    static{
        try {
            //1. 加载 druid.properties 配置文件
            InputStream inputStream = DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties");
            // 把流中的数据 保存到 Properties集合中
            Properties prop = new Properties();
            prop.load(inputStream);
            //创建连接池对象
            dataSource = DruidDataSourceFactory.createDataSource(prop);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取数据源对象  DataSource
     */
    public static DataSource getDataSource(){
        return dataSource;
    }

    /**
     * 获取数据源中的连接对象
     */
    public static Connection getConection() throws SQLException {
        return dataSource.getConnection();
    }

}

配置文件druid.properties:https://blog.csdn.net/weixin_40959890/article/details/107747573 

https://blog.csdn.net/weixin_40959890/article/details/107761226

  • MySQL8.0版本的话driverClassName=com.mysql.cj.jdbc.Driver 
  • MySQL5.0版本的话driverClassName=com.mysql.jdbc.Driver 
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test_wensong?useUnicode=true&characterEncoding=UTF-8&useSSL=false&use&serverTimezone=Asia/Shanghai
username=root
password=root

测试1:输入正确账号密码

测试2:输入错误的账号或密码

 

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值