Это ответ по умолчанию для реализации по умолчанию HttpServlet#doGet()
.Это означает, что метод doGet()
неправильно является @Override
n или явно вызывается.
Вы правильно сделали @Override
метод doGet()
, но вы все еще явно вызываете методреализация по умолчанию по непонятной причине.
super.doGet(req, resp);
Избавьтесь от этой строки, и эта проблема исчезнет.
HttpServlet
в основном следует шаблонному методу шаблона , где всеНе переопределенные методы HTTP возвращают эту ошибку HTTP 405 «Метод не поддерживается».Когда вы переопределяете такой метод, вы должны , а не вызывать super
метод, потому что в противном случае вы все равно получите ошибку HTTP 405.Та же самая история продолжается для вашего doPost()
метода.
Кстати, это также относится к service()
, но это технически не вредит этой конструкции, так как вам нужно , чтобы позволитьреализация по умолчанию выполняет надлежащие методы.На самом деле, весь метод service()
вам не нужен, вы можете просто удалить весь метод из вашего сервлета.
super.init();
также не нужен.Это необходимо только при переопределении init(ServletConfig)
, потому что в противном случае ServletConfig
не будет установлен.Это также явно , упомянутое в javadoc .Это единственный метод, требующий вызова super
.
Не связанный с конкретной проблемой, порождая поток в сервлете, как это, плохая идея.Для правильного подхода обратитесь к Как запустить фоновую задачу в веб-приложении на основе сервлетов?