Что такое Java Servlet?

Я прочитал много статей, чтобы понять Java-сервлет, но мне это не удалось.

Не могли бы вы дать краткое введение сервлетов Java (на простом языке). Как что такое сервлет? Каковы преимущества? И все такое.

Я не могу понять разницу между серверными языками программирования (PHP, ASP) и сервлетами.

Ответ 1

Сервлет - это просто класс, который отвечает на конкретный тип сетевого запроса - чаще всего - HTTP-запрос. В основном сервлеты обычно используются для реализации веб-приложений, но также существуют различные структуры, которые работают поверх сервлетов (например, Struts), чтобы получить абстракцию более высокого уровня, чем уровень "здесь HTTP-запрос, запись на этот HTTP-ответ", какие сервлеты обеспечить.

Сервлеты запускаются в контейнере сервлетов, который обрабатывает сетевую сторону (например, анализирует HTTP-запрос, обработку соединения и т.д.). Одним из наиболее известных контейнеров сервлетов с открытым исходным кодом является Tomcat.

Ответ 2

Сервлет в самом ядре - это класс java; который может обрабатывать HTTP-запросы. Как правило, внутренняя мелочь чтения HTTP-запроса и ответа по кабелю берет на себя такие контейнеры, как Tomcat. Это делается так, что в качестве разработчика на стороне сервера вы можете сосредоточиться на том, что делать с HTTP-запросом и ответами, и не беспокоиться о работе с кодом, который имеет дело с сетью и т.д. Контейнер позаботится о таких вещах, как обертывание всего HTTP-ответ и отправить его клиенту (скажем, браузер).

Теперь следующий логический вопрос: кто решает, что должен делать контейнер? И ответ: В мире Java, по крайней мере, он управляется (обратите внимание, что я не использовал слово, управляемое) по спецификациям. Например, спецификации сервлетов (см. Ресурс 2) определяют, что должен делать сервлет. Поэтому, если вы можете написать реализацию спецификации, поздравления, вы только что создали контейнер (технические контейнеры, такие как Tomcat, также реализуют другие спецификации и выполняют сложные вещи, такие как пользовательские загрузчики классов и т.д., Но вы получаете идею).

Предполагая, что у вас есть контейнер, ваши сервлеты теперь являются java-классами, жизненный цикл которых будет поддерживаться контейнером, но их реакция на входящие запросы HTTP будет решаться вами. Вы делаете это, написав, что вы хотите делать в заранее определенных методах, таких как init(), doGet(), doPost() и т.д. Посмотрите на Resource 3.

Вот вам интересное занятие. Создайте простой сервлет, как в Resource 3, и напишите несколько инструкций System.out.println() в его конструкторе (да, вы можете иметь конструктор сервлета), методы init(), doGet(), doPost() и запустить сервлет в tomcat. См. Журналы консоли и журналы tomcat.

Надеюсь, это поможет, счастливое обучение.

Ресурсы

  • Посмотрите, как сервлет HTTP выглядит здесь (пример Tomcat).

  • Servlet Спецификация.

  • Простой сервлет example.

  • Начните читать book онлайн /PDF Он также обеспечивает загрузку всей книги. Может быть, это поможет. если вы только начинаете сервлеты, может быть хорошей идеей прочитать материал вместе с API сервлета. это более медленный процесс обучения, но более полезен для понимания основ.

Ответ 3

В дополнение к вышесказанному и просто указывать на очевидное...

Для многих это слишком очевидно, но для тех, кто привык писать приложения, которые только что запускаются, а затем заканчиваются: сервлет тратит большую часть своего времени на то, чтобы ничего не делать... ожидая отправки чего-то, запроса, а затем отвечая на него. По этой причине сервлет имеет целую жизнь: он инициализируется, а затем ждет, реагируя на все, что его бросает, и затем уничтожается. Это означает, что он должен быть создан (и позже уничтожен) чем-то другим (каркасом), который он запускает в своем потоке или процессе, и что он ничего не делает, если только не просят. А также, что каким-то образом должен быть реализован механизм, посредством которого этот "объект" может "слушать" запросы.

Я предлагаю, чтобы чтение о потоках, процессах и сокетах пролило некоторый свет на это: оно совершенно отличается от того, как работает основное приложение "привет мир".

Можно утверждать, что термин "сервер" или "сервлет" является немного избыточным. Более рациональное и более простое имя может быть "отвечающим".

Ответ 4

Если вы новичок, я думаю, что этот учебник может дать основное представление о Что такое Servlet...

Ниже приведены некоторые ценные пункты из данной ссылки.

Технология сервлета используется для создания веб-приложения, которое находится на стороне сервера и создает динамическую веб-страницу.

Сервлет может быть описан многими способами, в зависимости от контекста.

  • Сервлет - это технология, используемая для создания веб-приложения.
  • Servlet - это API, который предоставляет множество интерфейсов и классов, включая Документации.
  • Сервлет - это интерфейс, который должен быть реализован для создания любых сервлета.
  • Сервлет - это класс, расширяющий возможности серверов и отвечать на входящий запрос. Он может реагировать на любые типы запросы.
  • Сервлет - это веб-компонент, который развертывается на сервере для создания динамическая веб-страница. Ссылка: Здесь.

Ответ 5

Servlet - это серверная технология, которая используется для создания динамической веб-страницы в веб-приложении. На самом деле сервлет - это api, который состоит из группы классов и интерфейсов, которая имеет некоторую функциональность. Когда мы используем Servlet API, мы можем использовать предопределенные функции классов сервлетов и интерфейсов.

Жизненный цикл сервлета:

