У меня есть сервлет с методом doPost:Servlet проблема с почтовым методом
package web;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class BeerSelect extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Beer Selection Advice<br>");
String c = request.getParameter("color");
out.println("<br>Got beer color " + c);
}
}
И я использую этот form.html:
<html><body>
<h1 align="center">Beer Selection Page</h1>
<form action="SelectBeer.do" method="POST">
<table>
<tr>
<td>Select beer characteristics
Color:
<select name="color" size="1">
<option value="light"> light </option>
<option value="amber"> amber </option>
<option value="brown"> brown </option>
<option value="dark"> dark </option>
</select>
<br><br>
<center>
<input type="SUBMIT">
</center>
</td>
</tr>
</table>
</form>
</body></html>
С моей web.xml все в порядке. A имеет корректный сервлет. Но когда я запускаю его, в браузере это ошибка - HTTP-метод GET не поддерживается этим URL-адресом
Я уничтожаю метод POST с помощью GET, тогда у меня нет никаких ошибок, но сервлет не работает правильно! Нужно ли мне всегда делать в сервлете? И как его использовать, если мне это не нужно? Я новичок в программировании, так что это просто пример того, что я пытаюсь понять. Я буду полностью благодарен, если кто-нибудь сможет мне это объяснить.
web.xml:
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>Ch3 Beer</servlet-name>
<servlet-class>web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch3 Beer</servlet-name>
<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
</web-app>
Проблема с именем Servlet. Это «BeerSelect», и вы звоните, как SelectBeer.do Измените его на BeerSelect.do –
Как вы могли это знать? Он не показывал xml-конфигурацию веб-сервлетов. Вы можете иметь класс с именем BeerSelect и сопоставить его с SelectBeer.do –
Да. Я показал, как сказал Джастин. Это не проблема. – Racoon