【发布时间】:2015-01-13 05:45:41
【问题描述】:
我之前使用过 Apache Web 服务器,使用 PHP、Ruby 并提供静态 JavaScript/HTML 页面。
我对 Tomcat 感到困惑的一件事基本上是为什么首先存在 Tomcat,而不是使用安装了 JVM 的 Apache? 为什么所有这些流行的语言Java需要它自己的专门容器,即Tomcat吗?
如果想使用 PHP 来提供内容,只需在 Apache 服务器上安装 PHP,然后当用户访问 mysite.com/mypage.php 时就会发生这种情况:
- Apache服务器获取对应文件mypage.php
- 看到PHP,使用PHP解释器处理页面
- 返回结果
使用 Java 时为什么不一样?
在我看来它应该是这样的:只需在 Apache 服务器上安装 Java 和 JVM,然后当用户访问 mysite.com/mypage 时就会发生这种情况:
- Apache服务器获取对应文件
- 看到Java,使用JVM编译/处理页面
- 返回结果
是不是因为Java文件需要编译,每次请求都重新编译没有意义?那么为什么不将请求映射到正确的.class 文件呢?
对于那些对 Tomcat 有信心的人来说,这可能听起来很荒谬,但正如您所见,我很遗憾不明白。
【问题讨论】:
-
为什么存在如此多的事物,以致于大部分或完全复制另一事物?
-
你应该看看Apache和Tomcat的区别:stackoverflow.com/questions/30632/…
-
真正的答案是存在 Java Servlet 规范,并且 something 需要实现该规范以允许基于 Java servlet 的 Web 应用程序运行。 Apache httpd 绝对不是这样做的正确位置。 PHP 是自托管的,而 Java 不直接提供这些服务。 PHP 和 Java(servlet)之间的比较不应该是“所有 PHP 需要的是磁盘上的脚本,而 Java 需要所有这些垃圾”,而是“PHP 包含所有这些垃圾,而 Tomcat 为 Java 提供了同样的垃圾”。
标签: java php apache tomcat jvm