csdn_sqj 2019-12-16 10:53 采纳率: 40%
浏览 555
已采纳

请问doPost和doGet方法有什么不同,为什么例程里的方法写在doPost里,我的代码只能写在doGet

简单的说,就是同样的代码,例程里写在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("验证码错误");
    }

}
  • 写回答

1条回答 默认 最新

  • 笑看烟雨红尘 2019-12-16 10:55
    关注

    两者区别在于你的请求方式,post请求会进doPost,get请求会进doGet

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料