jsp文件的运行方法:首先客户端发出Request请求,JSP Container将JSP转译成Servlet的源代码;然后将产生的Servlet源代码进行编译,并加载到内存执行;最后把结果Response至客户端即可。

当客户端浏览器向服务器发出访问一个JSP页面的请求时,服务器根据该请求加载相应的JSP页面,并对该页面进行编译,然后执行。

推荐课程:Java教程。

页面的执行过程如下图所示:

客户端通过浏览器向服务器发出请求,在该请求中包含了请求的资源的路径,这样当服务器接收到该请求后就可以知道被请求的内容。

服务器根据接收到的客户端的请求来加载相应的JSP文件。

Web服务器中的JSP引擎会将被加载的JSP文件转化为Servlet。

JSP引擎将生成的Servlet代码编译成Class文件。

服务器执行这个Class文件。

最后服务器将执行结果发送给浏览器进行显示。

从上面的解释中可以看到,JSP文件被JSP引擎转换后,又被编译成了Class文件,最终由服务器通过执行这个Class文件来对客户端的请求进行响应。其中第三步和第四步构成了JSP处理过程中的翻译阶段,而第五步则为请求处理阶段。

但并不是每次请求都需要重复进行这样的处理。当服务器第一次接收到对某个页面的请求时,JSP引擎就开始按照上述的处理过程来将被请求的JSP文件编译成Class文件。当再次对该页面进行请求时,如果该页面没有任何改动,服务器就会直接调用对应的Class文件来执行。因此当某个JSP页面第一次被请求时,会有一些延迟,而再次访问时会感觉速度快了很多。如果被请求的页面经过了修改,那么服务器会重新编译这个文件,然后再执行。

jsp是怎么运行的

**jsp ——JSP引擎转换为Servlet——Java编译为.class文件——由Java虚拟机解释执行

Web容器处理JSP文件请求的执行过程主要包括以下4个部分:

客户端发出Request请求

JSP Container 将JSP转译成Servlet的源代码

将产生的Servlet源代码经过编译后,并加载到内存执行

把结果Response(响应)至客户端

很多人都会认为JSP的执行性能会和Servlet相差很多,其实执行性能上的差别只在第一次的执行。因为JSP在执行第一次后,会被编译成Servlet的类文件,即.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不再重新把JSP编译成Servelt。因此,除了第一次的编译会花较久的时间之外,之后JSP和Servlet的执行速度就几乎相同了。

在执行JSP网页时,通常可以分为两个时期:转译时期(Translation Time)和请求时期(Request Time)

转译时期:JSP网页转移成Servlet类。

请求时期:Servlet类执行后,响应结果至客户端。

转译期间做了两件事情:

转译时期:将JSP网页转移为Servlet源代码 .java.

编译时期:将Servlet 源代码 .java编译成 Servlet类 .class.

当JSP网页在执行时,JSP Container 会做检查工作,如果发现JSP网页有更新修改时,JSP Container 才会再次编译JSP成 Servlet; 如果JSP没有更新时,就直接执行前面所产生的Servlet.**

JSP文件怎么运行JAVA_jsp文件怎么运行相关推荐

  1. IntelliJ IDEA的Rebuild顺序,运行的文件跟原文件不相同

    IntelliJ IDEA这个工具我使用了一段时间了,正在逐步对其深入,今天遇到了一个问题,这个问题困扰了好久,刚开始我以为是project strutcture上面编译路径的问题,但是我看了很久,r ...

  2. Python 标准库之 os (获取当前目录、读取/设置环境变量、重命名文件、运行shell命令、创建/删除/查看目录文件、判断目录/文件/存在、获取绝对路径、获取文件名、获取换行符、获取路径分隔符)

    1. os与sys模块的官方解释如下: os This module provides a portable way of using operating system dependent funct ...

  3. 命令行编译运行CSharp文件

    命令行编译运行CSharp文件 找到csc.exe所在的路径.如我本机上为"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" 在环境变量 ...

  4. cmd库的导入Java,在cmd命令窗口导入第三方jar包来运行java文件

    在cmd命令窗口导入第三方jar包来运行java文件,以下测试都是基于window环境,Linux环境没有测试. 1.编译 使用命令javac -cp或者javac -classpath 本机测试:如 ...

  5. InstallShield 2015 LimitedEdition VS2012 运行bat文件

    转载:http://www.cnblogs.com/fengwenit/p/4271150.html  运行bat文件 网上很多介绍如何运行bat的方法,但我这个是limted 版本,不适用. 1. ...

  6. Ubuntu16.04运行.run文件

    QT配置ROS环境,运行.run文件-参考链接: https://blog.csdn.net/have_fun_/article/details/88242536

  7. 用cmd运行python文件_怎么用cmd运行python文件

    Layout Go工程项目的整体组织 首先我们看一下整个 Go 工程是怎么组织起来的. 很多同事都在用 GitLab 的,GitLab 的一个 group 里面可以创建很多 project.如果我们进 ...

  8. linux 如何运行.sql文件

    比如我在home路径下存在SQL文件: 如何运行SQL文件: 首先登陆mysql,选择数据库:use jsclub; 然后运行:source /home/jsclub.sql; 就可以把SQL文件中的 ...

  9. Linux下面如何运行.sh文件

    Linux下面如何运行.sh文件 命令行下面: 1.chmod 空格"+x" 空格 你的sh文件名 (+x是一个整体,不要拆开) 2.输入"./你的sh文件名" ...

  10. sys.argv[n] (终端运行python文件第n个参数) 在 pycharm 中的应用

    sys.argv[n] (终端运行python文件第n个参数) 在 pycharm 中的应用 打开pycharm --> Run --> Edit Configurations --> ...

最新文章

  1. 查找DetailsView1数据控件中的数据
  2. Error: <spyOn> : handleError() method does not exist
  3. 0821Servlet基础
  4. python异常处理_Python学习点滴04 - 学会异常处理(2)
  5. 接口测试用例设计思路_基于python语言的接口自动化demo小实战
  6. maven修改本地仓库地址配置文件
  7. idea无限重置插件安装
  8. 递归算法及经典例题详解
  9. PageHelper分页插件的简单使用
  10. 《数学建模与数学实验》第1章学习笔记
  11. 分享8个免费的超清背景图片下载网站
  12. 3种交叉验证与参数选择方式
  13. IE浏览器无法打开HTTPS解决办法
  14. 6-13 折半查找 (15 分)
  15. Windows XP使用技巧大全
  16. 前端js面试题(高级)
  17. python提取excel指定关键词的行数据
  18. Java的来源和基础语法
  19. Google 屏蔽的关键字
  20. 机器视觉系列(二)——机械部分

热门文章

  1. 直方图规定化计算过程
  2. Ubuntu安装显卡驱动教程
  3. (Quicker动作)MathType公式快速标红
  4. 什么是电子元器件 电子元件和电子器件的区别
  5. matlab中的uicontrol,Matlab的uicontrol出错
  6. 稀疏表示与字典学习大略讲解
  7. spring cloud入门组件教程
  8. PID控制以及各种控制环节-C语言实现
  9. 内蒙古自治区呼伦贝尔市谷歌高清卫星地图下载
  10. 飞凌单片机解密_IC芯片解密方法与原理解析