Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaEE与servlet的优缺点_Java_Servlets_Jakarta Ee - Fatal编程技术网

JavaEE与servlet的优缺点

JavaEE与servlet的优缺点,java,servlets,jakarta-ee,Java,Servlets,Jakarta Ee,在一个简单的Servlet实现上使用JavaEE(EJB)的主要原因是什么 我正在开发一个新的项目,主要是一个必须非常快速和可扩展的web服务 很抱歉让您感到困惑,虽然我对Java很有经验,但我对Java Web世界非常陌生,可能不会很好地提出这个问题。Web服务是无状态的吗?如果是这样,我看不到使用成熟的JavaEE服务器比使用像Tomcat或Jetty这样的轻量级服务器有什么真正的优势。您可以使用这两种方法中的任何一种来部署jax-ws实现,并且可以非常轻松地完成所需的工作。如果涉及到某种状

在一个简单的Servlet实现上使用JavaEE(EJB)的主要原因是什么

我正在开发一个新的项目,主要是一个必须非常快速和可扩展的web服务


很抱歉让您感到困惑,虽然我对Java很有经验,但我对Java Web世界非常陌生,可能不会很好地提出这个问题。

Web服务是无状态的吗?如果是这样,我看不到使用成熟的JavaEE服务器比使用像Tomcat或Jetty这样的轻量级服务器有什么真正的优势。您可以使用这两种方法中的任何一种来部署jax-ws实现,并且可以非常轻松地完成所需的工作。如果涉及到某种状态,并且最终希望在多台机器上共享,那么使用JavaEE就可以派上用场


话虽如此,我认为JavaEE根本不会降低性能。应用程序服务器通常需要更长的启动时间,需要更多的管理工作,但一旦它们启动并运行,性能应该是相似的。

如果您的web服务可能需要任何程度的“企业”功能,如按方法安全或事务,请使用EJB

在EJB3中,这实际上一点也不难,只需几个注释,就可以完成了


否则,servlet后面的简单POJO就足够了。

EJB的规范1.x和2.x增加了大多数Web应用程序不需要的复杂性

由于这种复杂性,新框架似乎简化了开发和运行时架构(Hibernate/Spring/其他微容器/其他ORM框架)

EJB的3.x与这些变化相匹配(通过JDO和JPA),现在,将servlet与这些增强的框架或JavaEE与EJB3+一起使用,将得到基本相同的结果


使用Java EE应用程序服务器将为您增加许多管理优势(GUI来管理池、日志、监控、事务等)。如果没有这些优势,您可能会得到相同的结果,但您必须手动完成(编辑配置文件),这似乎不是太成问题,但是,如果你计划为你的webapp配备一名管理员,那么最好使用这个服务器自带的管理工具

servlet是HTTP请求侦听器;他们对其他任何事情都没有反应

如果您在servlet中嵌入了大量逻辑,那么任何其他客户端都无法使用它

用POJO编写应用程序。在没有应用服务器参与的情况下对其进行全面测试。然后再考虑如何打包和部署它。Servlet?EJB?网络服务?还有别的吗?没问题-这些只是打包和部署问题。首先获取您希望在POJO中正常工作的行为


Spring可以为您提供很多选择。我推荐它。

鉴于servlet和web服务都是J2EE规范的一部分,我不能100%确定您在这里要问什么。。。整个事情听起来有点像“HTML的额外开销会导致我的网站性能明显下降吗?与什么相比??有什么要求?这不是一个经过深思熟虑的问题。Servlets是J2EE的一部分……这可能措辞不恰当,但实际上提出了一个很好的问题。实现web服务至少有两种JEE方法,一种是通过servlet公开的POJO,另一种是可以公开web服务接口的EJB。两者都有好处。谢谢奥斯卡,这是关于管理优势的非常好的建议。我同意JEE应用服务器将很好地群集解决方案,但这不是使用它们的唯一原因。通常,Web服务应该是无状态的(或非对话的),因此状态性不是使用JEE的常见驱动因素。我认为,我们将方法级安全性和非琐碎的事务性要求视为实现完整JEE EJB解决方案的更强大驱动力>
应用程序服务器通常需要更长的启动时间
——快进3年,现在应用程序服务器的启动时间大约与之相同。JBossAS7、GlassfishV3、TomEE和Resin都需要一两秒钟的时间。甚至WebLogic现在也只有几秒钟;)“…如果您的web服务可能需要任何程度的“企业”功能,如按方法安全性或事务使用EJB…”-如果您使用的是Spring,则根本不正确。你可以在没有EJB的情况下做这两件事,甚至更多。是的,关于Spring你是对的。您是否同意,从技术上讲,我们可以使用开箱即用的JEE、POJO、servlets来实现Web服务——但对于某些需求,我们可以从Spring中获益?诸如按方法安全性和事务之类的东西会是这样的两个需求吗?现在的EJB几乎都是POJO,POJO+一些注释,它们可以同时具有RMI和Web服务接口。使用Spring(或EJB3;-)之类的工具是一个很好的建议。开放EJB使得在没有WebLogic或WebSphere的情况下运行它们成为可能,但我还是更喜欢Spring。谢谢,我喜欢你的建议,即先从POJO开始,然后再考虑web服务器包。这听起来是一个很棒的计划,很高兴听到将它打包成不同的容器不会太痛苦;他们对其他任何事情都没有反应。这是不正确的-servlet作为一种技术不与任何特定协议绑定。尽管在实践中,大多数servlet用于服务HTTP。