У меня есть вопрос о приоритетах doGet doPost (если они есть).Вот мой класс HelloServlet:
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().println("Hello, World Post!");
}
@Override
public void init() throws ServletException {
System.out.println("Servlet " + this.getServletName() + " has started.");
}
@Override
public void destroy() {
System.out.println("Servlet " + this.getServletName() + " has stopped.");
}
Этот класс сопоставлен с URL-адресом /reeting.Когда я пытаюсь получить доступ к этой странице сейчас, все в порядке.Но когда я меняю методы doPost и doGet, я выдаю сообщение об ошибке: HTTP Status 405 - HTTP-метод GET не поддерживается этим URL.Каждый раз, когда я читаю о doGet и doPost, я предполагаю, что эти методы взаимозаменяемы.Так в чем же проблема с этой версией этих методов?
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().println("Hello, World Post!");
}
Это, конечно, не вызвало никаких исключений, потому что присутствует doGet, но он не будет выполнять никакой работы.Когда я удаляю метод doGet, он выдает исключение.
Подскажите, пожалуйста, что именно происходит в тот момент, когда я использую мой код URL?http://localhost:8080/greeting
Почему клиент просто не может использовать метод doPost для получения данных с сервера, когда doGet полностью отсутствует?
Спасибо!
UPDATE WEB.xmlфайл
<display-name>Hello World Application</display-name>
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.wrox.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/greeting</url-pattern>
</servlet-mapping>