У меня есть класс сервлетов, который я создал для обработки функций, которые я не хочу повторять на каждом имеющемся сервлете.Я все еще работаю над этим (то есть он по-прежнему загружает только index.jsp, а не другие файлы).
public class MyServlet extends HttpServlet {
public MyServlet () {
super();
}
public void loadView (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
response.setContentType("text/html;charset=UTF-8");
System.out.println("MyServlet::LoadView() success");
dispatcher.forward(request, response);
}
}
Мой сервлет выглядит следующим образом
@WebServlet(name = "EditServlet", urlPatterns = {"/content/edit"})
public class EditServlet extends Library.MyServlet {
public EditServlet () {
super();
}
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("EditServlet loaded");
}
}
Однако я не могучтобы скомпилировать мой код:
SEVERE: Exception while deploying the app [ContentManagement] : (class: contentmanagement/content/EditServlet, method: <init> signature: ()V) Constructor must call super() or this()
update
Хорошо, удалив void
из моих конструкторов и вызвав super();
, вы получили часть must call first
, но он все еще говорит, что мне нужно позвонить в супер, несмотря на то, что он уже вызывается.
update
Я не понимаю ответы ниже .... они продолжаютговоря, чтобы поместить super()
в конструктор, когда мои примеры уже показывают, что делается, И это первая строка кода.Любой другой совет будет оценен.
Есть мысли?
Теперь это не проблема.Я не знаю, что решило эту проблему, но с несколькими изменениями и перестройкой приложения с нуля я больше не испытываю эту проблему