怎么在web中做登錄界面


1.先建一個項目

2.把SQL架包導進去

3.創建連接數據庫的語句

package DBHelper;

import java.io.Console;
import java.sql.*;
import java.util.Enumeration;
//import java.util.logging.*;
//import javax.swing.table.*;

/**
 *  SQL 基本操作
 * 通過它,可以很輕松的使用 JDBC 來操縱數據庫
 * @author Null
 */
public class DBHelper
{

    /**
     * 驅動
     */
    //public static String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    public static String driver = "com.mysql.jdbc.Driver";
    /**
     * 連接字符串
     */
    //public static String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=st";
    public static String url = "jdbc:mysql://127.0.0.1:3306/test";
    /**
     * 用戶名
     */
    public static String user = "root";
    /**
     * 密碼
     */
    public static String password = "root";

    /**
     * 不允許實例化該類
     */
    private DBHelper()
    {
    }

    /**
     * 獲取一個數據庫連接
     * 通過設置類的  driver / url / user / password 這四個靜態變量來 設置數據庫連接屬性
     * @return 數據庫連接
     */
    public static Connection getConnection()
    {
        try
        {
            //獲取驅動
            Class.forName(driver);
        } catch (ClassNotFoundException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
        }

        try
        {
            return DriverManager.getConnection(url, user, password);
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
            return null;
        }
    }

