JSP 页面的工作原理。有人能用更简单的术语解释一下 JSP 架构吗?

jspjava 8object oriented programmingprogramming

Web 服务器需要一个 JSP 引擎,即一个处理 JSP 页面的容器。JSP 容器负责拦截对 JSP 页面的请求。本教程使用 Apache,它具有内置的 JSP 容器来支持 JSP 页面开发。

JSP 容器与 Web 服务器协同工作,提供 JSP 所需的运行时环境和其他服务。它知道如何理解 JSP 中的特殊元素。

下图显示了 JSP 容器和 JSP 文件在 Web 应用程序中的位置。

JSP Architecture

JSP 处理

以下步骤说明 Web 服务器如何使用 JSP 创建网页 −

  • 与普通页面一样,浏览器会向 Web 服务器发送 HTTP 请求。

  • Web 服务器识别出 HTTP 请求是针对 JSP 页面的,并将其转发到 JSP 引擎。这是通过使用以 .jsp 而不是 .html 结尾的 URL 或 JSP 页面来实现的。

  • JSP 引擎从磁盘加载 JSP 页面并将其转换为 servlet 内容。此转换非常简单,其中所有模板文本都转换为 println( ) 语句,所有 JSP 元素都转换为 Java 代码。此代码实现页面的相应动态行为。

  • JSP 引擎将 servlet 编译为可执行类,并将原始请求转发给 servlet 引擎。

  • Web 服务器的一部分(称为 servlet 引擎)加载 Servlet 类并执行它。在执行期间,servlet 会生成 HTML 格式的输出。输出由 servlet 引擎在 HTTP 响应中进一步传递给 Web 服务器。

  • Web 服务器将 HTTP 响应以静态 HTML 内容的形式转发到您的浏览器。

  • 最后,Web 浏览器将 HTTP 响应中动态生成的 HTML 页面处理为静态页面。

所有上述步骤都可以在下图中看到 −

JSP Processing

通常,JSP 引擎会检查 JSP 文件的 servlet 是否已存在,以及 JSP 上的修改日期是否早于servlet。如果 JSP 比其生成的 servlet 旧,JSP 容器会假定 JSP 未发生改变,并且生成的 servlet 仍与 JSP 的内容相匹配。这使得该过程比使用其他脚本语言(如 PHP)更有效,因此速度更快。

因此,从某种意义上说,JSP 页面实际上只是编写 servlet 的另一种方式,而不必成为 Java 编程专家。除了转换阶段之外,JSP 页面的处理方式与常规 servlet 完全相同。


相关文章