Ajax登录验证实现代码

目录

package cn.hp.util;import java.sql.*;public class JDBCUtils {    static Connection connection = null ;    static Statement statement = null ;    static PreparedStatement preparedStatement = null ;    static ResultSet resultSet = null ;    static{        try {            Class.forName("com.mysql.jdbc.Driver");            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/user_system?characterEncoding=utf8&serverTimezone=UTC", "root", "root");        } catch (ClassNotFoundException | SQLException e) {            e.printStackTrace();        }    }//    新增和修改  DML 操作 String sql , sql中的参数    preparedStatement   Object[] arr 用来补全sql中的?    public static int DML(String sql , Object[] arr  ){  // 可变参数 Object ... arr  0~n个参数        int update = 0 ;        try{            preparedStatement = connection.prepareStatement(sql);//            循环完毕,会将sql中全部? 补充齐            for (int i = 0 ; i < arr.length ; i++){                preparedStatement.setObject(i+1 , arr[i] );            }            update = preparedStatement.executeUpdate();        }catch (SQLException e){            e.printStackTrace();        }        return update ;    }    //     带参查询  DQL 操作    public static ResultSet DQL(String sql , Object[] arr ){        try{            preparedStatement = connection.prepareStatement(sql);//            循环完毕,会将sql中全部? 补充齐            for (int i = 0 ; i < arr.length ; i++){                preparedStatement.setObject(i+1 , arr[i] );            }            resultSet = preparedStatement.executeQuery();        }catch (SQLException e){            e.printStackTrace();        }        return resultSet ;    }    //    单独提供关闭资源方法    public static void close(){        try {            if (statement!=null){                statement.close();            }            if (connection!= null){                connection.close();            }        } catch (SQLException e) {            e.printStackTrace();        }    }}
package cn.hp.service;import cn.hp.dao.UserDao;public class UserService {    public boolean login(String account, String password) {        //service层,依赖于dao层 制定某一条sql执行        UserDao userDao = new UserDao();        int select = userDao.selectByAccountAndPassword(account ,password);        if (select>0){          return true;        }else {            return false;        }    }    public boolean check(String account) {        //service层,依赖于dao层 制定某一条sql执行        UserDao userDao = new UserDao();        int select = userDao.selectByAccount(account);        if (select>0){            return true;        }else {            return false;        }    }}
package cn.hp.servlet;import cn.hp.service.UserService;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@WebServlet("/login")public class LoginServlet extends HttpServlet {    @Override    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        //1.设置用户输入的编码格式,因为有可能是中文        req.setCharacterEncoding("utf-8");        //2.获取用户数输入的内容        String account = req.getParameter("account");        String password = req.getParameter("password");        //3.依据service来判断当前登录的账号密码是否正确        //User表 定义一个UserService 用来处理 所有和user有关的业务        UserService userService = new UserService();        //login方法传入账号密码  返回是否登录成功        boolean flag = userService.login(account,password);        //4.依据是否登录成功,进行控制页面的跳转        if (flag){            req.getRequestDispatcher("success.jsp").forward(req,resp);        }else {            req.setAttribute("msg","密码错误,请重新登录!");            req.getRequestDispatcher("login.jsp").forward(req,resp);        }    }}
package cn.hp.servlet;import cn.hp.service.UserService;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;@WebServlet("/check")public class CheckServlet extends HttpServlet {    @Override    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        //1.设置用户输入的编码格式,因为有可能是中文        req.setCharacterEncoding("utf-8");        //2.获取用户数输入的内容        String account = req.getParameter("account");        //3.依据service来判断当前登录的账号密码是否正确        //User表 定义一个UserService 用来处理 所有和user有关的业务        UserService userService = new UserService();        //使用check方法  检出是否存在用户  true 存在用户  false 不存在        boolean flag = userService.check(account);        resp.getWriter().println(flag);    }}
package cn.hp.dao;import cn.hp.util.JDBCUtils;import java.sql.ResultSet;import java.sql.SQLException;public class UserDao {    public int selectByAccountAndPassword(String account, String password) {        //执行select查询sql语句        String sql = "select count(*) from user where account = ? and password = ?";        Object[] objects = {account , password};        ResultSet resultSet = JDBCUtils.DQL(sql,objects);        int select = 0;        try {            while (resultSet.next()){                select = resultSet.getInt(1);            }        }catch (SQLException e){            e.printStackTrace();        }        return select;    }    public int selectByAccount(String account) {        //执行select查询sql语句        String sql = "select count(*) from user where account = ? ";        Object[] objects = {account };        ResultSet resultSet = JDBCUtils.DQL(sql,objects);        int select = 0;        try {            while (resultSet.next()){                select = resultSet.getInt(1);            }        }catch (SQLException e){            e.printStackTrace();        }        return select;    }}
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title>登录页</title>    <script src="js/jquery-3.6.0.js"></script></head><body>    <form action="login">        账号:<input id="input1" type="text" name="account" /> <span id="span1"></span> <br/>        密码:<input type="password" name="password" /> <span style="color:red"> ${msg } </span><br/>        <input type="submit" value="登录"/>    </form></body><script>    // 使用jQuery完成ajax校验 ,当前账号是否存在    $("#input1").blur(function () {        //    发送ajax请求,获取到当前输入的账号是否存在,写入到span1标签中        let account = $("#input1").val();        $.ajax({            url:"check",            // data:{"account":$("#input1").val() },            data:"account="+account ,            type:"get",            success:function (data) {                let data1 = JSON.parse(data);                if (data1){                    // 表示存在当前账号                    // 可以登录                    $("#span1").html("可以登录");                    $("#span1").attr("style","color:green");                }else {                    $("#span1").html("未注册");                    $("#span1").attr("style","color:red");                }            }        })    })</script></html>

当你感到悲哀痛苦时,最好是去学些什么东西。

Ajax登录验证实现代码

相关文章:

你感兴趣的文章:

标签云: