В нижней части этого сервлета вы пересылаете запрос другому сервлету:
RequestDispatcher dispatcher = getServletConfig().getServletContext().getRequestDispatcher("/MailServiceapply");
dispatcher.forward(req, resp);
Это не только плохой подход, конечно, потому что вы ранее записали данные в ответ HTTP вservlet, и вы рискуете IllegalStateException
(запись в ответ должна осуществляться в JSP), но для этого также необходимо, чтобы в рассматриваемом сервлете также был реализован doGet()
.Ошибка, с которой вы столкнулись, предполагает, что в этом сервлете почтовой службы реализован только doPost()
.
Вам необходимо добавить метод doGet()
в сервлет почтовой службы и использовать RequestDispatcher#include()
для его вызова.
dispatcher.include(req, resp);
Само собой разумеется, что это все еще плохой подход.Вы бы предпочли реорганизовать логику почтового кода в отдельный Java-класс, который затем импортируется и вызывается в обоих сервлетах и помещает всю логику представления в JSP.