[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-v-chem-otlichiya-genericservlet-i-httpservlet":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},542,"v-chem-otlichiya-genericservlet-i-httpservlet",13,"servlety","Сервлеты","🖧","В чем отличия GenericServlet и HttpServlet","`GenericServlet` — абстрактный класс, реализующий интерфейс `Servlet` и предоставляющий протоколонезависимую базовую реализацию сервлета. `HttpServlet` — абстрактный класс, наследующий `GenericServlet` и добавляющий поддержку HTTP-протокола.\n\n| Критерий | GenericServlet | HttpServlet |\n|----------|---------------|-------------|\n| Протокол | Любой (протоколонезависимый) | Только HTTP |\n| Основной метод | `service(ServletRequest, ServletResponse)` | `doGet()`, `doPost()`, `doPut()`, `doDelete()` и др. |\n| Практическое использование | Практически не используется | Основной класс для создания сервлетов |\n\nНа практике `GenericServlet` не используется, потому что веб-приложения работают по HTTP. `HttpServlet` предоставляет удобную маршрутизацию по типу HTTP-метода через паттерн Template Method: метод `service()` определяет тип запроса и вызывает соответствующий `doXxx()`.\n\n> **На собеседовании:** достаточно сказать, что `GenericServlet` — протоколонезависимая база, а `HttpServlet` — HTTP-специализация. В реальных проектах всегда наследуют `HttpServlet`.","","junior",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"В чем отличия GenericServlet и HttpServlet — Gymterview","`GenericServlet` — абстрактный класс, реализующий интерфейс `Servlet` и предоставляющий протоколонезависимую базовую реализацию сервлета. `HttpServlet` — абстра","`GenericServlet` — абстрактный класс, реализующий интерфейс `Servlet` и предоставляющий протоколонезависимую базовую реа",[15,13],"`GenericServlet` — абстрактный класс, реализующий интерфейс `Servlet` и предоставляющий протоколонезависимую базовую реализацию сервлета. `HttpServlet` — абстрактный класс, наследующий `GenericServlet` и добавляющий поддержку HTTP-протокола.",true]