JSP - 架构

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

JSP容器与Web服务器一起工作,以提供JSP所需的运行时环境和其他服务.它知道如何理解作为JSP一部分的特殊元素.

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

JSP Architecture

JSP处理

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

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

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

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

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

  • 称为servlet引擎的Web服务器的一部分加载Servlet类并执行它.在执行期间,servlet以HTML格式生成输出.输出通过HTTP响应中的servlet引擎传递到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完全相同.