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

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

можете ли вы дать краткое введение Java-сервлетов (на простом языке). Например, что такое сервлет? Каковы advantges? И все такое.

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

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. См. журналы консоли и журналы tomcat.

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

ресурсы

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


Servlet-это класс 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 в этом файле-

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

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

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

подключения

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

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

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

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

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

Я нашел его в Java Servlet Учебник