//用户登录 @RequestMapping("login.action") public String login() { this.front(); String username = this.getRequest().getParameter("username"); String password = this.getRequest().getParameter("password"); Users u = new Users(); u.setUsername(username); List<Users> usersList = this.usersService.getUsersByCond(u); if (usersList.size() == 0) { this.getSession().setAttribute("message", "用户名不存在"); return "redirect:/index/preLogin.action"; } else { Users users = usersList.get(0); if (password.equals(users.getPassword())) { this.getSession().setAttribute("userid", users.getUsersid()); this.getSession().setAttribute("username", users.getUsername()); this.getSession().setAttribute("users", users); return "redirect:/index/index.action"; } else { this.getSession().setAttribute("message", "密码错误"); return "redirect:/index/preLogin.action"; } } }解析该段每一句代码
时间: 2023-06-14 14:04:06 浏览: 103
这段代码定义了一个用于用户登录的方法,使用 @RequestMapping 注解来映射请求路径为 "login.action"。方法的返回值是一个字符串,会根据不同的情况跳转到不同的页面。下面是每句代码的解析:
1. `this.front();`:调用父类 BaseController 的 front() 方法,用于初始化一些基础信息。
2. `String username = this.getRequest().getParameter("username");`:从请求中获取参数名为 "username" 的值,赋给本地变量 username。
3. `String password = this.getRequest().getParameter("password");`:从请求中获取参数名为 "password" 的值,赋给本地变量 password。
4. `Users u = new Users();`:创建一个新的 Users 对象。
5. `u.setUsername(username);`:设置 Users 对象的用户名属性为本地变量 username 的值。
6. `List<Users> usersList = this.usersService.getUsersByCond(u);`:调用 usersService 的 getUsersByCond() 方法,传入 Users 对象 u,返回满足条件的 Users 对象列表,赋给本地变量 usersList。
7. `if (usersList.size() == 0) {`:如果 usersList 的大小为 0,即没有找到匹配的用户:
8. `this.getSession().setAttribute("message", "用户名不存在");`:将提示信息 "用户名不存在" 存入会话中,属性名为 "message"。
9. `return "redirect:/index/preLogin.action";`:重定向到 "/index/preLogin.action" 路径,即跳转到登录页面。
10. `} else {`:如果找到了匹配的用户:
11. `Users users = usersList.get(0);`:获取 usersList 的第一个元素,即匹配的用户。
12. `if (password.equals(users.getPassword())) {`:如果本地变量 password 的值等于用户的密码:
13. `this.getSession().setAttribute("userid", users.getUsersid());`:将用户的 ID 存入会话中,属性名为 "userid"。
14. `this.getSession().setAttribute("username", users.getUsername());`:将用户的用户名存入会话中,属性名为 "username"。
15. `this.getSession().setAttribute("users", users);`:将用户的 Users 对象存入会话中,属性名为 "users"。
16. `return "redirect:/index/index.action";`:重定向到 "/index/index.action" 路径,即跳转到首页。
17. `} else {`:如果本地变量 password 的值不等于用户的密码:
18. `this.getSession().setAttribute("message", "密码错误");`:将提示信息 "密码错误" 存入会话中,属性名为 "message"。
19. `return "redirect:/index/preLogin.action";`:重定向到 "/index/preLogin.action" 路径,即跳转到登录页面。
阅读全文