当前位置: 代码迷 >> 综合 >> 用户登录实现(Tomcat、HttpServlet、JDBC、Mysql、Navicat)
  详细解决方案

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

热度:40   发布时间:2024-02-10 19:39:36.0

案例 用户登录

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

案例分析:

实现步骤

 

  • 创建数据库表
  • 创建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 查询结果?个JavaBeanBeanListHandler 查询结果集是多个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:输入错误的账号或密码

 

 

  相关解决方案