服务端验证的问题处理
Posted huangcan1688
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务端验证的问题处理相关的知识,希望对你有一定的参考价值。
在使用服务端验证的时候,因为各种需求的不同,可以用作一下的几个处理。
1、使用sql语句的验证
就是在写sql语句的时候,进行用户名和密码的匹配查询。如:where name = ? and password = ?。在客户端请求时,在servlet层获取用户名和密码参数。并调用该方法,如果返回有值,则验证通过。反之,不通过。
通过这种方法。在客户端提示页面错误信息的时候,可能体验感不是太好。因为不能准确的提示用户,是用户名输入错误,还是密码输入错误。
//获取请求的用户名和参数 String name = req.getParameter("name"); String password = req.getParameter("password"); //方法类 UserDao userDao = new UserDao(); //通过sql验证 List<User> user = userDao.findUser(name,password); //判断 if(user.size() > 0){// 验证通过 //通过:跳转页面 }else{// 验证不通过 //提示:用户名或密码错误 }
2、使用List集合存储后台数据信息,再进行验证
写sql语句的时候是获取后台所有的数据信息。如:select * from 表。在客户端请求时,在servlet层获取用户名和密码参数。并遍历List集合,把List中的用户名和密码与servlet获取到的参数进行比较验证。
通过这种方法。在验证后处理页面的跳转信息的时候。很难去处理。
下面的方法进行处理后,可以使用户界面出现错误是得到较好的体验。
//获取请求的参数 String name = req.getParameter("name"); String password = req.getParameter("password");
//方法类
UserDao userDao = new UserDao();
// 获取后台所有的用户信息 sql语句:select * from user List<User> findAllUser = userDao.findAllUser(); //把List<User>集合中的用户名和密码单独抽离封装成一个集合 List<String> collectName = findAllUser.stream().map(User::getName).collect(Collectors.toList()); List<String> collectPassword = findAllUser.stream().map(User::getPassword).collect(Collectors.toList()); //进行验证 if (collectName.contains(name)) {// 验证用户名 if (collectPassword.contains(password)) {// 验证密码 //验证通过 } else { //验证不通过,提示用户:密码错误 } } else { //验证不通过,提示用户:用户名错误 }
以上是关于服务端验证的问题处理的主要内容,如果未能解决你的问题,请参考以下文章