    /**
     * 獲取一個 Statement
     * 該 Statement 已經設置數據集 可以滾動,可以更新
     * @return 如果獲取失敗將返回 null,調用時記得檢查返回值
     */
    public static Statement getStatement()
    {
        Connection conn = getConnection();
        if (conn == null)
        {
            return null;
        }
        try
        {
            return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
                    ResultSet.CONCUR_UPDATABLE);
        // 鐠佸墽鐤嗛弫鐗堝祦闂嗗棗褰叉禒銉︾泊閸旓拷閸欘垯浜掗弴瀛樻煀
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
            close(conn);
        }
        return null;
    }

    /**
     * 獲取一個 Statement
     * 該 Statement 已經設置數據集 可以滾動,可以更新
     * @param conn 數據庫連接
     * @return 如果獲取失敗將返回 null,調用時記得檢查返回值
     */
    public static Statement getStatement(Connection conn)
    {
        if (conn == null)
        {
            return null;
        }
        try
        {

            return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            // 設置數據集可以滾動,可以更新
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
            return null;
        }
    }

    /**
     * 獲取一個帶參數的 PreparedStatement
     * 該 PreparedStatement 已經設置數據集 可以滾動,可以更新
     * @param cmdText 需要 ? 參數的 SQL 語句
     * @param cmdParams SQL 語句的參數表
     * @return 如果獲取失敗將返回 null,調用時記得檢查返回值
     */
    public static PreparedStatement getPreparedStatement(String cmdText, Object[] cmdParams)
    {
        Connection conn = getConnection();
        if (conn == null)
        {
            return null;
        }

        PreparedStatement pstmt = null;
        try
        {
            
            pstmt = conn.prepareStatement(cmdText, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            int i = 1;
            for (Object item : cmdParams) //java foreach遍歷集合,要求集合類實現Enumeration接口
            {
                pstmt.setObject(i, item);
                i++;
            }
        } catch (SQLException e)
        {
            e.printStackTrace();
            close(conn);
        }
        return pstmt;
    }

    /**
     *  獲取一個帶參數的 PreparedStatement
     * 該 PreparedStatement 已經設置數據集 可以滾動,可以更新
     * @param conn 數據庫連接
     * @param cmdText 需要 ? 參數的 SQL 語句
     * @param cmdParams SQL 語句的參數表
     * @return 如果獲取失敗將返回 null,調用時記得檢查返回值
     */
    public static PreparedStatement getPreparedStatement(Connection conn, String cmdText, Object[] cmdParams)
    {
        if (conn == null)
        {
            return null;
        }

        PreparedStatement pstmt = null;
        try
        {
            pstmt = conn.prepareStatement(cmdText, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
            int i = 1;
            for (Object item : cmdParams)
            {
                pstmt.setObject(i, item);
                i++;
            }
        } catch (SQLException ex)
        {
            System.out.println(ex.getMessage());
            //ex.printStackTrace();
            close(pstmt);
        }
        return pstmt;
    }

    /**
     * 執行 SQL 語句,返回結果為整型
     * 主要用於執行非查詢語句
     * @param cmdText SQL 語句
     * @return 非負數:正常執行; -1:執行錯誤; -2:連接錯誤
     */
    public static int ExecSql(String cmdText)
    {
        Statement stmt = getStatement();
        if (stmt == null)
        {
            return -2;
        }
        int i;
        try
        {
            i = stmt.executeUpdate(cmdText);
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null,ex);
            System.out.println(ex.getMessage());
            i = -1;
        }
        closeConnection(stmt);
        return i;
    }

    /**
     * 執行 SQL 語句,返回結果為整型
     * 主要用於執行非查詢語句
     * @param cmdText SQL 語句
     * @return 非負數:正常執行; -1:執行錯誤; -2:連接錯誤
     */
    public static int ExecSql(Connection conn, String cmdText)
    {
        Statement stmt = getStatement(conn);
        if (stmt == null)
        {
            return -2;
        }
        int i;
        try
        {
            i = stmt.executeUpdate(cmdText);

        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
           
            i = -1;
        }
        close(stmt);
        return i;
    }

    /**
     * 執行 SQL 語句,返回結果為整型
     * 主要用於執行非查詢語句
     * @param cmdText 需要 ? 參數的 SQL 語句
     * @param cmdParams SQL 語句的參數表
     * @return 非負數:正常執行; -1:執行錯誤; -2:連接錯誤
     */
    //非常好用
    public static int ExecSql(String cmdText, Object[] cmdParams)
    {
        PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);
        if (pstmt == null)
        {
            return -2;
        }
        int i;
        try
        {
            i = pstmt.executeUpdate();
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
           i = -1;
        }
        closeConnection(pstmt);
        return i;
    }

    /**
     * 執行 SQL 語句,返回結果為整型
     * 主要用於執行非查詢語句
     * @param conn 數據庫連接
     * @param cmdText 需要 ? 參數的 SQL 語句
     * @param cmdParams SQL 語句的參數表
     * @return 非負數:正常執行; -1:執行錯誤; -2:連接錯誤
     */
    public static int ExecSql(Connection conn, String cmdText, Object[] cmdParams)
    {
        PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);
        if (pstmt == null)
        {
            return -2;
        }
        int i;
        try
        {
            i = pstmt.executeUpdate();

        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
            i = -1;
        }
        close(pstmt);
        return i;
    }

    /**
     * 返回結果集的第一行的一列的值,其他忽略
     * @param cmdText SQL 語句
     * @return
     */
    public static Object ExecScalar(String cmdText)
    {
        ResultSet rs = getResultSet(cmdText);
        Object obj = getScalar(rs);
        closeConnection(rs);
        return obj;
    }

    /**
     * 返回結果集的第一行的一列的值,其他忽略
     * @param conn 數據庫連接
     * @param cmdText SQL 語句
     * @return
     */
    public static Object ExecScalar(Connection conn, String cmdText)
    {
        ResultSet rs = getResultSet(conn, cmdText);
        Object obj = getScalar(rs);
        closeEx(rs);
        return obj;
    }

    /**
     * 返回結果集的第一行的一列的值,其他忽略
     * @param cmdText 需要 ? 參數的 SQL 語句
     * @param cmdParams SQL 語句的參數表
     * @return
     */
    public static Object ExecScalar(String cmdText, Object[] cmdParams)
    {
        ResultSet rs = getResultSet(cmdText, cmdParams);
        Object obj = getScalar(rs);
        closeConnection(rs);
        return obj;
    }

    /**
     * 返回結果集的第一行的一列的值,其他忽略
     * @param conn 數據庫連接
     * @param cmdText 需要 ? 參數的 SQL 語句
     * @param cmdParams SQL 語句的參數表
     * @return
     */
    public static Object ExecScalar(Connection conn, String cmdText, Object[] cmdParams)
    {
        ResultSet rs = getResultSet(conn, cmdText, cmdParams);
        Object obj = getScalar(rs);
        closeEx(rs);
        return obj;
    }

    /**
     * 返回一個 ResultSet
     * @param cmdText SQL 語句
     * @return
     */
    public static ResultSet getResultSet(String cmdText)
    {
        Statement stmt = getStatement();
        if (stmt == null)
        {
            return null;
        }
        try
        {
            return stmt.executeQuery(cmdText);
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
           closeConnection(stmt);
        }
        return null;
    }

    /**
     * 返回一個 ResultSet
     * @param conn
     * @param cmdText SQL 語句
     * @return
     */
    public static ResultSet getResultSet(Connection conn, String cmdText)
    {
        Statement stmt = getStatement(conn);
        if (stmt == null)
        {
            return null;
        }
        try
        {
            return stmt.executeQuery(cmdText);
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
            close(stmt);
        }
        return null;
    }

    /**
     * 返回一個 ResultSet
     * @param cmdText 需要 ? 參數的 SQL 語句
     * @param cmdParams SQL 語句的參數表
     * @return
     */
    public static ResultSet getResultSet(String cmdText, Object[] cmdParams)
    {
        PreparedStatement pstmt = getPreparedStatement(cmdText, cmdParams);
        if (pstmt == null)
        {
            return null;
        }
        try
        {
            return pstmt.executeQuery();
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
            closeConnection(pstmt);
        }
        return null;
    }

    /**
     * 返回一個 ResultSet
     * @param conn 數據庫連接
     * @param cmdText 需要 ? 參數的 SQL 語句
     * @param cmdParams SQL 語句的參數表
     * @return
     */
    public static ResultSet getResultSet(Connection conn, String cmdText, Object[] cmdParams)
    {
        PreparedStatement pstmt = getPreparedStatement(conn, cmdText, cmdParams);
        if (pstmt == null)
        {
            return null;
        }
        try
        {
            return pstmt.executeQuery();
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
            close(pstmt);
        }
        return null;
    }

    public static Object getScalar(ResultSet rs)
    {
        if (rs == null)
        {
            return null;
        }
        Object obj = null;
        try
        {
            if (rs.next())
            {
                obj = rs.getObject(1);
            }
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
        }
        return obj;
    }
 
    private static void close(Object obj)
    {
        if (obj == null)
        {
            return;
        }
        try
        {
            if (obj instanceof Statement)
            {
                ((Statement) obj).close();
            } else if (obj instanceof PreparedStatement)
            {
                ((PreparedStatement) obj).close();
            } else if (obj instanceof ResultSet)
            {
                ((ResultSet) obj).close();
            } else if (obj instanceof Connection)
            {
                ((Connection) obj).close();
            }
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
       }
    }

    private static void closeEx(Object obj)
    {
        if (obj == null)
        {
            return;
        }

        try
        {
            if (obj instanceof Statement)
            {
                ((Statement) obj).close();
            } else if (obj instanceof PreparedStatement)
            {
                ((PreparedStatement) obj).close();
            } else if (obj instanceof ResultSet)
            {
                ((ResultSet) obj).getStatement().close();
            } else if (obj instanceof Connection)
            {
                ((Connection) obj).close();
            }
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
        }

    }

    private static void closeConnection(Object obj)
    {
        if (obj == null)
        {
            return;
        }
        try
        {
            if (obj instanceof Statement)
            {
                ((Statement) obj).getConnection().close();
            } else if (obj instanceof PreparedStatement)
            {
                ((PreparedStatement) obj).getConnection().close();
            } else if (obj instanceof ResultSet)
            {
                ((ResultSet) obj).getStatement().getConnection().close();
            } else if (obj instanceof Connection)
            {
                ((Connection) obj).close();
            }
        } catch (SQLException ex)
        {
            //Logger.getLogger(DBHelper.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println(ex.getMessage());
       }
    }
}

4.建立登錄界面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>登錄</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  
  <body>
     <center>
    <form name="f1" action="login.jsp" >
      登錄名:<input type="text" name="uid"><br>
      密碼:<input type="password" name="pwd"><br>
      <input type="submit" value="提交">
      <input type="reset" value="重置"> 
    </form>
    </center>
  </body>
</html>

5.執行語句,顯示成功和失敗

<%@ page language="java" import="java.util.*,java.sql.*,DBHelper.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
  <%
    String SQL="SELECT * FROM user WHERE userName=? AND password=?";
    String uid=request.getParameter("uid");
    String pwd=request.getParameter("pwd");
    Object[] params=new Object[]{uid,pwd};
    ResultSet rs=DBHelper.getResultSet(SQL,params);
    if(rs.next())
    out.print("登錄成功");
    else
    out.print("登錄失敗");
    rs.close();
    %>
  
  </body>
</html>

登錄失敗:

登錄成功:

6.結束了哦

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM