zoukankan      html  css  js  c++  java
  • jsp执行过程图解

    转自:https://blog.csdn.net/y277an/article/details/76561451

    一、jsp执行过程图解

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

    二、预处理阶段

    客户第一次请求jsp页面时,jsp引擎会将jsp文件中的脚本代码(HTML)和代码片段(Java代码)全部转换为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的核心组建是connector和Container,container就是容器。容器就是负责管理控制servlet的应用程序。图中的jasper就是解析jsp的jsp引擎。Tomcat既是servlet容器又是web服务器,也是jsp引擎。

    参考文章:

    关于tomcat架构可以参考淘宝架构师写的:Tomcat 系统架构与设计模式,第 1 部分: 工作原理 

    关于jsp引擎更详细介绍可以参考:Tomcat 6 — 使用Jasper引擎解析JSP

    概念区别:Web容器、服务器、容器的理解总结

  • 相关阅读:
    二进制位运算
    Leetcode 373. Find K Pairs with Smallest Sums
    priority_queue的用法
    Leetcode 110. Balanced Binary Tree
    Leetcode 104. Maximum Depth of Binary Tree
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 64. Minimum Path Sum
    Leetcode 63. Unique Paths II
    经典的递归练习
    案例:java中的基本排序
  • 原文地址:https://www.cnblogs.com/tv151579/p/10688956.html
Copyright © 2011-2022 走看看