最近我开始学习Java EE和相关技术,有些概念让我感到困惑。在某处我读到,无论何时构建Java EE应用程序,都必须使用容器。
目前,我正在学习Spring框架,并试图用它来构建一个小应用程序来实践。现在,我不确定我是否必须使用容器(比如Tomcat),或者它取决于我正在构建的应用程序,我需要一个容器。
如果它取决于正在构建的应用程序,那么有哪些因素可以帮助决定是否应该使用容器?
答案 0 :(得分:6)
Puuhhh,这是一个非常大的问题,没有简单的答案。但至少我会尽力解释自己的意见:
容器为您提供功能。这样的功能可以处理Web请求并将它们分发给servlet - 在这种情况下,我们称它们为servlet容器(例如Tomcat或Jetty)。
但是容器也可以提供其他东西,例如他们可以提供用户身份验证,日志记录或与数据库的连接。大多数容器(例如Tomcat)会做多个这样的事情(例如Tomcat就是我提到的所有内容)。有些容器比其他容器更多,例如JBoss可以做的远不止Tomcat。
然而,有一个权衡:如果你使用一个简单的容器(如Tomcat),你需要自己做很多事情或者使用其他框架(比如Spring)。但是如果你使用一个功能强大的容器,你必须非常了解容器,并且你的应用程序迟早会依赖这个混凝土容器的可能性很高。
关键是,使用容器不是强制性的。这是一个决定。有些人会争论它,有些人反对它。但是根据您阅读的书籍,已经做出了这个决定(例如,J2EE需要一个J2EE容器,以及它是如何工作的。)
多年前,趋势是使用尽可能多的强大(J2EE)容器。恕我直言,今天的趋势是使用更小,更轻便的解决方案。大多数开发人员现在更愿意使用Tomcat服务器而不是JBoss服务器。
虽然J2EE需要一个容器,但还有其他框架/技术支持Web应用程序的开发,而不需要任何外部容器。此类框架为Play!或Spark Java。
如果您不熟悉容器和Spring,请注意不要混淆。您将使用Spring开发的大多数应用程序都是Web应用程序,它们将部署到servlet容器中。这很常见。但春天并没有继续这样做。您也可以在没有这样的容器的情况下使用Spring,例如开发桌面应用程序。但是如果你想开发一个Web应用程序,那么Java方法就是使用一个servlet容器。
答案 1 :(得分:3)
如果您的应用程序使用servlet,则您需要一个容器来处理请求。 Tomcat是一个非常受欢迎的选择。
我预计您的下一个主题将涵盖""应用服务器"与"容器。"
答案 2 :(得分:-1)
有两个容器。一种是用于运行Web应用程序的Web容器(IIS,Apache),另一种是用于运行企业应用程序的“应用程序容器”。
Web应用程序=使用HTML,XML,CSS和JSP开发的应用程序
企业应用程序=开发的应用程序除了使用HTML和XML外,还使用JAVA,J2E和Serverlet。