专栏首页LeetCodejsp编译、执行过程
原创

jsp编译、执行过程

https://blog.csdn.net/napoay/article/details/50755064

一、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引擎。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用数组结构实现大小固定的队列和栈

    大学里的混子
  • 堆排序&&动态中位数

    heapify():  这里是指最大heapify。 我们只需要从  k = N / 2开始,  在k >= 1的条件下对 k 进行shiftDown(), 然...

    大学里的混子
  • Spark

    最后,关闭 Spark 可以调用 SparkContext 的 stop() 方法,或者直接退出应用(比如通过

    大学里的混子
  • day12_JavaWeb设计模式与案例学习笔记

        C/S:客户端 / 服务器 (胖客户端)比如:LOL、CS、魔兽世界。.exe安装文件。     B/S:浏览器 / 服务器(瘦客户端)比如:页游。网页...

    黑泽君
  • jsp技术前言:一、简介:二、hello world:三、jsp语法:四、九大内置对象:总结:

    我是一名Java后台学习者,但是后台程序员也需要掌握一定的前端技术。虽然说现在前端基本上是react、vue、angular三分天下,但是作为一名Java程序员...

    贪挽懒月
  • JSP 页面访问用户验证

    jsp安全性问题,当别人知道某个jsp文件的网址后就可以跳过登陆页面直接访问该jsp文件了,这样无法禁止外部无权限用户的访问。本文讨论内容是通过权限验证的用户,...

    阳光岛主
  • JSP/EL/JSTL

    一、JSP技术 1.jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变...

    用户5927264
  • 一文学会JSP

    [wp_editor_md_c028b77e51a2916f0943fc3a0d31a808.jpg]

    mySoul
  • springboot(16)-jsp

    JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems...

    Typhoon
  • spring boot整合jsp的时候访问页面错误日志:Path with "WEB-INF" or "META-INF":

    虽然spring boot 官方不推荐使用jsp.然后凯哥qianqian的,想整合jsp。在整合过程中遇到了错误:

    凯哥Java

扫码关注云+社区

领取腾讯云代金券