[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-pochemu-httpservlet-klass-obyavlen-kak-abstraktnyy":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},543,"pochemu-httpservlet-klass-obyavlen-kak-abstraktnyy",13,"servlety","Сервлеты","🖧","Почему HttpServlet класс объявлен как абстрактный","`HttpServlet` объявлен абстрактным, потому что его методы `doGet()`, `doPost()` и другие по умолчанию возвращают HTTP 405 (Method Not Allowed). Класс предоставляет только каркас обработки HTTP-запросов, а конкретная бизнес-логика должна быть реализована в подклассе.\n\nЭто применение паттерна Template Method: `service()` определяет алгоритм обработки (определить тип запроса, вызвать нужный метод), а `doGet()`\u002F`doPost()` — точки расширения. Если бы `HttpServlet` не был абстрактным, разработчик мог бы случайно создать его экземпляр и получить сервлет, отвечающий 405 на все запросы.\n\nТехнически в `HttpServlet` нет абстрактных методов — ключевое слово `abstract` в объявлении класса используется как защитный механизм, принуждающий разработчика создать подкласс и переопределить нужные методы.\n\n> **На собеседовании:** ключевое слово — Template Method pattern. `HttpServlet` не содержит абстрактных методов, но объявлен abstract намеренно, чтобы предотвратить создание «пустого» сервлета.","","junior",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Почему HttpServlet класс объявлен как абстрактный — Gymterview","`HttpServlet` объявлен абстрактным, потому что его методы `doGet()`, `doPost()` и другие по умолчанию возвращают HTTP 405 (Method Not Allowed). Класс предоставл","`HttpServlet` объявлен абстрактным, потому что его методы `doGet()`, `doPost()` и другие по умолчанию возвращают HTTP 40",[15,13],"`HttpServlet` объявлен абстрактным, потому что его методы `doGet()`, `doPost()` и другие по умолчанию возвращают HTTP 405 (Method Not Allowed). Класс предоставляет только каркас обработки HTTP-запросов, а конкретная бизнес-логика должна быть реализована в подклассе.",true]