5 ответов:
сервлет-контейнер поддерживает только API сервлета (включая JSP, JSTL).
сервер приложений поддерживает весь JavaEE-EJB, JMS, CDI, JTA, API сервлетов (включая JSP, JSTL) и т. д.
можно запустить большинство технологий JavaEE на сервлет-контейнере, но вы должны установить автономную реализацию конкретной технологии.
вообще говоря, контейнер сервлета более или менее ограничивается реализацией спецификации сервлета J2EE. Кроме того, он сосредоточен на среде выполнения, а не на предоставлении дополнительных инструментов.
напротив, полноценный сервер приложений реализует весь стек J2EE; кроме того, он поставляется со всеми инструментами enterprisey и возможностями интеграции. Сервер приложений обычно имеет расширенные интерфейсы администрирования, поддерживает кластеризацию и другие особенности, используемые в основном в разработке систем высокого класса.
для новичка, вероятно, лучше остаться с простым контейнером сервлета, так как кривая обучения там гораздо менее крутая.
Edit
@Apache Fan: это зависит от специфики вашей ситуации, как существующие системы и планы на будущее среди прочего. Я не думаю, что здесь применим общий подход к блок-схеме.
выбор платформы обычно делается путем взвешивания конкретных требований с учетом непосредственных знаний рассматриваемых систем.
однако вопрос не дает никаких подсказок относительно того, каковы критерии оценки. Должен ли он быть открытым исходным кодом? Необходима ли круглосуточная поддержка поставщиков? С какой корпоративной средой должна интегрироваться система? Являются ли лицензионные сборы проблемой? Любые обязательные технологии или инструменты? Так далее.
Не зная выше, это в значительной степени стрельба в темный.
в основном сервер приложений в контексте Java EE-это программное обеспечение, установленное на сервере и реализующее одну спецификацию Java EE (например, Java EE 7). Это означает, что такое программное обеспечение (сервер приложений)должно иметь возможность запускать приложение Java EE.
Java EE определяет 4 домена, так называемые тара:
- контейнер апплета,
- контейнер клиента приложения,
- веб-контейнера, и
- контейнер EJB.
два контейнера являются частью сервера приложений (EJB и веб-контейнер) и два других являются частью клиентского компьютера.
JBoss и Weblogic-это серверы приложений, Tomcat и Jetty-это веб-контейнер. Вот почему JBoss и Weblogic могут иметь дело с большим количеством технологий, чем веб-контейнер. Сервер приложений может управлять EJB.
контейнер сервлетов не подходит выражение для квалифицированного Tomcat и Jetty, потому что это более ограничительно. Tomcat также может выполнять JSP и JSF, а не только сервлеты.
afaik, websphere и jboss полностью совместимы с J2EE-сервером, который может работать за пределами сервлетов, таких как EJB, тогда как Tomcat-это просто контейнер сервлетов, и вы не можете запускать на нем EJBs.
в терминах непрофессионала : веб-сервер-это: обработка HTTP-запросов (обычно из браузеров).
контейнер сервлетов (например, Tomcat) означает: Он может обрабатывать сервлеты и JSP.
сервер приложений (например, GlassFish) означает: *Он может управлять приложениями Java EE (обычно как сервлет/JSP, так и EJBs).
для новичка, вероятно, лучше остаться с простым контейнером сервлетов.
Comments