【问题标题】:Does Tomcat implement or run the Java Servlet and the JavaServer Pages (JSP) specifications?Tomcat 是否实现或运行 Java Servlet 和 JavaServer Pages (JSP) 规范?
【发布时间】:2014-05-08 09:39:01
【问题描述】:

我正在学习 Apache Tomcat,但我不理解下一行中的术语实现。我在想 Tomcat 运行 Java Servlet 和 JavaServer Pages (JSP)。

Tomcat 实现了 Sun Microsystems 的 Java Servlet 和 JavaServer Pages (JSP) 规范

Tomcat 是否实现运行 Java Servlet 和JavaServer Pages (JSP)?

【问题讨论】:

  • 很抱歉,您写这个问题的方式很难理解..
  • "Tomcat 实现了来自 Sun Microsystems 的 Java Servlet 和 JavaServer Pages (JSP) 规范" 上述语句是什么意思?
  • Tomcat 是一个 servlet 容器。 Servlet 在 servlet 容器中运行。 JSP 是 servlet。如果这不能回答你的问题,那么什么都不会。
  • 是的,我明白了,但上述声明我无法得到。 tomcat 实现的规范是什么?

标签: java jsp tomcat servlets specifications


【解决方案1】:

JavaServerPages (JSR 245)Java Servlet (JSR 315) 是 Java 规范

它们就是这样:一组指导方针,这些指导方针被加入到一个充满关于它们是什么、它们应该如何表现等文字的文档中。

现在这是您问题的答案:供应商采用这些规范来制作实现这些规范的库或产品,从而成为这些规范的实现。这就是你实现接口的方式。

因此

Tomcat 实现 Java Servlet 和 JSP 规范

是描述这一点的正确方式。现在 Tomcat 有了自己的 HttpServlet 实现,但您不必担心,因为您的类只是扩展它。

当然,您自己的 servlet 和 JSP 将在 Tomcat 上运行,但它们会扩展自己的实现。类似地,它们将在例如 Jetty 上运行,在那里它们将扩展类的不同实现。

请注意,这些类(HttpServlet,...)位于以 javax. 而不是 java. 开头的包中。区别很关键,我建议你看看:javax vs java package

另一个广受欢迎的例子是 JPA:https://jcp.org/en/jsr/detail?id=338 及其许多实现,如 Hibernate、EclipseLink、OpenJPA、DataNucleus 等。

【讨论】:

  • @mahesh 我强烈鼓励您下载一个规范并浏览它。它很可能会回答您在技术方面遇到的 99% 以上的问题。
  • @mahesh 另外,我认为反对票有点苛刻:我敢打赌,大多数在简历中添加了 Java 的所谓程序员对此并不清楚。
  • 作为初学者我看不懂,可能无法正常发布,但非常感谢您的支持和鼓励。
【解决方案2】:

您可以在能够运行 Servlet 的容器中运行 Servlet。此类容器包括

Tomcat
GlassFish
WebSphere
Jetty etc.

.

JSP - 代表 Java Server Page - 更像是一个网页,它可以包括 HTML 和 XML 以及其他技术(或者我应该说是语言)。 JSP 与 PHP 类似,但使用的是 Java 语言。

“Tomcat 实现了来自 Sun Microsystems 的 Java Servlet 和 JavaServer Pages (JSP) 规范”

“...来自 Sun Microsystems 的规范(或称其为 Oracle,因为 Sun 不再存在)”,这意味着 Tomcat 能够实现 Sun 设定的语言规范(现在是 Oracle)。

您所追求的规格是 JSR-000315 Java ServletJSR-00245 Java Server Page

因此它为 Java 代码运行提供了一个“纯 Java”HTTP Web 服务器环境。

注意:Servlet 可以由 JavaServer Pages 编译器从 Java Server Pages (JSP) 自动生成。 servlet 和 JSP 的区别在于 servlet 通常将 HTML 嵌入到 Java 代码中,而 JSP 将 Java 代码嵌入到 HTML 中。

我的意思是没有更多的东西......

【讨论】:

  • 感谢您的回复 Maciej Cygan,我得到了剩下的东西,但唯一的声明让我感到困惑。它实现了什么规范?
【解决方案3】:

您应该提供更多背景信息,以便人们有机会帮助您。

Apache Tomcat 是一个 java servlet 引擎,因此实现了 java servlet 的规范。这意味着,它是捆绑在 war 文件中的 java 应用程序的容器,包含 servlet。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2020-02-29
    • 1970-01-01
    • 2021-04-20
    相关资源
    最近更新 更多