springmvc用户登录验证这块,只有数据库中的一个数据能通过,其他都不行?

问题描述

用springmvc写了个用户登录,只有数据库中一个数据能验证后跳转主页,其他都不行??

问题出现的环境背景及自己尝试过哪些方法

我一直以为是我的mybatis有问题,然后我用传统的jdbc写了一次,还是没有通过验证。。。。。
过程描述:
我输入 用户名:admin 密码:admin后,页面正常跳转,去往主页;
但是,我使用,用户名:a 密码:a后,页面没有跳转,还在登录界面;

这是我的数据库表格:
id userName userPassword dataTime
1 admin admin null
2 a a null
3 1 1 null

相关代码

粘贴代码文本(请勿用截图)
@RequestMapping("/checkUser")
public void check(User user, HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException {
if(user != null){
//暂时不做三层架构,直接在Controller层表现
//1.加载配文件
InputStream resourceAsStream = null;
try {
resourceAsStream = Resources.getResourceAsStream("mybatis.xml");
} catch (IOException e) {
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
InterUser mapper = sqlSession.getMapper(InterUser.class);
//dbusers从数据库查询的用户信息
List dbusers = mapper.searchAll();
//上方的代码是加载mybatis配置文件后,获取对象

System.out.println("用户输入的名称"+user.toString());
//进行遍历
for(User dbu : dbusers){
if(dbu.getUserName().equals(user.getUserName()) && dbu.getUserPassword().equals(user.getUserPassword())){
System.out.println("这里是实施四四数据库获取用户的名称"+user.toString());
String name=dbu.getUserName();//获取用户名称
session.setAttribute("sessionName",name);
try {
request.getRequestDispatcher("/data/searchByPage").forward(request,response);
} catch (ServletException e) {
e.printStackTrace();
}
return;
}else {
//验证错误,则返回登录页面
try {
request.getRequestDispatcher("/index.jsp").forward(request,response);
} catch (ServletException e) {
e.printStackTrace();
}
}
}
}
}

你期待的结果是什么?实际看到的错误信息又是什么?

我希望我的数据库里的其他数据也能通过验证;

我使用用户名用户名:a和密码:a后;控制台输出:
用户输入的名称User{id=null, userName='a', userPassword='a', dateTime=null}
这里是实施四四数据库获取用户的名称User{id=null, userName='a', userPassword='a', dateTime=null}

从这可以看出,已经判断成功了,为啥没有跳转呢??谢谢大家

最佳答案

boolean authed = false;
for(User dbu : dbusers)
{
    if(dbu.getUserName().equals(user.getUserName()) &&
            dbu.getUserPassword().equals(user.getUserPassword()))
    {
        System.out.println("这里是实施四四数据库获取用户的名称" + user.toString());
        String
        name = dbu.getUserName(); //获取用户名称
        session.setAttribute("sessionName", name);
        authed = true;
        break;
    }
}

if (authed)
{
    try
    {
        request.getRequestDispatcher("/data/searchByPage").forward(request, response);
    }
    catch (ServletException e)
    {
        e.printStackTrace();
    }
}
else
{
    //验证错误,则返回登录页面
    try
    {
        request.getRequestDispatcher("/index.jsp").forward(request, response);
    }
    catch (ServletException e)
    {
        e.printStackTrace();
    }
}

下次提交代码时请用这样的格式:
image.png