2014-01-17 2 views
0

У меня есть сервлет с методом 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> 
+1

Проблема с именем Servlet. Это «BeerSelect», и вы звоните, как SelectBeer.do Измените его на BeerSelect.do –

+0

Как вы могли это знать? Он не показывал xml-конфигурацию веб-сервлетов. Вы можете иметь класс с именем BeerSelect и сопоставить его с SelectBeer.do –

+0

Да. Я показал, как сказал Джастин. Это не проблема. – Racoon

ответ

0

код, кажется, хорошо, если вы звоните неправильный URL в виде HTML. Отправьте свой web.xml, который может дать нам решение

+0

Я добавил его сейчас :) – Racoon

+0

Можете ли вы попробовать запустить HTML в другом браузере, это может быть случай плохого кэша – user2154424

+0

такой же eroor :(:( – Racoon

Смежные вопросы