1. 程式人生 > >Servlet用戶登錄功能實現

Servlet用戶登錄功能實現

ride 數據庫 return class exceptio char drive domain c3p0

需求:完成用戶登錄頁面校驗

第一步:創建一個用戶登錄的html頁面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form action="/WEB13/login" method="post">
        用戶名:<input type="text" name="username" /><br/>
        密碼:
<input type="password" name="password" /><br/> <input type="submit" value="登錄"/><br/> </form> </body> </html>

第二步:導入所需要的jar包

技術分享圖片導入jar之後記得add to bulid path.

第三步:創建c3p0連接池的配置文件,文件名為c3p0-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql:///web13</property> <property name="user">root</property> <property name="password">root</property> <
property name="initialPoolSize">5</property> <property name="maxPoolSize">20</property> </default-config> <named-config name="myconfig"> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql:///web13</property> <property name="user">root</property> <property name="password">root</property> </named-config> </c3p0-config>

技術分享圖片文件放到src目錄下

第四步:創建c3p0工具類

package p1.utils;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Utils {
    private static ComboPooledDataSource dataSource = new ComboPooledDataSource();

    public static DataSource getDataSource() {
        return dataSource;
    }

    public static Connection getConnection() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

第五步:創建User類

package p3.domain;

public class User {
    private int uid;
    private String username;
    private String upassword;
    private String email;
    public User(){}
    public int getUid() {
        return uid;
    }
    public void setUid(int uid) {
        this.uid = uid;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getUpassword() {
        return upassword;
    }
    public void setUpassword(String upassword) {
        this.upassword = upassword;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    @Override
    public String toString() {
        return "User [uid=" + uid + ", username=" + username + ", upassword=" + upassword + ", email=" + email + "]";
    }
    
}

第六步:編寫LoginServlet類

package p2.login_servlet;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;

import p1.utils.C3P0Utils;
import p3.domain.User;

public class LoginServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1 獲取用戶名和密碼
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        // 2查詢數據庫中是否有相應的用戶名和密碼
        QueryRunner qr = new QueryRunner(C3P0Utils.getDataSource());
        String sql = "select * from user where username=? and upassword=?";
        Object[] params = {username,password};
        User user = null;
        try {
            user = qr.query(sql, new BeanHandler<User>(User.class), params);
        } catch (SQLException e) {
            
            e.printStackTrace();
        }
        // 3 根據返回結果給用戶不同的顯示信息
        if(user!=null){
            response.getWriter().write(user.toString());
            response.getWriter().write(user.getUsername()+":登錄成功");
        }else{
            response.getWriter().write("sorry the username or password is wrong");
        }
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

第七部:發布的時候如果出現找不到網頁404的情況,有時候重新啟動tomcat就可以了。

Servlet用戶登錄功能實現