Servlet+MySQL使用DBCP數(shù)據(jù)庫連接池實現(xiàn)用戶登錄

首先準備數(shù)據(jù)庫數(shù)據(jù)和登錄頁面
創(chuàng)建user數(shù)據(jù)表并且插入幾條數(shù)據(jù)

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"> <input
            type="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";//注意數(shù)據(jù)庫名
    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
點擊登錄

image.png

輸入
zhangsan
1234

GitHub地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捉超,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌唯绍,老刑警劉巖拼岳,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異况芒,居然都是意外死亡惜纸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門绝骚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耐版,“玉大人,你說我怎么就攤上這事压汪》嗌” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵止剖,是天一觀的道長腺阳。 經(jīng)常有香客問我,道長穿香,這世上最難降的妖魔是什么亭引? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮皮获,結(jié)果婚禮上焙蚓,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好购公,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布赵哲。 她就那樣靜靜地躺著,像睡著了一般君丁。 火紅的嫁衣襯著肌膚如雪枫夺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天绘闷,我揣著相機與錄音橡庞,去河邊找鬼。 笑死印蔗,一個胖子當著我的面吹牛扒最,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播华嘹,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼吧趣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了耙厚?” 一聲冷哼從身側(cè)響起强挫,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎薛躬,沒想到半個月后俯渤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡型宝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年八匠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趴酣。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡梨树,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岖寞,到底是詐尸還是另有隱情抡四,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布慎璧,位于F島的核電站床嫌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胸私。R本人自食惡果不足惜厌处,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岁疼。 院中可真熱鬧阔涉,春花似錦缆娃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至椭住,卻和暖如春崇渗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背京郑。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工宅广, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人些举。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓跟狱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親户魏。 傳聞我的和親對象是個殘疾皇子驶臊,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348