Web服务器需要一个JSP引擎,即一个处理JSP页面的容器。JSP容器负责截取JSP页面的请求。本教程使用了内置JSP容器的Apache来支持JSP页面的开发。
JSP容器与Web服务器配合工作以提供运行时环境和JSP需要的其他服务。它知道如何理解作为JSP一部分的特殊元素。
下图显示了JSP容器和JSP文件在Web应用程序中的位置。
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引擎将检查JSP文件的对应的servlet是否已存在,以及.jsp文件的修改日期是否比对应的.java更早。如果.jsp早于其生成的.java,则JSP容器假定.jsp没有更改,并且生成的.java仍然与.jsp的内容匹配。这使得创建Web页面的过程相对其他脚本语言(如PHP)更加高效。【注释】友情链接
所以,在某种程度上,JSP页面实际上只是另一种编写servlet的方法,除了翻译阶段,JSP页面的处理方式与普通的servlet完全相同。
时间: 2024-10-20 08:23:03