JSP-架构


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

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

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

JSP架构

JSP处理

以下步骤解释了 Web 服务器如何使用 JSP 创建网页 -

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

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

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

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

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

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

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

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

JSP处理

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

因此,在某种程度上,JSP 页面实际上只是编写 servlet 的另一种方法,而无需成为 Java 编程高手。除了转换阶段之外,JSP 页面的处理方式与常规 servlet 完全相同。