AJAX登录校验

login

<%@ 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>

dao

package cn.hp.dao;

import cn.hp.util.JDBCUtils;


import java.sql.ResultSet;
import java.sql.SQLException;


public class UserDao {

    public int selectByAccountPassword(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;
    }

}

service

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.selectByAccountPassword(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;
        }

    }
}

servlet

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表
        //User表定义一个UserService用来处理所有和user有关的业务
        UserService userService=new UserService();
       //使用check方法 检查是否存在用户
        boolean flag=userService.check(account);
        resp.getWriter().println(flag);
    }
}
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表
        //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);
        }
    }
}

 

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拿红罗卜钓鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值