gpt4 book ai didi

Servlet 容器中的 Java Web 应用程序与独立的

转载 作者:IT老高 更新时间:2023-10-28 21:06:41 25 4
gpt4 key购买 nike

构建小型 Java Web 应用程序以在 Servlet 容器(如 Tomcat)中运行与构建具有内置 Web 服务器的独立 Java 应用程序并在反向代理后面运行有什么优势?

我已经使用 Java 大约一年了。我注意到启动 Tomcat 需要时间,而且由于类加载器问题,并不总是可以进行热重新部署。 Servlet API 对我来说似乎有些令人费解,尤其是从配置和 RESTful 设计的角度来看(它并不完全支持)。

另一方面,我注意到我的 IDE 可以以闪电般的速度编译和运行独立应用程序。为反向代理配置 Apache 是小菜一碟,嵌入式 Jetty 似乎可以处理任何我可以扔给它的东西。当我可以使用 ReSTLet、Wicket 等时,我不需要 Servlet。能够更好地了解我的应用程序是如何工作的(因为它没有与庞大的应用程序服务器集成)感觉很强大。堆栈跟踪更短。下载大小更小。最终用户配置更容易。我猜性能可能会更好,因为涉及的软件层更少。

但是,我想起了那句话,听起来好得令人难以置信。所以我的问题是,为什么我不想让我的网络应用程序独立? Servlet 容器为我和/或我的最终用户提供了哪些我们真正需要但不知道的东西?

最佳答案

这里有两个单独的问题:

  1. 我应该使用嵌入式服务器,还是部署到容器中?

    我认为你不应该看到一种或另一种方式的巨大差异。还有更多的代码启动 Jetty 服务器以编程方式和配置更容易以编程方式完成。即使 IDE 支持 Web 应用程序配置和部署是越来越好,还是越来越差比独立应用程序(根据定义,这有点像,因为有很多东西要支持)。

    另一方面,应用服务器提供你有一些不错的好处,比如内置管理,内置运行能力作为服务等。

    你甚至可以使用混合方法:使用嵌入式服务器在本地开发,然后部署到生产中的容器。但那是有点奇怪:如果你通过制作正确的WAR文件的麻烦,IDE 应该真的能够处理部署到容器中足够了。

    顺便说一句,你有问题很奇怪热部署; Tomcat不应该有问题,除非你遇到了一些奇怪的事情角落案例...

  2. 我应该使用 Servlet API 吗?

    这是与#1 正交的。你可以很好地嵌入 Jetty 和实现 Servlet。你也可以在 Tomcat 中使用 ReSTLet API通过一个 ServerServlet http://www.restlet.org/documentation/1.0/faq#02 .

    我个人认为 Servlet API直截了当。你得到好东西,比如并发和状态管理。我不太清楚这意味着 RESTful 设计不支持,但如果 R​​eSTLets更好地满足您的要求,然后用那个...

关于Servlet 容器中的 Java Web 应用程序与独立的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4589307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com