案例 用户登录
案例需求: 在网站的首页上,登录的链接,点击登录的链接,可以跳转到登录的页面.在登录的页面中输入用户名和密码点击登录的案例.完成登录的功能.
案例分析:
实现步骤
- 创建数据库表
- 创建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:输入错误的账号或密码