开发者学堂课程【Java Web项目实战2:图书商城:用户模块之登录功能】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/35/detail/769
用户模块之登录功能
内容介绍:
一、用户模块之登录流程
二、UserServlet#login()
三、UserService
四、UserDao
五、登录功能
一、用户模块之登录流程
/jsps/user/login.jsp → UserServlet#login()→ index.jsp
二、 UserServlet#login()
1.一键封装(只有用户名和密码)
2.输入校验(略了)
3.调用 service 方法完成登录
>保存异常信息、保存 form ,转发回 login.jsp
4.保存用户信息到 session 中
5.重定向到 index.jsp
User form = CommonUtils.toBean(request.getParameterMap(),User.class);try {
Useruser = userservice.login(form);
request.getSession().setAttribute("session_user",user);
return "r:/index.jsp";l
} catch (UserException e) {
request.setAttribute("msg",e.getMessage());
request.setAttribute("form", form);
return "f:/jsps/user/login.jsp";
三、 UserService
User login(User,form)
1.使用 username 查询数据库,得到 user 对象>如果 user为null ,抛出异常(用户名不存在)。
2.比较 form 与 user 的密码是否相同。
>如果不同,抛出异常(密码错误)
3.查看用户的状态
>如果为未激活状态,抛出异常
4. 返回 user
四、 UserDao
1. User findByUsername()
五、登录功能
1. 使用 username 查询,得到 User
2. 如果 user 为 null ,抛出异常(用户名不存在)
3. 比较 form 和 user 的密码,若不同,抛出异常(密码错误)
4. 查看用户的状态,若为 false ,抛出异常(尚未激活)
5. 返回 user
User
user=userDao.findByUsername(form.getUsername());
if(user==null)throw new UserException("用户名不存在!");
if(!user.getPassword().equals(form.getPassword()))throw new UserException("密码错误!");
if(!user.isState())throw new UserException("尚未激活!");
return user;