您的位置:首页 > 编程语言 > Java开发

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

2017-07-31 17:27 1276 查看
以前对于这种功能就只是复制粘贴,并没有真正的深入了解过,现在就来深入的一步一步的实现功能;

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();
}
}
}


在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();
}


源码

在我的资源中可以看,我上传了文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息