Servlet+MySQL使用DBCP数据库连接池实现用户登录
首先准备数据库数据和登录页面
创建user数据表并且插入几条数据
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(50) DEFAULT NULL,`password` varchar(16) DEFAULT NULL,`email` varchar(30) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;INSERT INTO `user` VALUES ('1', 'zhangsan', '123456', '1111@qq.com');
INSERT INTO `user` VALUES ('2', 'lisi', '123321', '2222@qq.com');
INSERT INTO `user` VALUES ('3', 'wangwu', '111222', '3333@qq.com');
登录页面index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body><h1>欢迎登陆</h1><form action="login" method="post">用户名<input type="text" placeholder="请输入用户名" name="user"><br />密码<input type="password" placeholder="请输入密码" name="pwd"> <inputtype="submit" value="登陆"></form>
</body>
</html>
JCDB工具类
注意先导入必要的jar包
DBUtil.java
package com.wangc.utils;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.tomcat.dbcp.dbcp2.BasicDataSource;public class DBUtil {public static final String DRIVERNAME = "com.mysql.jdbc.Driver";public static final String URL = "jdbc:mysql://localhost:3306/javadata";//注意数据库名public static final String USERNAME = "root";//使用自己的用户名和密码public static final String PASSWORD = "****";//使用自己的用户名和密码public static BasicDataSource bSource = null;static{bSource = new BasicDataSource();bSource.setDriverClassName(DRIVERNAME);bSource.setUrl(URL);bSource.setUsername(USERNAME);bSource.setPassword(PASSWORD);}public static Connection getConn(){try {return bSource.getConnection();} catch (SQLException e) {e.printStackTrace();}return null;}public static void release(Connection conn, Statement stat, ResultSet rs){if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (stat != null) {try {stat.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}
}
LoginServlet.java
package com.wangc.control;import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
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 com.wangc.utils.DBUtil;@WebServlet("/login")
public class LoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Connection conn = null;ResultSet rs = null;PreparedStatement ps = null;response.setContentType("text/html");response.setCharacterEncoding("utf-8");try {conn = DBUtil.getConn();String sql = "select * from user where name=? and password=?";ps = conn.prepareStatement(sql);ps.setString(1, request.getParameter("user"));ps.setString(2, request.getParameter("pwd"));rs = ps.executeQuery();if (rs.next()) {response.getWriter().write("登陆成功!");}else {response.getWriter().write("登陆失败!");}} catch (SQLException e) {e.printStackTrace();}finally {DBUtil.release(conn, ps, rs);}}}
测试一下
输入
zhangsan
123456
点击登录
输入
zhangsan
1234
GitHub地址
Servlet+MySQL使用DBCP数据库连接池实现用户登录相关推荐
- 使用 spring 集成 dbcp 数据库连接池到 Wowza 插件
对于 Wowza 扩展插件,很可能需要连接数据库进行一些持久化查询操作,而且也很有可能把各种业务逻辑 bean 进行集中管理起来.本文结合集成 dbcp 数据库连接池到 Wowza 插件的案例,顺带介 ...
- springboot+dbcp数据库连接池
springboot+dbcp数据库连接池 1,连接池配置文件 2,连接工具类 3,测试类测试连接 4,实际调用连接去同步数据 1,连接池配置文件 在resources目录下添加文件dbcp.prop ...
- 【京东账户】——Mysql/PHP/Ajax爬坑之用户登录
[京东账户]--Mysql/PHP/Ajax爬坑之用户登录 一.引言 实现京东的账户项目,功能模块之一,用户登录.要用到的是Apach环境,Mysql.PHP以及Ajax. 二.依据功能创建库.表.记 ...
- jndi mysql数据库_数据库连接池技术中dbcp、c3p0、jndi
数据库连接池技术中dbcp.c3p0.jndi 发布时间:2020-05-26 08:52:33 来源:51CTO 阅读:371 作者:ikilun 不管通过何种持久化技术,都必须通过数据连接访问数据 ...
- Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】
[Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目 录 eclipse重置视图 MySQL数据库--建数据库.建数据库 s ...
- C3P0 与 DBCP 数据库连接池使用和比较
博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此 博主:威威喵 | 博客主页:https://blog.csdn.net/ ...
- oracle 连接池sql跟踪,实现SQLServer、MySQL和oracle数据库连接池
1. org.apache.tomcat.dbcp.dbcp.SQLNestedException:Cannot load JDBC driver class 'com.mysql.jdbc.Driv ...
- Node.js SQL数据库操作 (上)(操作MySQL数据库及 数据库连接池)
文章目录 Node.js MySQL驱动 操作 MySQL 数据库 连接 MySQL 数据库 增删改查操作 防止 SQL 注入攻击 数据库连接池操作 Node.js MySQL驱动 Node.js的原 ...
- mysql事务scalar_数据库连接池、事务
连接池简介 1.连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用. 作用:避免频繁地创建与消毁,给服务器减压力. 2.数据库的弊端: 1.当用户群体少服务器可以支撑,如 ...
最新文章
- 来自于参赛队伍所反映的总决赛落选之后的建议
- Android Thread interrupt 中断JAVA线程(转)
- 恒驰机器人_恒大汽车基地:2545台机器人为恒驰“效力”
- node-sass 下载失败 解决方案
- np读取csv文件_pandas.read_csv函数参数详解
- hibernate与jpa_将JPA Hibernate与OptaPlanner集成
- 你的iOS静态库该减肥了
- android 获取编译日期,flutter学习笔记(2)android编译,以及如何加快首次编译时间。...
- win10快速运行vue项目跑起来 - 方法篇
- 装箱与拆箱 java 1615211150
- vscode生成vue模板快捷键_VSCode 初次写vue项目并一键生成.vue模版
- 智力与联系能力的关系
- 大整数算法[10] Comba乘法(实现)
- oracle undo head,一次悬挂事务的处理思路
- 二阶压控电压源低通滤波器的传递函数
- 创建菜单与游戏界面(下)
- android6.0相机权限申请
- c语言 计时 毫秒,c如何获取精确到毫秒的时间
- 软件测试常用工具有哪些
- 如何回答“你没有经验,我们为什么录用你”
热门文章
- 《研磨设计模式》chap7 抽象工厂 Abstract Factory
- 攻防世界Reverse第六题open-source
- Select多路复用
- 设计模式--享元(Flyweight)模式
- 【攻防世界003】re-for-50-plz-50
- ReadFile 和 补充CreateFile
- 【Apache】 LXC 容器中重启 Apache 报错: Failed to set up mount namespacing: Permission denied
- 2.1 基础-数字翻转
- 寒假每日一题(入门组)【week2 完结】
- 1132 Cut Integer (20 分)【难度: 简单 / 知识点: 模拟】