jsp+javaBean+servlet+mysql完整的实现一个登录功能

以前对于这种功能就只是复制粘贴,并没有真正的深入了解过,现在就来深入的一步一步的实现功能;
1.在eclipse中新建一个动态的web工程;
2.在webContent目录下创建一个jsp页面,命名为login.jsp
3.在JavaResource的src目录下创建一个servlet包,(com.arvin.servlet),并在该包底下创建一个处理登录的servlet类(LoginServlet.java);
4.打开mysql创建相应的数据库和表,并插入数据;
5.利用jdbc连接数据库。
5.1 首先要下载connector/J地址:http://www.mysql.com/downloads/connector/j/

这是MySQL官方提供的连接方式:

解压后得到jar库文件,需要在工程中导入该库文件,放在webContent/WEB-INF/lib目录下。
5.2. 也是重点,先创建一个关于数据库的包(com.arvin.db),在该包底下创建一个用于打开关闭数据库操作的类(ConnDB.java),内容如下:

 package com.arvin.db;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Connection;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class ConnDB {

    //数据库的用户名和密码
    public static String username = "root";
    public static String password = "150916";

    //获得连接对象,statement对象和结果集
    public static  Connection conn = null;
    public static Statement state = null;
    public static ResultSet  rs = null; 

    //数据库驱动,在刚开始下载的文件中
    public static String driver_class = "com.mysql.jdbc.Driver";

    //oilServer是数据库名,其他的不变
        public static String url = "jdbc:mysql://localhost/oilServer";


    //获得数据库的连接的方法
    public static Connection getConnection(){
    try {
        Class.forName(driver_class);//指定连接类型 
        System.out.println("load db driver success......");
        conn = DriverManager.getConnection(url,username,password);//获取连接 
           System.out.println("get db connection success....");

            } catch (Exception e) {
                e.printStackTrace();
            }
            return  conn;
        }


    //执行数据库的查询操作,返回的为结果集
public static ResultSet excuteQuery(String sql){
    try {
        state = conn.createStatement();
        rs = state.executeQuery(sql);
        return rs;
        } catch (Exception e) {
            e.printStackTrace();
        }

        return rs;
    }


    //关闭数据库
    public static void closeDb(){
        try {
            if(rs != null)
                rs.close();
            if(conn != null)
                conn.close();
            if(state != null)
                state.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  1. 在servlet中进行事务处理。
    在这里先将数据库的查询操作写在servlet中。

    6.1. 因为在 com.arvin.db.ConnDB定义了打开关闭数据库的操作,以及查询sql语句的操作,所以在servlet中引入
    import com.arvin.db.ConnDB;

    getConnection()方法和excuteQuery(sql)方法都在ConnDB类中创建了,在这里可以直接引用
    
try {
    //获得连接并执行sql语句
    ConnDB.getConnection();
    String sql = "select * from t_userinfo";
    ResultSet rs = ConnDB.excuteQuery(sql);

    //通过结果集获得数据库中的username的值存在变量   db_username 中,password的值存在变量db_password 

while(rs.next()){
    db_username = rs.getString("username");
    db_password = rs.getString("password");
//进行逐条比对
if((db_username.equals(key))&&(db_password.equals(value))){
    System.out.println("匹配成功");
    request.setAttribute("name", key);
//比对成功后跳转成功页面                       request.getRequestDispatcher("/success.jsp").forward(request, response);
    }

//如果密码账号都不对而且是最后一个就跳转到登录失败页面
if(!(db_username.equals(key))&&!(db_password.equals(value))&&(!rs.next())){             request.getRequestDispatcher("/failure.jsp").forward(request, response);
                    }
                }
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

源码
在我的资源中可以看,我上传了文件

你可能感兴趣的:(jsp+javaBean+servlet+mysql完整的实现一个登录功能)