Относительный URL-адрес действия формы, вероятно, неверен. Удалите начальную косую черту /
, чтобы она стала:
<form method="POST" action="SelectColor.do">
В противном случае он станет относительным к корню домена. Начинающие часто создают веб-проекты с контекстным именем, например, http://localhost:8080/contextname/page.jsp
. Сервлет будет доступен по http://localhost:8080/contextname/servleturlpattern
. Таким образом, в перспективе JSP действие формы должно быть action="servleturlpattern"
. Но если вы добавите ведущий /
, то он фактически будет указывать на http://localhost:8080/servleturlpattern
, которого вообще не существует.
Тем не менее, я настоятельно рекомендую вам сначала пройтись по приличной книге или учебнику по HTML. Ваш HTML забит синтаксическими ошибками, и вы также используете элемент <center>
, который устарел с 1998 года. На w3schools.com есть базовое руководство по HTML. На w3.org есть валидатор HTML. Далее есть много статей о написании семантического HTML .
Что касается JSP / Servlets, я знаю, что вы изучаете, но на самом деле вы не должны использовать Servlets для вывода HTML. JSP предназначен для этого. Вам нужно перенаправить запрос на страницу результатов JSP и получить доступ к данным с помощью EL.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Do some business logic here? Then forward to some result JSP page.
request.getRequestDispatcher("/WEB-INF/result.jsp").forward(request, response);
}
JSP должен выглядеть следующим образом:
<!doctype html>
<html lang="en">
<head><title>Result</title></head>
<body>
Beer Selection ADvice<br>
<br>Got beer color ${param.color}
</body>
</html>
${param.color}
- это язык выражений , и эта конкретная строка на самом деле вроде out.print(request.getParameter("color"))
за кадром.
Если вы вообще не выполняете никакой логики постобработки в сервлете (сохранение в БД, выполнение некоторой бизнес-логики / проверки и т. Д.), То на самом деле сервлету вообще не нужен;)
Чтобы узнать больше о JSP / Сервлетах, я могу порекомендовать вам Учебники Марти Холла по Coreservlets .