Что такое Java-сервлет?


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

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

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

10 197

10 ответов:

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

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

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

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

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

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

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

ресурсы

  1. посмотрите, как выглядит http сервлет здесь(Tomcat образец.)

  2. сервлет спецификация.

  3. Простой Сервлет пример.

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

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

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

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

можно утверждать, что термин "сервер" или "сервлет" - это немного перебор. Более рациональным и простым именем может быть"ответчик".

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

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

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

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

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

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

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

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

1 . Класс сервлетов загружено

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

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

4 . вызов метода service ()

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

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

когда сервлет не запустив затем web-контейнер выполните следующие действия..

1. загрузчик классов загрузите класс сервлета

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

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

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

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

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

сервлет работает как посредник между клиентом и сервером. По мере того как модули сервлета держат побежать на сервере, они могут получить и прореагировать к требованиям сделанным клиентом. Объекты спроса и реакции сервлета предлагают полезный способ борьбы с помощью HTTP запрашивает и отправляет информацию о содержимом обратно клиенту.

поскольку сервлет координируется с диалектом Java, он дополнительно имеет все основные моменты Java, например, высокую подвижность, автономность этапа, безопасность и доступность базы данных Java.

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

что такое сервлет?

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

  • в парадигме запрос/ответ веб-сервер может обслуживать только статические страницы для клиента

  • для обслуживания динамических страниц нам требуются сервлеты.
  • сервлет-это не что иное, как программа Java
  • Это Java программа не имеет основного метода. Это только некоторые методы обратного вызова.
  • как веб-сервер взаимодействует с сервлетом? Через контейнер или двигатель сервлета.
  • сервлет живет и умирает в веб-контейнере.
  • веб-контейнер отвечает за вызов методов в сервлеты. Он знает, какие методы обратного вызова имеет сервлет.

поток запроса

  • клиент отправляет HTTP-запрос в Web сервер
  • веб-сервер пересылает этот HTTP-запрос в веб-контейнер.
  • поскольку сервлет не может понять HTTP, его программа Java, он понимает только объекты, поэтому веб-контейнер преобразует этот запрос в действительный объект запроса
  • веб-контейнер прядет нить для каждого запроса
  • вся бизнес-логика идет внутри методов обратного вызова doGet() или doPost() внутри сервлетов
  • сервлет создает объект ответа Java и отправляет его контейнер. Он преобразует это в HTTP-ответ снова, чтобы отправить его клиенту

как контейнер узнает, какой клиент сервлета запросил?

  • есть файл под названием web.xml
  • это главный файл для веб-контейнера
  • У вас есть информация о сервлете в этом файле-

    • сервлеты
      • Servlet-name
      • сервлет-класс
    • сервлет-сопоставление - путь, как / логин или / уведомления отображается здесь в
      • Servlet-name
      • url-pattern
    • и так далее
  • каждый сервлет в веб-приложении должен иметь запись в этот файл

  • Итак, этот поиск происходит как-url-pattern - > servlet-name - > servlet-class

Как "установить" сервлеты? * Ну, сервлет объекты, унаследованные из библиотеки - класса javax.сервлет.* . Tomcat и Spring можно использовать для использования этих объектов в соответствии с прецедентом.

Ref-смотрите это на 1.5 x -https://www.youtube.com/watch?v=tkFRGdUgCsE . Это имеет удивительное объяснение.

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

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

что такое первый сервлет?

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

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

простота разработки

вы можете объявлять сервлеты, фильтры, прослушиватели, параметры инициализации и почти все можно настроить с помощью аннотации

подключения

вы можете создать подпроект или модуль с веб-фрагментом.XML. Оно означает, что это позволяет реализовать подключаемые функциональные требования независимо.

Поддержка Асинхронного

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

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

поддержка безопасности сервлетов аутентификации, входа и выхода из системы методы

Я нашел его в Java Servlet Tutorial