Попытка перейти на другой jsps из сервлета в зависимости от нажатия кнопки в форме в индексе jsp - PullRequest
0 голосов
/ 08 февраля 2019

Я пытаюсь перейти на разные JSP от нажатий кнопок в моем индексном (основном) jsp через сервлет, где я проверяю, нажата ли кнопка, и иду к этому сервлету в моем doGet.Когда я открываю свой браузер и нажимаю на кнопки, я получаю сообщение об ошибке: HTTP ERROR 405 Проблема доступа к / lab02a_dhilbert1 / index.Причина:

HTTP method POST is not supported by this URL

Я не уверен, в чем причина этого, и мне нужно перейти на другие страницы через doGets.

У меня все получилось так, как оно работаетустанавливается в отдельном doPost, но предполагается, что это делается в doGet.Я пытался исследовать эту проблему и не мог найти ничего.

// servlet

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    //go to correct jsp depending on button press
    if (req.getParameter("addNumbers") != null) {
        System.out.println("Add Numbers Servlet: doGet");
        req.getRequestDispatcher("/_view/addNumbers.jsp").forward(req, resp);
    }
    else if (req.getParameter("multiplyNumbers") != null) {
        System.out.println("Multiply Numbers Servlet: doGet");
        req.getRequestDispatcher("/_view/multiplyNumbers.jsp").forward(req, resp);
    }
    else if (req.getParameter("guessingGame") != null) {
        System.out.println("Guessing Game Servlet: doGet");
        req.getRequestDispatcher("/_view/guessingGame.jsp").forward(req, resp);
    }
    else {
        System.out.println("Index Servlet: doGet");
        req.getRequestDispatcher("/_view/index.jsp").forward(req, resp);
    }   
}

// jsp

<body>
    <form action="${pageContext.servletContext.contextPath}/index" method="post">
        This is the index view jsp 
        <br><input type="Submit" name="addNumbers" value="Add Numbers!!">
        <br><input type="Submit" name="multiplyNumbers" value="Multiply Numbers!!">
        <br><input type="Submit" name="guessingGame" value="Guessing Game!!">
    </form>
</body>

index jsp должен отправить нажатие кнопки сервлету, а затем сервлет должен вызвать правильный jsp в зависимости от того, какая кнопка была нажата.

1 Ответ

0 голосов
/ 08 февраля 2019

Для отправки запроса вы должны написать код в

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    //go to correct jsp depending on button press
    if (req.getParameter("addNumbers") != null) {
        System.out.println("Add Numbers Servlet: doGet");
        req.getRequestDispatcher("/_view/addNumbers.jsp").forward(req, resp);
    }
    else if (req.getParameter("multiplyNumbers") != null) {
        System.out.println("Multiply Numbers Servlet: doGet");
        req.getRequestDispatcher("/_view/multiplyNumbers.jsp").forward(req, resp);
    }
    else if (req.getParameter("guessingGame") != null) {
        System.out.println("Guessing Game Servlet: doGet");
        req.getRequestDispatcher("/_view/guessingGame.jsp").forward(req, resp);
    }
    else {
        System.out.println("Index Servlet: doGet");
        req.getRequestDispatcher("/_view/index.jsp").forward(req, resp);
    }   
}

Надеюсь, он отлично подойдет для отправки запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...