JSP笔记04——架构(转)

原始内容:https://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm

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

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

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

JSP Architecture

Web服务器如何使用JSP创建Web页面

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

  • 与正常页面一样,浏览器向Web服务器发送HTTP请求

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

  • JSP引擎从磁盘加载JSP页面并将其转换为servlet(.java)。此转换非常简单,所有HTML文本都转换为println()语句,所有JSP元素转换为Java代码。这些代码实现了页面的相应动态行为。【注释】直接看转换的源代码就清楚了

  • JSP引擎将servlet编译成可执行类(.class),并将原始请求转发到servlet引擎

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

  • Web服务器将含有静态HTML的HTTP响应转发到浏览器。

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

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

JSP Processing

通常,JSP引擎将检查JSP文件的对应的servlet是否已存在,以及.jsp文件的修改日期是否比对应的.java更早。如果.jsp早于其生成的.java,则JSP容器假定.jsp没有更改,并且生成的.java仍然与.jsp的内容匹配。这使得创建Web页面的过程相对其他脚本语言(如PHP)更加高效。【注释】友情链接

所以,在某种程度上,JSP页面实际上只是另一种编写servlet的方法除了翻译阶段,JSP页面的处理方式与普通的servlet完全相同

原文地址:https://www.cnblogs.com/xkxf/p/6978219.html