接着上一话,注册功能实现后我写了一个登录的小demo
首先:userMapper加一通过用户名去查询数据库的方法
Users findByUserName(String username);
然后userServiceImpl中写与之一样的方法
public Users findByUserName(String username) {
return userMapper.findByUserName(username);
}
在写userMapper.xml查找数据库中的user
<select id="findByUserName" resultType="Users">
select * from users where username = #{username}
</select>
这样service与dao的代码就写完了,其实很简单
然后在写UserController中的代码
分析一下,首先 需要写一个 跳转到登录页面的方法,然后在进行登录表单提交,之后再写一个登录的方法接收前端传过来的值即可
那么开始写代码吧
//注册一个去登录的方法
@RequestMapping("to_login")
public String to_login(){
return "login";
}
//创建一个登录的方法
@RequestMapping("/login")
public String login(HttpSession session, @RequestParam String username, @RequestParam String password) {
//前台传递的数据作为参数传递给后台
Users users = userService.findByUserName(username);
if (users == null) {
//如果users为空 说明用户不存在,那么重定向到登录页面
return "redirect:to_login";
}
if (username.equals(users.getUsername()) && password.equals(users.getPassword())) {
//反之成功, 那么将用户放在session
session.setAttribute("users", users);
//登录成功 跳转到登录页面
return "success";
}
//不成功就跳转到登录页面
return "login";
}
前端代码比较简单
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>登录页面</h3>
<form action="login" method="post">
用户名:<input type="text" name="username"/><br/>
密码:<input type="password" name="password"/><br/>
<input type="submit" value="登录"/><br/>
</form>
登录成功,跳转到success.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
登录成功!!!欢迎 ${users.username}<br>
</body>
</html>