web登录界面数据库验证是web开发最简单也是最基础的一个开发环节。本次开发模式为JSP(前端)+JavaBean(数据库验证)+Java(数据库连接)。代码工程目录如下:

java数据库账号密码加密_javabean

          首先,JSP设计登录界面,简单起见,只有name和password两个文本输入框和submit提交按钮。所有的元素封存在<form >标签中。代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>login</title>
</head>
<body>
<jsp:useBean id="date" class="java.util.Date"></jsp:useBean>
<p>日期为:<%= date %>
<h1>Welcome</h1>

<form action="valadite.jsp" name="login">
    用户名:<label>
    <input type="text" name="name" >
</label><br>
    密 码:<label>
    <input type="password" name="password">
</label><br>
    <%--<button type="button">注册</button>--%>
    <input type="submit">
</form>
</body>
</html>



      其次,设计MySQL数据库表单,数据库名称为:future-login-message,表单名称为login,结构如下:

java数据库账号密码加密_javabean_02

      接着,用Java连接数据库。此处要注意两点:1、getCon方法的返回值类型为Connection。2、最好将连接方法getCon写成成员方法,方便后续调用。代码如下:

package connect;
import java.sql.*;
public class mysqlConnect {
    public Connection getCon() {   //定义类型为Connection的getCon()方法
        Connection con = null;
        String username = "root";
        String password = "lcglcg";
        String Driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/future-login-message";
        try {
            Class.forName(Driver);
            System.out.println("驱动加载成功!");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            con = DriverManager.getConnection(url, username, password);
            System.out.println("连接成功!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return con;    //返回值为Connection con
    }
}

     


     定义validate.jsp页面,设定在login.jsp点击登录按钮是的页面跳转页数据库查询验证。此处用到JavaBean组件,代码如下。

<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="java.sql.ResultSet" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
<%--申明bean对象,将JavaBean变为脚本变量,可以通过脚本元素来访问其元素,将JavaBean实例化:ID--%>
<jsp:useBean id="user" class="Bean.loginMeaasge"></jsp:useBean>
<%--设置写入属性,将JavaBean中的name和password设置为当前页面的输入值--%>
<jsp:setProperty name="user" property="*"></jsp:setProperty>
<%--申明JavaBean对象,传入name和password对象,进行数据验证--%>
<jsp:useBean id="test" class="MessageTest.Test"></jsp:useBean>

<%
if(test.valiuser(user))
   out.print("successful");
else
    out.print("fail");
%>
</body>
</html>

    在validate.jsp中定义了数据库查询操作的JavaBean,此处需要Java代码的实现,代码如下:

package MessageTest;
import java.sql.*;
import Bean.loginMeaasge;
import connect.mysqlConnect;

public class Test {
    private Connection con;
    private PreparedStatement pst;

    public Test() {      //定义Test的构造函数,实例化getCon方法,连接到数据库(Test对象的实例化在valadite.jsp的JSP:useBean完成)
        con = new mysqlConnect().getCon();//申明的connection对象con=mysqlConnect()对象的getcon方法
                       //new getcon()方法,将其实例化。   本段代码,一个对象等于另一个对象的成员方法?什么操作?
    }
    public boolean valiuser(loginMeaasge user) {     //实例化一个JavaBean对象:loginMeaasge user,用来执行JavaBean操作
        try {
            pst = con.prepareStatement("select * from `future-login-message`.login where name=? and password=?");
            pst.setString(1, user.getName()); //接收username值
            pst.setString(2, user.getPassword());
            ResultSet rs = pst.executeQuery();
            return rs.next();
        } catch (SQLException e) {
            e.printStackTrace();
            return false;// try 和catch两个模块都要分别定义返回值
        }
    }
}



         本段代码需要特别注意两个点;

1、在构造方法Test()中,申明的con对象=new mysqlConnection.getcon()方法,即一个对象等于另一个对象的成员方法,此处,con的属性为Connection,而getcon()方法的类型也为Connection. 2、定义成员方法boolean valiuser(loginMeaasge user)中,参数user类型为loginMeaasge,即此处的user是一个JavaBean3、使用prepareStatement()执行查询SQL语句是,两个?最后都要赋值。

      此时,全部代码构建完成,运行,得到登录信息结果。