Servlet案例-用户登录

Servlet案例-用户登录

流程说明

  1. 用户填写用户名密码,提交到LoginServlet
  2. 在LoginServlet中使用MyBatis查询数据库,验证用户名密码是否正确
  3. 如果正确,响应“登录成功”, 如果错误,响应“登录失败”

环境准备

  1. 复制资料中的静态页面到项的webapp目录下
  2. 创建db1数据库,创建tb_user表,创建实体类User
  3. 导入MyBatis坐标,MySQL坐标
  4. 创建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);
    }
}