Tomcat支持哪些技术?

我阅读了很多关于它支持整个Java EE 6规范的GlassFish应用服务器。 但Tomcat支持哪些?

我知道Tomcat是一个JSP / Servlet容器,但我在Web上看到有关“JSF和Tomcat”,“Hibernate和Tomcat”等的文章。

tomcat可以使用这些技术:EJB,JSF,JPA,Hibernate,Spring等。?

Tomcat作为一个准系统servletcontainer确实只提供了JSP , Servlet , EL和WS API。 但是,您可以自己提供JSF , JSTL , CDI , JPA , Hibernate , Spring等,以及/WEB-INF/lib文件夹中的JAR文件的Web应用程序以及必要时的一些配置文件。

EJB只是一个故事,因为你不能只添加“一些JAR”来实现它,但实际上是的,如果修改服务器核心,你也可以将一个EJB容器放在Tomcat之上。 这也基本上是TomEE所做的。 如果您打算使用Java EE,也可以考虑一下。

也可以看看:

  • Java EE究竟是什么?

我阅读了很多关于它支持整个Java EE 6规范的GlassFish应用服务器。 但Tomcat支持哪些?

Tomcat(自Java EE 5以来不再是Servlet规范的RI)不支持开箱即用的任何 Java EE 6 API。 在其最新版本中,Tomcat 6附带:

  • Servlet 2.5
  • JSP 2.1 / EL 2.1

而GlassFish的“web”部分实现:

  • Java Servlet 3.0
  • JavaServer Faces 2.0
  • JavaServer Pages 2.2 /表达式语言2.2
  • JavaServer Pages的标准标记库(JSTL)1.2

tomcat可以使用这些技术:EJB,JSF,JPA,Hibernate,Spring等。?

您可以通过将它们打包在应用程序中来使用其中一些( 本文有一个很好的总结):

  • EJB 3.1:不,在编写本文时没有独立的EJB 3.1容器(如果你考虑使用EJB,使用真正的Java EE服务器,Tomcat与独立的EJB容器不是等价的,特别是从事务管理器点来看看法)。
  • JSF 2.0和EL 2.2:是的,可能带来一些痛苦
  • CDI 1.0:是的,可能
  • Beanvalidation1.0:是的,可以使用JSF 2.0和JPA
  • JPA 2.0:是的,可能,但您必须自己获取EntityManager并自己管理事务(或使用像Spring这样的第三方容器)。

但是让我坚持认为:无论你添加到Tomcat,你都不会得到相当于Java EE 6的容器,即使我们只是与Web Profile实现(如GlassFish v3 Web Profile )进行比较:没有EJB 3.1 Lite,没有JTA 1.1,没有无描述符的应用程序等。

如果您有选择,我的建议是使用GlassFish v3 Web Profile并使用Java EE 6。

Tomcat不是EJB容器,因此您应该使用完整的JavaEE 6服务器(例如Glassfish,Websphere,Weblogic等)。

Tomcat可以使用Spring / Hibernate,因为这只需要相关的jar和配置/上下文定义。 同样适用于JSF。

JPA是一个抽象规范,Hibernate(和其他人一样)是这个规范的实现,因此答案是“是的,它可以在Tomcat上实现”。

Tomcat支持取决于它的版本:

 JSTL 1.0 : Servlet 2.3 : JSP 1,2 (tomcat 4) JSTL 1.1 : Servlet 2.4 : JSP 2.0 (tomcat 5) JSTL 1.2 : Servlet 2.5 : JSP 2.1 (tomcat 6) 

默认情况下,tomcat没有提供EJB支持已经得到了解答。 EasyBeans涵盖了这个问题。

要在tomcat6中包含JSF 1.2,有一个教程

编辑:不幸的是,没有单一的依赖(/兼容)矩阵。 JPA是一个API,由ig Hibernate实现。 找出哪些版本匹配应该不难。 是的,它们可以与Tomcat(除了)Spring一起使用。

我发现tomcat页面上的表很有帮助。 页面: http : //tomcat.apache.org/whichversion.html