response.sendRedirect()不会重定向,不会引发任何错误

时间:2018-11-07 13:11:20

标签: java redirect servlets

我尝试开发语音控制的Web应用程序。问题在于它没有重定向到现有的Webservlets URL,并且没有显示任何错误消息。 这是我Controller.java文件中的doPost方法:(在第二个“如果”中,重定向工作正常,仅在第三个中不起作用。)

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    HttpSession session = req.getSession();

    if (req.getParameter("productId") != null){
        int prodID = Integer.parseInt(req.getParameter("productId"));
        cartHandler.add(prodID);
    }
    // LOGOUT
    if(req.getParameter("btn-logout") != null){
        if(session.getAttribute("uID") != null) {
            session.removeAttribute("uID");
            resp.sendRedirect("/");
        }
    }

    if(req.getParameter("allieStart") != null){
        String greeting = allieDaoJDBC.getAnswer("greeting");
        playSound.play(greeting);
        Integer react = speechRecognition.listen(allieDaoJDBC, cartHandler);
        if(react == 1){
            resp.sendRedirect("/cart");
        }else if(react == 2){
            resp.sendRedirect("/login");
        }
    }
}

谢谢大家!

1 个答案:

答案 0 :(得分:0)

如果您确定allieStart不为null,则问题必须出在react上 (即react不是1或2。)请尝试添加其他条件,这样可以确保一定会发生。

    if(react == 1){
        resp.sendRedirect("/cart");
    }else if(react == 2){
        resp.sendRedirect("/login");
    }else{
        resp.sendRedirect("/login");
    }