JSP-体系结构
Web服务器需要JSP引擎,即用于处理JSP页面的容器。JSP容器负责拦截对JSP页面的请求。本教程利用Apache内置的JSP容器来支持JSP页面开发。
JSP容器与Web服务器一起使用,以提供JSP所需的运行时环境和其他服务。它知道如何理解JSP组成部分的特殊元素。
下图显示了Web应用程序中JSP容器和JSP文件的位置。
JSP处理
以下步骤说明了Web服务器如何使用JSP创建网页:
-
与普通页面一样,您的浏览器将HTTP请求发送到Web服务器。
-
Web服务器识别出HTTP请求是针对JSP页面的,并将其转发到JSP引擎。这是通过使用 以.jsp而不是.html结尾的URL或JSP页面完成的。
-
JSP引擎从磁盘加载JSP页面,并将其转换为servlet内容。这种转换非常简单,其中所有模板文本都转换为println()语句,所有JSP元素均转换为Java代码。这段代码实现了页面的相应动态行为。
-
JSP引擎将servlet编译为可执行类,并将原始请求转发到servlet引擎。
-
Web服务器的一部分称为Servlet引擎,它会加载Servlet类并执行它。在执行期间,该servlet产生HTML格式的输出。输出进一步由Servlet引擎在HTTP响应内传递到Web服务器。
-
Web服务器根据静态HTML内容将HTTP响应转发到浏览器。
-
最终,Web浏览器将完全像处理静态页面一样处理HTTP响应中动态生成的HTML页面。
下图中可以看到上述所有步骤:
通常,JSP引擎检查JSP文件是否已经生成对应的servlet,以及JSP上的修改日期是否早于该servlet。如果JSP早于其生成的Servlet,则JSP容器将假定JSP尚未更改,并且生成的Servlet仍与JSP的内容匹配。这使该过程比其他脚本语言(例如PHP)更有效,因此速度更快。
因此,在某种程度上,JSP页面实际上是编写servlet的另一种方式,而不必成为Java编程向导。除了翻译阶段外,JSP页面的处理方式与常规servlet完全相同。
下一篇:JSP-生命周期