简单的说,就是同样的代码,例程里写在doPost()里
我的代码只能写在doGet()里,写在doPost()里不会生效
++++++++++++++++++++++++++++++++++++++++++++++
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1、设置request编码
req.setCharacterEncoding("utf-8");
// 2、获取 jsp页面 中对应的参数,注意区分大小写
String username = req.getParameter("username");
String password = req.getParameter("password");
String checkCode = req.getParameter("checkCode");
// 3、获取 CheckCodeServlet.java 生成的验证码
// 注意,getAttribute() 里的参数是要存在的,CheckCodeServlet那里是有的
HttpSession session = req.getSession();
// Object checkCode_session = session.getAttribute("checkCode_session");
String checkCode_session = (String) session.getAttribute("checkCode_session");
// 注意,这里有两个验证码,可以理解为checkCode_session是答案,checkCode是试卷
// 4、判断验证码是否正确
// 注意,下面用到的比较方法可以不区分大小写,但是两个比较的值要是String,所以上面的Object要转型
if(checkCode_session.equalsIgnoreCase(checkCode)){
System.out.println("1111111");
// 如果验证码一致,则判断用户名与密码是否一致
if("ycw".equals(username) && "123".equals(password)){
System.out.println("2222222");
// 账号密码一致
// 这里原本是要调用 userDao 查询数据库的,现在只是模拟,下面的username也是暂时的
session.setAttribute("user", username); // ===>返回登录页面一个叫 user 的参数,它的值是username
// 测试用
System.out.println("登录成功");
// 重定向到success.jsp
resp.sendRedirect(req.getContextPath()+"/success.jsp");
}
else {
// 账号密码不一致
// 存储提示信息到request
req.setAttribute("login_error", "账号或者密码错误");
// 转发到登录页面
req.getRequestDispatcher("/login.jsp").forward(req, resp);
// 测试用
System.out.println("账号或者密码错误");
}
}
else {
System.out.println("3333333");
// 验证码不一致
// 存储提示信息到request
req.setAttribute("cc_error", "验证码错误");
// 转发到登录页面
req.getRequestDispatcher("/login.jsp").forward(req, resp);
// 测试用
System.out.println("验证码错误");
}
}