需求:进入登陆页面,用户输入用户名和密码,返回登陆成功或失败。
具体流程图如下:
Servlet类的详细逻辑如下:
//WebServlet路径与表单action提交的路径一致,表单提交的数据交给该servlet程序解析
@WebServlet("/req")
public class requestServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取参数
String username = request.getParameter("username");
String password = request.getParameter("password");
//2.从数据库中获取含该参数的类
//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 获取UserMapper接口代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//2.4执行sql
User user = userMapper.selectByUser(username, password);
//2.5释放资源
sqlSession.close();
//3.判断是否能获取
//设置编码格式
response.setContentType("text/html;charset=utf-8");
if(user!=null){
//3.1成功获取,设置反馈浏览器响应
// response.getWriter().write("登陆成功");
byte[] bytes = "登陆成功".getBytes();
ServletOutputStream os = response.getOutputStream();
os.write(bytes);
}else{
//3.2无该用户,设置反馈浏览器响应
// response.getWriter().write("登陆失败");
byte[] bytes = "登陆失败".getBytes();
ServletOutputStream os = response.getOutputStream();
os.write(bytes);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request,response);
}
}