一、准备工作
- 先导入一些css和js文件
- 新建三个页面,登录页,失败页,成功页
login.jsp
<html>
<head>
<title>login</title>
<link rel="stylesheet" type="text/css" href="/css/bootstrap.css" />
<script src="/js/jquery-3.3.1.min.js"></script>
<script src="/js/bootstrap.js"></script>
</head>
<body>
<div class="container col-xs-2 col-xs-push-4">
<h1>Login</h1>
<form action="/login">
<div class="form-group">
<label for="username">Username</label>
<input type="text" class="form-control" id="username" name="username" placeholder="Username">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" name="password" placeholder="Password">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</body>
</html>
success.jsp
<html>
<head>
<title>success</title>
</head>
<body>
<h1>success</h1>
</body>
</html>
fail.jsp
<html>
<head>
<title>fail</title>
</head>
<body>
<h1>fail</h1>
</body>
</html>
二、开始写后台代码了
- User实体类
public class User {
private Integer id;
private String username;
private String password;
public Integer getId(){
return id;
}
public void SetId(Integer id){
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
- UserMapper接口
@Mapper
public interface UserMapper {
//根据username查找用户
User findUser(String username);
}
- UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="findUser" resultType="com.example.demo.domain.User">
select * from tb_user where username = #{0}
</select>
</mapper>
- UserService接口
public interface UserService {
//根据用户名查找用户
User getUserByName(String username);
}
- UserService实现类
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getUserByName(String username) {
return userMapper.findUser(username);
}
}
- UserController
@Controller
public class LoginController {
@Autowired
private UserService userService;
@RequestMapping("/loginPage")
public String loginPage(){
return "login";
}
@RequestMapping("/login")
public String login(String username, String password){
User user = userService.getUserByName(username);
if (user == null)
return "fail";
if(user.getPassword().equals(password))
return "success";
else
return "fail";
}
}
三、访问流程
用户提交表单后根据action找到对应RequestMapping中的路径,根据input标签中的name传递参数到Controller。
Controller通过Service传递username参数找到user对象。
Service通过Mapper找到对应的Mapper,Mapper通过映射找到xml执行Sql查出数据。