开发者社区> 问答> 正文

Spring mvc 登陆验证?报错

1.前台js:

     var name = $("#name").val();
     var pwd = $("#pwd").val();
     $.ajax({
          url:"login?name="+name+"&pwd="+pwd+"",
          type:"post",
          success:function(result){
              if(result=="false"){
                 $("#error_msg").html("用户名或密码输入有误");
                $('#error_msg').show();
                return false;
               }
             if(result=="true"){
              document.loginform.submit();
             }
        }
    });

2.Controller:

@RequestMapping(value = "/login")
public String Verification(HttpServletRequest request,HttpServletResponse response) throws IOException {
       PrintWriter out = response.getWriter();
        String name = request.getParameter("name");
        String pwd = request.getParameter("pwd");
        User us = userService.findUserByname(name, pwd);
        if (us.getName() == null && us.getPassword() == null){
            out.print("false");
            return null;
        }else {
        session.setAttribute("us", us);
        out.print("true");
        return null;
        }
}

3. 后台service

public User findUserByname(String name, String pwd) {
    String sql = "select * from user where name=? and password = ?";
    User us = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<User>(User.class),                             name,pwd);
    return us;
}

注: 意思大家代码一看都明白了,就只是登陆ajax验证了。 问题在第3步,我输入的用户名密码错误,执行sql查不到数据就报错,可以怎样改一下,执行完第3步都返回到Controller,在第2步进行判断返回页面呢?(是不是我的方法有错呢,勿喷,学习Sping mvc ing.....)

展开
收起
爱吃鱼的程序员 2020-06-22 21:30:45 426 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    使用前判断一下: Userus=userService.findUserByname(name,pwd);

           if(us==null)

    {

        return"";

    }
             if(us.getName()==null&&us.getPassword()==null){
                out.print("false");
                returnnull;
            }else{
            session.setAttribute("us",us);
            out.print("true");
            returnnull;
            }

    函数返回值设置为void ,把return去掉,直接out.print就行了 你试试,希望对你有帮助

    引用来自“yangzhiyong”的答案

    使用前判断一下: Userus=userService.findUserByname(name,pwd);

           if(us==null)

    {

        return"";

    }
             if(us.getName()==null&&us.getPassword()==null){
                out.print("false");
                returnnull;
            }else{
            session.setAttribute("us",us);
            out.print("true");
            returnnull;
            }

    引用来自“白与黑”的答案

    函数返回值设置为void ,把return去掉,直接out.print就行了 你试试,希望对你有帮助

    publicintfindUserByname(finalStringname,finalStringpwd){

        intcount=0;

       Stringsql="select*fromuserwherename=?andpassword=?";

       Object[]args={name,pwd};

        count=jdbcTemplate.queryForInt(sql,args);

        returncount;

    }

    action层根据返回的count值判断是否正确

    如果想友好提示登录就不是这么个逻辑了

    Countroller伪码:

    登录验证(){Useruser=service.queryByEmail(email);if(user==null){账号不存在}if(user.getStatus()==冻结){账号被冻结了}if(user.getPwd()!=pwd){密码错误}

    引用来自“sc19860709”的答案

    publicintfindUserByname(finalStringname,finalStringpwd){

        intcount=0;

       Stringsql="select*fromuserwherename=?andpassword=?";

       Object[]args={name,pwd};

        count=jdbcTemplate.queryForInt(sql,args);

        returncount;

    }

    action层根据返回的count值判断是否正确

    引用来自“風一樣的男子”的答案

    如果想友好提示登录就不是这么个逻辑了

    Countroller伪码:

    登录验证(){Useruser=service.queryByEmail(email);if(user==null){账号不存在}if(user.getStatus()==冻结){账号被冻结了}if(user.getPwd()!=pwd){密码错误}

    找到错误了吗 $.ajax({url:"login?name="+name+"&pwd="+pwd+"",type:"post",success:function(result){if(result=="false"){$("#error_msg").html("用户名或密码输入有误");$('#error_msg').show();returnfalse;}if(result=="true"){document.loginform.submit();}}}); 校验成功后, 还会再一次提交form。 if(result=="true"){document.loginform.submit();}
    2020-06-22 21:31:01
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题) 立即下载
Spring Cloud 微服务核心组件集 mica 的设计思路 立即下载

相关实验场景

更多