Веб-контейнер поддерживает жизненный цикл экземпляра сервлета.

1. Загружен класс сервлета

2. Созданный экземпляр сервлета

3. Вызывается метод init()

4. метод службы()

5. destroy() вызывается

Когда запрос поднимается клиентом (браузером), тогда веб-контейнер проверяет, работает ли сервлет или нет, если да, то он вызывает метод service() и дает ответ браузеру.

Если сервлет не запущен, веб-контейнер выполнит следующие шаги.

1. classloader загружает класс сервлета

2. Создает сервлет

3. Инициализирует сервлет

4.Введите метод service()

после обслуживания веб-контейнера запроса ожидают определенное время, в это время, если запрос приходит, тогда он вызывает только метод service(), иначе он вызывает метод destroy().

Ответ 6

Я знаю, что есть много ответов, но после прочтения всех ответов это то, что я получил

сервлетов

Сервлеты - это программы, которые запускаются на веб-сервере или сервере приложений и действуют как средний уровень между запросом, поступающим из веб-браузера или другого HTTP-клиента, а также баз данных или приложений на HTTP-сервере.

Сервлет - это просто класс, который отвечает на конкретный тип сетевого запроса - чаще всего HTTP-запрос.

В основном, сервлеты обычно используются для реализации веб-приложений, но также существуют различные структуры, которые работают поверх сервлетов (например, Struts), чтобы получить абстракцию более высокого уровня, чем "здесь HTTP-запрос, напишите на этот HTTP-ответ уровень, который предоставляют сервлеты.

Сервлеты запускаются в контейнере сервлетов, который обрабатывает сетевую сторону (например, анализирует HTTP-запрос, обработку соединения и т.д.). Одним из наиболее известных контейнеров сервлетов с открытым исходным кодом является Tomcat.

Контейнер позаботится о таких вещах, как обертывание всего объекта HTTP-ответа и отправка его клиенту (скажем, в браузер).

Пакеты javax.servlet и javax.servlet.http предоставляют интерфейсы и классы для написания сервлетов. Все сервлеты должны реализовывать интерфейс Servlet, который определяет методы жизненного цикла. При реализации универсальной службы вы можете использовать или расширять класс GenericServlet, предоставляемый с помощью API Java Servlet. Класс HttpServlet предоставляет методы, такие как doGet и doPost, для обработки HTTP-специфических сервисов.

Здесь - это блог.

Ответ 7

Servlet - это класс java для ответа HTTP-запроса и получения ответа HTTP... когда мы делаем страницу с использованием HTML, тогда это будет статическая страница, чтобы сделать ее динамической, мы используем SERVLET { в простых словах можно понять} Для использования сервлета используется JSP, он использует код и HTML-тег как сам по себе.

Ответ 8

Вы получили ответ на обычный сервлет. Тем не менее, я хочу рассказать вам о чем-то о Servlet 3.0

Что такое Servlet?

Сервлет - это веб-компонент, управляемый контейнером и генерирует динамический контент. Сервлеты - это Java-классы, которые скомпилированы к байтовому коду, который может динамически загружаться и запускаться с помощью Java веб-сервер с технологией или контейнер Servlet.

Servlet 3.0 является обновлением существующей спецификации Servlet 2.5. Servlet 3.0 требуется API платформы Java, Enterprise Edition 6. Servlet 3.0 сфокусирован на расширяемости и веб-каркасе pluggability. Servlet 3.0 предоставляет вам некоторые расширения, такие как простота Разработка (EoD), возможность подключения, асинхронная поддержка и безопасность Улучшения

Простота развития

Вы можете объявить Servlets, Filter, Listeners, Init Params и почти все можно настроить с помощью аннотаций

Pluggability

Вы можете создать подпроект или модуль с web-fragment.xml. Это означает, что он позволяет реализовать функциональные требования, совместимые с подключаемыми модулями независимо друг от друга.

Поддержка Async

Servlet 3.0 обеспечивает возможность асинхронной обработки, для пример: ожидание получения ресурса, создание ответ асинхронно.

Улучшения безопасности

Поддержка проверки подлинности, входа и выхода из системы сервлетов Методы

Я нашел его из Java Servlet Tutorial

Ответ 9

В дополнение к другим объяснениям, здесь приведен конкретный пример того, как выглядит сервлет:

(предположим, что вы отправили GET http://someshop.com/item?id=10)

то

    @WebServlet(name = "ItemServlet")
    public class ItemServlet extends HttpServlet {

        @Inject
        private DatabaseService dbService;

        protected void doGet(HttpServletRequest request, HttpServletResponse response) 
                                                 throws ServletException, IOException {

            // Handle the request
            Long id = Long.valueOf(request.getParameter("id"));

            // Fetch the item, which is NOT the responsibility of a Servlet
            Item item = dbService.findById(id);

            sendResponse(item);
        }

        private void sendResponse(Item item){
            // ....
        }
    }

Ответ 10

Я считаю, что сервлет - это, в основном, класс Java, который действует как средний путь между HTTP-запросом и HTTP-ответом. Скрытность также используется, чтобы сделать вашу веб-страницу динамичной. Предположим, например, если вы хотите перенаправить на другую веб-страницу на сервере, тогда вам нужно использовать сервлеты. Еще одна важная вещь заключается в том, что сервлет может запускаться на локальном хосте, а также в веб-браузере.

Ответ 11

Servlet - это класс java....., когда мы расширяем класс thread до класса java, мы называем tha class потоком. Затем мы можем использовать все функции класса thread. Подобно тому, что мы расширяем HttpServlet до класса java мы называем это сервлетом. Особо то, что мы используем сервлет при разработке веб-приложений...