Я пытаюсь перейти к другим JSP от нажатия кнопок в моем индексном (основном) jsp через сервлет, где я проверяю, была ли нажата кнопка, и перехожу к этому сервлету в моем doGet. Когда я открываю браузер и нажимаю на кнопки, я получаю сообщение об ошибке: ОШИБКА HTTP 405 Проблема с доступом к /lab02a_dhilbert1/index. Причина:
HTTP method POST is not supported by this URL
Я не уверен, в чем причина этого, и мне нужно перейти на другие страницы через doGets.
У меня это работало так, как оно настроено в отдельном doPost, но предполагается, что это должно быть сделано в doGet. Я пытался исследовать этот вопрос и ничего не нашел.
//сервлет
@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>
Индексный jsp должен отправлять нажатия кнопок сервлету, а затем сервлет должен вызывать правильный jsp в зависимости от того, какая кнопка была нажата.




Для почтового запроса вы должны написать код в
@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);
}
}
Надеюсь, это будет работать идеально для почтового запроса.
ваш метод формы должен соответствовать методу сервлета. пример метода POST = doPost и метода GET = doGet