登陆检查ajax

本文详细介绍了一个用户登录系统的实现过程,包括前端使用Ajax进行异步请求,后端通过Servlet处理登录逻辑,以及服务层和数据访问层的具体实现。涵盖用户验证、状态检查及响应处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 ajax

//监听提交
            form.on('submit(login)', function (data) {
                $.post(
                    "UserLoginServlet",
                    {
                        email: $("#email").val(),
                        password: $("#password").val()
                    }, function (result) {
                        if (result == 1) {
                            layer.msg("登陆成功", function () {
                                location.href = 'CarServlet'
                            });
                        } else if (result == 0) {
                            layer.msg("用户不存在", function () {
                                location.href = 'userLogin.html'
                            });

                        } else if (result == -2) {
                            layer.msg("你被管理员拉黑", function () {
                                location.href = 'userLogin.html'
                            });
                        } else {
                            layer.msg("密码错误", function () {
                                location.href = 'userLogin.html'
                            });
                        }
                    }
                );

2 servlet

/**
 * @Program: exam
 * @ClassName: UserLoginServlet
 * @Description: 用户登陆
 * @Author: li
 * @Create: 2019-07-24 10:47
 */
@WebServlet("/UserLoginServlet")
public class UserLoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String email = request.getParameter("email");
        String pwd = request.getParameter("password");

        IUserServices services = new UserServicesImpl();
        int i = services.userLogin(new User(email,pwd));

        //1:登陆成功
        if(i == 1){
            request.getSession().setAttribute("email",email);
        }
        response.getWriter().print(i);
    }
}

3 services

    @Override
    public int userLogin(User user) {
        if(!dao.checkEmail(user.getEmail())){
            if(dao.queryUser(user)){
                if(dao.queryStatus(user.getEmail())){
                    //登陆成功
                    return 1;
                }else{
                    //你被管理员拉黑
                    return -2;
                }
            }else {
                //密码错误
                return -1;
            }
        }else{
            //帐号不存在
            return 0;
        }
    }

4 dao

	//检查帐号是否可用	
    @Override
    public boolean checkEmail(String email) {
        String sql = "select count(1) from user where email like ?";
        Integer query = jt.queryForObject(sql, Integer.class, email);
        return query == 1 ? false : true;
    }

	//查询账号和密码
  @Override
    public boolean queryUser(User user) {
        String sql = "select count(1) from user where email like ? and pwd like ?";
        int total = jt.queryForObject(sql,Integer.class,user.getEmail(),user.getPwd());
        return total == 1 ? true : false;
    }
	
	//查看是否被管理员拉黑
    @Override
    public boolean queryStatus(String email) {
        String sql = "select status from user where email like ?";
        List<User> query = jt.query(sql, new BeanPropertyRowMapper<User>(User.class), email);
        return query.get(0).getStatus() == 1 ? true : false;
    }

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值