Java+JavaBean+JDBC做基于数据库的登录验证
1.建立数据库yfyf 以及数据表login,表中包含两个字段,用户名字username和用户密码password;
2.建立JavaBean用于连接数据库及调用sql语句;代码如下:
package Bean; import java.sql.*; public class DBBean { private String driverStr = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; private String connStr = "jdbc:sqlserver://localhost:1433; DatabaseName=yfyf"; private String dbusername = "sa"; private String dbpassword = "123456"; private Connection conn = null; private Statement stmt = null; public DBBean() { try { Class.forName(driverStr); conn = DriverManager.getConnection(connStr, dbusername, dbpassword); stmt = conn.createStatement(); } catch (Exception ex) { System.out.println("数据连接失败!"); } } public int executeUpdate(String s) { int result = 0; System.out.println("--更新语句:"+s+" "); try { result = stmt.executeUpdate(s); } catch (Exception ex) { System.out.println("执行更新错误!"); } return result; } public ResultSet executeQuery(String s) { ResultSet rs = null; System.out.print("--查询语句:"+s+" "); try { rs = stmt.executeQuery(s); } catch (Exception ex) { System.out.println("ִ执行查询错误!"); } return rs; } public void close() { try { stmt.close(); conn.close(); } catch (Exception e) { } } }
3.login.jsp实现登录界面展示;代码如下:
<%@ page import="java.sql.*" language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>登录界面</title> </head> <body> <center> <h1 style="color:red">登录</h1> <form id="indexform" name="indexForm" action="logincheck.jsp" method="post"> <table border="0"> <tr> <td>账号:</td> <td><input type="text" name="username"></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password"> </td> </tr> </table> <br> <input type="submit" value="登录" style="color:#BC8F8F"> </form> </center> </body> </html>
4.logincheck.jsp实现登录验证;代码如下:
<%@ page import="java.sql.*" language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <jsp:useBean id="db" class="Bean.DBBean" scope="page" /> <% request.setCharacterEncoding("UTF-8"); String username=(String)request.getParameter("username"); String password=(String)request.getParameter("password");//取出login.jsp的值 //下面是数据库操作 String sql="select * from login where username='"+username+"'";//定义一个查询语句 ResultSet rs=db.executeQuery(sql);//运行上面的语句 if(rs.next()) { /* if(password.equals(rs.getString(2))) { } */ if(password.equals(rs.getObject("password"))){ response.sendRedirect("loginsuccess.jsp"); } else{ out.print("<script language='javaScript'> alert('密码错误');</script>"); response.setHeader("refresh", "0;url=login.jsp"); } } else { out.print("<script language='javaScript'> alert('账号错误——else');</script>"); response.setHeader("refresh", "0;url=login.jsp"); } %> </body> </html>
5.loginsuccess.jsp展示登陆成功界面;代码 :
<%@ page import="java.sql.*" language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <h1>登录成功 </h1> </body> </html>
6.最终效果截图: