JRE 如何足以让 Tomcat 处理 JSP 文件?为啥不是JDK?
Posted
技术标签:
【中文标题】JRE 如何足以让 Tomcat 处理 JSP 文件?为啥不是JDK?【英文标题】:How can JRE be enough for Tomcat to handle JSP files? Why not JDK?JRE 如何足以让 Tomcat 处理 JSP 文件?为什么不是JDK? 【发布时间】:2011-03-09 03:21:17 【问题描述】:谁能清楚地描述JRE如何处理包含纯JAVA代码的JSP文件?我知道 JSP 文件的字节码没有放在 WAR 文件中。它由编译后的 CLASS 文件和纯 JSP 文件组成。
它在 Tomcat 的 RUNNING.txt 中说 “Apache Tomcat 6.0 需要 Java 2 Standard Edition Runtime Environment (JRE) 5.0 或更高版本。”
请消除我的痛苦。
【问题讨论】:
【参考方案1】:Tomcat 捆绑了 Eclipse 编译器的副本,而不是使用 JDK javac 编译器。它更快(或者至少以前是这样),许可限制更少,并且消除了对完整 JDK 的依赖。
http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html
Eclipse JDT Java 编译器现在是 用于执行JSP java源码 编译
这表明在 Tomcat 5.5 之前,需要完整的 JDK。
【讨论】:
它在哪里?是lib
目录下的ecj*.jar
文件吗?【参考方案2】:
Tomcat 是一个让 JSP 和 Servlet 运行的 Web 容器。 Tomcat 实现 Sun 的Servlet 和JSP 规范。 Tomcat 可以运行编译后的 Java 类文件。为了实现这个目的,它只需要 JRE, 仅此而已。
你知道吗? JSP 也会被转换成 Servlet 代码...
Tomcat 由称为 Catalina(用作 Servlet 容器)和 Jasper(用作 JSP 容器)的 Servlet 和 JSP 执行引擎组成,它将 JSP 代码转换为 Servlet 代码并将其传递给 Catalina 容器。
【讨论】:
没有一个回答这个问题。 JSP 编译成.java
源,然后需要进一步编译成.class
文件。 JRE 无法做到这一点,这是问题的要点。以上是关于JRE 如何足以让 Tomcat 处理 JSP 文件?为啥不是JDK?的主要内容,如果未能解决你的问题,请参考以下文章
使用Tomcat在服务器上部署Java JSP项目(关于Tomcat出现The origin server did not find a current ,找不到JRE_HOME错误)
使用Tomcat在服务器上部署Java JSP项目(关于Tomcat出现The origin server did not find a current ,找不到JRE_HOME错误)