JSP全名为Java Server Pages,其根本是一个简化的Servlet。一种动态网页技术标准。它实现了Html语法中的java扩展(以 形式)。JSP与Servlet一样,是在服务器端执行的。

jsp的工作原理是什么?

结合上图给出的流程图:

(B/S架构的工作原理)

当客户端浏览器(browser)向服务器(server)请求一个 JSP 页面时,服务器收到该请求后,首先检查所请求的这个JSP 文件内容 ( 代码 ) 是否已经被更新,或者是否是 JSP 文件创建后的第一次被访问:

如果是,那么,这个 JSP 文件就会在服务器端的 JSP 引擎作用下转化为一个 Servlet 类的 Java 源代码文件。

紧接着,这个 Servlet 类会在 Java 编译器的作用下被编译成一个字节码文件,并装载到 jvm (java虚拟机)解释执行。

剩下的就等同于 Servlet 的处理过程了。

如果被请求的 JSP 文件内容 ( 代码 ) 没有被修改,那么它的处理过程也等同于一个 Servlet 的处理过程。即直接由服务器检索出与之对应的 Servlet 实例来处理。

需要注意的是,JSP 文件不是在服务器启动的时候转换成 Servlet 类的。而是在被客户端访问的时候才可能发生转换的 ( 如 JSP 文件内容没有被更新等,就不再发生 Servlet 转换 )。

就 Tomcat 而言,打开目录 %Tomcat%/work/%您的工程文件目录%,然后会看到里面有 3个子目录:org/apache/jsp,若没有这 3 个目录,说明项目的 JSP 文件还没有被访问过,打开进到 jsp 目录下,会看到一些 *_jsp.java 和 *_jsp.class 文件,这就是 JSP 文件被转换成Servlet 类的源文件和字节码文件了。

有兴趣的话,可以使用浏览器访问服务器中的 JSP,然后观察 JSP 转换 Servlet 以及编译的时机。

简言之,容器拿到JSP,会把它转换为一个servlet类源文件(.java),然后再把这个源文件编译为java servlet类。也就是说,JSP本质上就是一个servlet。

java jsp 原理_jsp的工作原理是什么相关推荐

  1. 计算机输入输出设备说课稿,信息技术七年级西交大版 第三节 计算机系统的组成与工作原理计算机系统及工作原理说课稿 (共15张PPT)...

    <信息技术七年级西交大版 第三节 计算机系统的组成与工作原理计算机系统及工作原理说课稿 (共15张PPT)>由会员分享,可在线阅读,更多相关<信息技术七年级西交大版 第三节 计算机系 ...

  2. c语言智能插座多线程原理,智能插座原理—智能插座的工作原理是什么

    近年来,物联技术有了一个更高层次的发展,并且物联技术深入到智能家居领域当中,与智能化家电结合,设计制造出很多非常棒的智能电子产品.其中,很多插座厂商也朝着智能化的方向发展,智能插座产生.那么智能插座的 ...

  3. 现在使用计算机器工作原理,计算机显示器工作原理(17页)-原创力文档

    计算机显示器工作原理 计算机显示器工作原理 显示器技术 长宽比和可视区域 多频扫描显示器 显示器连接 显示器的颜色深度 LCD显示器 LCD的功能和特性 CRT显示器 CRT的功能和特性 LCD和CR ...

  4. Linux运维系列总结-Linux系统启动过程、WEB工作原理、DHCP工作原理、DNS解析原理、NFS网络文件系统、FTP文件传输协议、PXE+KICKSTART自动安装系统

    Linux运维系列总结-Linux系统启动过程.WEB工作原理.DHCP工作原理.DNS解析原理.NFS网络文件系统.FTP文件传输协议.PXE+KICKSTART自动安装系统 1.Linux系统的启 ...

  5. java struct工作原理_Struts2的工作原理(图解)详解

    Struts2的工作原理 上图来源于Struts2官方站点,是Struts 2 的整体结构. 一个请求在Struts2框架中的处理大概分为以下几个步骤(可查看源码:https://github.com ...

  6. java mcv_spring框架mcv的工作原理是什么?

    Spring目前是java中最流行的框架之一,它可以整合如MVC等各种框架来方便开发,今天我们就来说说spring中MVC框架的工作原理都有哪些吧. 一.springMVC工作原理 这里我们通过一个简 ...

  7. 详述 Java 中过滤器 Filter 的工作原理及使用方法

    1 简介 Filter 也称之为过滤器,它是 Servlet 技术中最激动人心的技术之一,WEB 开发人员通过 Filter 技术,对 web 服务器管理的所有 web 资源:例如 JSP.Servl ...

  8. java spring工作原理_SpringMVC的工作原理是什么样的,跟Spring的关系是怎么样的?

    Spring MVC 的工作原理,很多人都不理解,今天借着题主的这个题目,我在此分享一篇外文翻译的技术贴给大家,希望对大家理解这个知识点有所帮助. 本文将深入探讨Spring框架的一部分--Sprin ...

  9. java虚拟机堆栈工作原理_java虚拟机工作原理?

    展开全部 从宏观上介绍一下Java虚拟机的e5a48de588b662616964757a686964616f31333363373731工作原理.从最初编写的Java源文件(.java文件)是如何一 ...

最新文章

  1. 李洪强经典面试题10
  2. 2016年10月CPU天梯图
  3. PHP各种实用的开源库推荐
  4. 一轮项目冲刺——移山小分队(6)
  5. python中scale_Scale
  6. 企业内部网的IP解析问题
  7. linux网卡IO,浅谈Linux 网络 I/O 模型简介(图文)
  8. JPA EntityManagers,事务及其周围的一切
  9. 在linux下一般用scp这个命令来通过ssh传输文件
  10. c语言五子棋人机对弈算法_从零开始编写C语言五子棋程序1
  11. Ubuntu 14.04 安装配置 cairo-dock 实现美化+特效
  12. java注释@para_@RequestParam注解的使用
  13. 解决在jenkins中无法打开robot framework report.html log.html的问题
  14. html页面小宠物代码大全,宠物店网页设计html代码
  15. 软件测试你的简历是这样的吗?
  16. 电容屏通用测试软件,测试屏幕触控的软件 屏幕触控检测软件
  17. 基于堆栈的缓冲区溢出_基于堆栈溢出问题构建搜索引擎
  18. Ubuntu出现Failed to Fetch的解决办法
  19. c语言.jpg图片转成数组_JPG图片怎么转换成PDF?可以试试这些转换方法!
  20. Http 协议学习笔记 (燕十三老师)

热门文章

  1. c++ eos智能合约开发_TrustBase平台智能合约的开发与实现
  2. cmd ibm服务器型号,ibm gpfs
  3. Javaweb-----HTTP协议
  4. BUUCTF-pwn2_sctf_2016(整数溢出+泄露libc)
  5. BUUCTF(pwn)inndy_echo(32位格式化字符串修改got表)
  6. 大学计算机基础章节知识点,《大学计算机基础》知识点
  7. Python:3种方式实现随机生成8位字符
  8. powershell共享服务器写文件,Windows PowerShell:共享您的脚本 - 轻松实现
  9. 2020年电大c语言程序设计作业1答案,2019年最新电大C语言程序设计作业答案.doc
  10. vs(visual studio)调试功能里各个按钮的意义及使用方法?