Разница между веб-сервером и контейнером сервлетов
В чем разница между "Веб-сервером" и "Контейнером сервлетов"?
В общем, все веб-серверы тоже являются сервлетными (веб-) контейнерами или наоборот?
Я использую Apache Tomcat для JSP и Apache для PHP, но не могу понять точную разницу между этими двумя, в чем именно заключается разница?
Я попытался найти предыдущие темы, но не смог найти многого.
Спасибо! :-)
3 answers
Контейнер сервлетов - это Веб-сервер, который должен иметь возможность запускать сервлеты Java.
Веб-сервер, с другой стороны, является более широким термином, включающим все программное обеспечение, работающее и взаимодействующее по протоколу HTTP.
В соответствии с этими определениями:
- Все контейнеры сервлетов являются Веб-серверами
- Не все веб-серверы являются контейнерами сервлетов . Т.Е. HTTP-сервер Apache не может запускать сервлет Java напрямую.
HTTP - это транспортный протокол гипертекста. И Apache, и Tomcat будут принимать HTTP-запросы.
Разница в том, что Apache - это ПРОСТО HTTP-сервер. Он обслуживает статические HTML-страницы.
В Tomcat есть прослушиватель HTTP, но в дополнение к этому у него есть механизм сервлета/JSP. Он может обслуживать как статические, так и динамические HTML-страницы.
Вы можете использовать Tomcat без Apache.
Apache не может обрабатывать запросы сервлетов/JSP без подключенного механизма сервлетов/JSP поверх всего этого
ServletContext - это объект, специфичный для приложения, тогда как ServletConfig - это объект, специфичный для сервлета.. Объект ServletConfig создается, когда веб-контейнер создает экземпляр соответствующего сервлета