码迷,mamicode.com
首页 > Web开发 > 详细

JSP的体系结构

时间:2017-06-05 10:28:30      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:代码实现   页面   执行   引擎   请求转发   应用   传递   适用于   其他   

以下内容引用自http://wiki.jikexueyuan.com/project/jsp/architecture.html

Web服务器需要一个JSP引擎,即处理JSP页面的容器。JSP容器负责为JSP页面拦截请求。

JSP容器适用于Web服务器,来提供JSP运行时环境和其他服务的需求。它知道如何理解JSP的部分特殊元素。

以下图表显示了JSP容器的位置以及在一个Web应用程序中的JSP文件。

技术分享

JSP处理

下面的步骤解释了web服务器如何使用JSP创建Web页面:

  • 作为正常的页面,浏览器发送一个HTTP请求到Web服务器。

  • Web服务器承认一个JSP页面的HTTP请求,并将其转发给一个JSP引擎。这是通过使用URL或JSP页面实现的,该JSP页面是以.jsp结尾而不是以.html结尾的。

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

  • JSP引擎编译Servlet到一个可执行的类中,并将原始请求转发给一个Servlet引擎。

  • 调用Servlet引擎的Web服务器的一部分加载Servlet类并执行它。执行期间,Servlet产生一个HTML格式的输出,Servlet引擎将该输出传递到HTTP响应内的Web服务器中。

  • Web服务器将HTTP响应以静态HTML内容的形式转发到浏览器中。

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

上述所有步骤如下图所示:

技术分享

通常,JSP引擎检查JSP文件的Servlet是否已存在,JSP的修改日期是否比Servlet的过时。如果JSP的修改日期比其生成的Servlet的修改日期过时,那么JSP容器假设JSP修改日期没有改变,且生成的Servlet的修改日期仍然与JSP的内容相匹配。与其他脚本语言(比如 PHP)相比,这个过程更有效率,因此更加快速。

所以在某种程度上来说,一个JSP页面只是用另一种方式来写Servlet,而不需要成为一个Java编程奇才。除了翻译阶段,处理JS 页面完全就像处理一个普通的Servlet一样。

JSP的体系结构

标签:代码实现   页面   执行   引擎   请求转发   应用   传递   适用于   其他   

原文地址:http://www.cnblogs.com/EasonJim/p/6943121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!