Servlet案例-用户登录
流程说明
- 用户填写用户名密码,提交到LoginServlet
- 在LoginServlet中使用MyBatis查询数据库,验证用户名密码是否正确
- 如果正确,响应“登录成功”, 如果错误,响应“登录失败”
环境准备
- 复制资料中的静态页面到项的webapp目录下
- 创建db1数据库,创建tb_user表,创建实体类User
- 导入MyBatis坐标,MySQL坐标
- 创建
mybatis-config.xml
核心配置文件,UserMapper.xml
映射文件,UserMapper
接口
// LooginServlet
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1. 接收用户名和密码
String username = req.getParameter("username");
String password = req.getParameter("password");
// 2. 调用MyBatis完成查询
// 2.1 获取SqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 2.2. 获取SqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
// 2.3 获取Mapper
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 2.4 调用方法
User user = userMapper.select(username, password);
// 2.5 释放资源
sqlSession.close();
//
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer = resp.getWriter();
// 3. 判断user是否为null
if (user != null){
// 登录成功
writer.write("登录成功");
}else {
// 登录失败
writer.write("登录失败");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req, resp);
}
}