Jakarta Pages架构

July 21, 2025

网页服务器(Web Server)使用Jakarta Pages引擎来处理Jakarta Pages。引擎负责Jakarta Pages页面的渲染。

本手册中使用Apache Tomcat作为网页服务器兼Jakarta Pages引擎。其他支持Jakarta EE和Jakarta Pages的网页服务器也是同样的原理。

Jakarta Pages最终被编译为一个Servlet,运行在网页服务器上。通常这样的网页服务器被称为应用服务器,有别于静态文件服务器。

Jakarta Pages页面处理流程

在访客访问一个采用了Jakarta Pages技术的网页时,通常流程是这样的:

  • 像其他普通的网页一样,访客的浏览器发送一个 HTTP 请求给网页服务器。
  • 网页服务器识别出这是一个对Jakarta Pages页面的请求,并且将该请求交给 Jakarta Pages 引擎处理。通过使用 URL或者 .jsp 文件来完成。
  • Jakarta Pages引擎从读取 JSP 文件,然后将它们转化为 Servlet。这种转化只是简单地将所有模板文本改用 println() 语句,并且将所有的 JSP 元素转化成 Java 代码。
  • Jakarta Pages引擎将 Servlet 编译成可执行类,并且将原始请求传递给 Servlet 引擎。
  • 网页服务器的某组件将会调用 Servlet 引擎,然后载入并执行 Servlet 类。在执行过程中,Servlet 产生 HTML 格式的输出并将其内嵌于 HTTP response 中上交给网页服务器。
  • 网页服务器将HTML发送给访客的浏览器。
  • Web 浏览器处理接收到的HTML网页,就好像在处理静态网页一样。

通常,Jakarta Pages 引擎会检查 JSP 文件对应的 Servlet 是否已经存在,并且检查 JSP 文件的修改日期是否早于 Servlet。如果 JSP 文件的修改日期早于对应的 Servlet,那么容器就可以确定 JSP 文件没有被修改过并且 Servlet 有效。这使得整个流程与其他脚本语言(比如 PHP)相比要高效快捷一些。