发表于: 2017-10-07 23:41:35
1 781
今天完成的事
做出了登录页面,以及登录验证
controller
//登录界面
@RequestMapping(value = "/a/login")
public String login(HttpServletRequest request,HttpServletResponse response){
return "/jsp/login";
}
//登录验证
@RequestMapping(value = "/a/login/verify",method = RequestMethod.POST)
public String loginCheck(HttpServletRequest request,HttpServletResponse response,Student user){
// String account = request.getParameter("account");
// String password = request.getParameter("password");
boolean loginType = loginService.login(user.getAccount(),user.getPassword());
log.info(user);
if(loginType){
//是true会通过判定
return "/common/loginSuccess";
}
else{
return "/common/loginMistake";
}
}
}
impl
@Service("LoginService")
public class LoginServiceImpl implements LoginService {
private static Logger logger = Logger.getLogger(LoginService.class);
//自动注入mapper
@Autowired
StudentMapper studentMapper;
//从登录界面获取账户account和密码password
public boolean login(String account,String password){
logger.info("输入的账户"+account+"输入的密码"+password);
//判断账户是否存在
int i = studentMapper.selectExist(account);
logger.info("该账户状态:"+i);
if(i == 0){
logger.error("账户不存在");
return false;
}
//从数据库中拿出密码为比对做准备
Student user= studentMapper.login(account);
//比对账户和密码 必须使用equals比对不能使用==比对
if (user.getPassword().equals(password)){
logger.info("验证成功!!");
return true;
}
else {return false;}
}
}
登录测试
输出一些重要的值
遇到的问题:
没有进入登录界面直接通过验证,把登录和验证分成两个页面就解决了
密码错误也显示登录成功 原因是因为一个if()判定直接把整个实现类判定成了true,导致controller中的判定失效
这里的直接使用bean声明了一个user就能 不使用request.getParameter方法获取到浏览器的账户密码,搞不懂 明天找大佬问一下
最开始比对密码和账户,报空指针的错误,后来在之前加了判定账户不为空之后取消掉账户比对(我的理解是密码是通过账户查出来的,所以可以取消掉账户的比对),问题解决
明天的计划:
参考师兄的日报把代码精简一下,参考参考师兄方法学习一下
写COOKIE和SESSION的demo
收获:带上国庆假期也算是好多天没写代码了,这次登录是自己在网上找的例子开始自己写,不再照着师兄的代码写了,弄了一天竟然写出来了,哈哈
任务进度:任务五步骤一
任务开始时间:2017-10-2
预计demo时间:2017-10-10
暂无延期风险
禅道:http://task.ptteng.com/zentao/project-task-276.html
评论