博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jsp编译、执行过程
阅读量:4916 次
发布时间:2019-06-11

本文共 880 字,大约阅读时间需要 2 分钟。

一、jsp执行过程图解

用户访问jsp页面时,jsp的处理过程如下图所示: 

jsp执行过程

二、预处理阶段

客户第一次请求jsp页面时,jsp引擎会将jsp文件中的脚本代码(HTML)和代码片段(代码)全部转换为java代码,转换过程非常直观:对于HTML文本只需要用简单的out.println方法包裹,对于java脚本只做保留或简单的处理。

三、编译阶段

预处理阶段把jsp文件解析为java代码,编译阶段jsp引擎把java代码编译成servlet类文件,对于Tomcat,生成的class文件默认情况下存放在<Tomcat>/work目录下。

四、响应阶段

编译后的class对象被加载到容器中,并根据用户的请求生成HTML格式的响应页面返回给客户端。 

在执行jsp网页时,通常分为两个时期:转译时期和请求时期。转译时期jsp页面被翻译成Servlet类,然后编译成Class文件;用户请求时期,servlet类被执行,生成HTML响应至客户端。

五、jsp和servlet的执行速度

jsp的转译和请求都在在第一次访问时进行的,所以用户在第一次访问jsp页面时响应时间会比较长。在之后的请求中,这些工作已经完成,时间延长问题不存在了。在处理后续的访问时jsp和servlet的执行速度是一样的。

六、容器、jsp容器、jsp引擎

jsp要转译为servlet,但是servlet没有main()方法,servlet对象的创建、方法的调用由web容器来实现。以Tomcat为例,先看一下Tomcat的总体结构: 

tomcat架构图 
从图中可以看出,Tomcat的核心组建是connector和,container就是容器。容器就是负责管理控制servlet的应用程序。图中的jasper就是解析jsp的jsp引擎。Tomcat既是servlet容器又是web服务器,也是jsp引擎。

参考文章:

    1. 关于tomcat架构可以参考淘宝架构师写的:
    2. 关于jsp引擎更详细介绍可以参考:
    3. 概念区别:

转载于:https://www.cnblogs.com/cx6872/p/6408492.html

你可能感兴趣的文章
Unity3D 之UGUI 滚动条
查看>>
with as 和update ,Delete,insert
查看>>
Mybatis generator 自动生成代码
查看>>
C#中的一些小知识
查看>>
前端开发面试题总结之——HTML
查看>>
HDOJ---1847 Good Luck in CET-4 Everybody![巴什博弈]
查看>>
CodeForces - 618F Double Knapsack
查看>>
input类型为password默认显示有值
查看>>
计算几何模版
查看>>
jQuery插件学习基础
查看>>
json的命名空间
查看>>
Jquery DOM操作
查看>>
面试题6,单例模式等等。24种设计模式。
查看>>
基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)
查看>>
当session过期后自动跳转到登陆页而且会跳出iframe框架
查看>>
MongoDB3.X参数文件
查看>>
C语言中文件的读取和写入
查看>>
钽电容和电解电容的区别
查看>>
厌倦了ListBox打印消息,使用RichTextBox试试吧
查看>>
今天的状况
查看>>