在动态Web项目的开发中,经常需要动态生成HTML。内容(如系统中的当前在线人数需要动态生成)。如果使用Servlet实现HTML页面数据的统计,则需要使用大量的输出语句。同时,如果静态内容和动态内容混合在一起,那么也将导致程序非常臃肿。为了克服Servlet的这些缺点,Oracle( Sun)公司推出了JSP技术。

JSP(Java Server Pages)是建立在Servlet规范之上的动态网页开发技术,其实质是一个简化的Servlet,在JSP文件中,HTML代码与Java代码共同存在,其中,HTML代码用于实现网页中静态内容的显示,Java代码用于实现网页中动态内容的显示。为了与传统HTML有所区别,JSP文件的扩展名为jsp。

JSP技术所开发的Web应用程序是基于Java的,其使用具有如下几点特征。

1、预编译

预编译指在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码进行编译,并且仅执行一次编译。编译好的代码将被保存,在用户下一次访问时会直接执行编译好的代码。这样不仅节约了服务器的CPU资源,还大幅度提升了客户端的访问速度。

2、业务代码相分离

在使用JSP技术开发Web应用时,可以将界面的开发与应用程序的开发分离,

3、组件重用

JSP可以使用JavaBean编写业务组件,也就是使用一个JavaBean类封装业务处理代码或者将其作为一个数据存储模型,在JSP页面甚至整个项目中,都可以重复使用这个JavaBean,同时,JavaBean也可以应用到其他Java应用程序中

4、跨平台

由于JSP是基于Java语言的,它可以使用Java API,所以它也是跨平台的,可以应用于不同的系统,如 Windows和Linux等。

JSP运行原理

JSP的工作模式是请求/响应模式,客户端首先发出HTTP请求,JSP程序收到请求后将进行处理并返回处理结果。在一个JSP文件第一次被请求时,JSP引擎(容器)把该JSP文件转换成一个Servlet,而这个引擎本身也是一个Servlet, JSP的运行原理如下图:

JSP的运行过程具体如下。

(1) 客户端发出请求,请求访问JSP文件。

(2) JSP容器先将JSP文件转换成一个Java源文件(Java Servlet源程序),在转换过程中,如果发现JSP文件中存在任何语法错误,则中断转换过程,并向服务端和客户端返回出错信息。

(3) 如果转换成功,则JSP容器会将生成的Java源文件编译成相应的字节码文件*.class。该class文件就是一个Servlet,Servlet容器会像处理其他Servlet一样处理它。

(4) 由Servlet容器加载转换后的Servlet类(class文件)创建一个该ServletJSP页面的转换结果)的实例,并执行Servlet的jsplnit()方法。jspInit()方法在Servlet的整个生命周期中只会执行一次。

(5) 执行jspService()方法处理客户端的请求。对于每一个请求,JSP容器都会创建个新的线程处理它。如果多个客户端同时请求该JSP文件,则JSP容器会创建多个线程,使每个客户请求都对应一个线程。

(6) 如果JSP文件被修改了,则服务器将根据设置决定是否对该文件重新进行编译,果需要重新编译,则使用重新编译后的结果取代内存中的Servlet,并继续上述处理过在需要注意的是,虽然JSP效率很高,但在第一次调用时往往由于需要转换和编译,所以会生一些轻微的延迟。

(7) 如果系统出现资源不足等问题,JSP容器可能会以某种不确定的方式将Servlet从内存中移除,发生这种情况时,首先会调用jspDestroy ()方法,然后Servlet实例会被作为“垃圾”进行处理。

(8) 当请求处理完成后,响应对象由JSP容器接收,并将HTML格式的响应信息发送回客户端。

什么是JSP,JSP的运行原理是什么?相关推荐

  1. 【Servlet】JSP学习-概念和运行原理

    为什么需要JSP? 与HTML相比:根据后台的业务,可以动态输出HTML,网页内容是可以改变的. 与原生Servlet相比:不需要自己写输出语句resp.getWriter().write(" ...

  2. 9.JSP运行原理与JSP页面的基本结构

    JSP运行原理与JSP页面的基本结构 HTML页面的基本构成 .代码中出现的几种标签 •单标签     某些标签只需单独使用就能完整地表达意思,控制网页 效果,这类标签的语法是: <标签> ...

  3. 【JSP】JSP的运行原理

    初次访问JSP页面 JSP同Servlet一样,都运行在Servlet容器中.当用户第一次访问JSP页面时,JSP页面的执行过程可分为五个步骤,各步骤含义如下: 客户向服务器发送JSP页面请求(req ...

  4. JSP起源、JSP的运行原理、JSP的执行过程

    JSP起源 在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变. 如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程序 ...

  5. JSP运行原理 九大内置对象 四大作用域

    Jsp的简介 jsp的全称是java server pages 意思为java的服务页面 jsp必须运行在服务器,不能脱离服务器单独运行 jsp是可以写java代码的html jsp的本质就是一个se ...

  6. JSP运行原理及运行过程

    学习J2EE时,初步了解了JSP,写过一篇小的总结:J2EE-JSP,当时还不是很了解它的运行机制. 学习DRP时,再次接触了JSP,在原来基础上有了更深的了解,了解了它的执行原理 1,JSP的运行原 ...

  7. web开发总结-Servlet与JSP(运行原理)

    文章结构:(1)剖析Servlet:(2)剖析JSP: 一.剖析Servlet: (1)概述: Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的web页面.它担当Web ...

  8. jsp是什么以及jsp运行原理

    jsp是什么以及jsp运行原理 一.JSP的简单介绍 1. JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.JSP ...

  9. JSP语法,运行机理等

    JSP是几年前就接触了,但是用归用,很多实际的意义含义等还是不太明白,借此机会,梳理一下. 1.JSP运行原理:当浏览器web应用服务器请求一个JSP页面时,Web应用服务器将其转换成一个Servle ...

最新文章

  1. pythonselect a valied_python 11期 第五天
  2. localStorage和cookie的跨域解决方案
  3. 开启win7 FTP 服务 无法登陆的原因
  4. 插件~Nuget中包与包的依赖关系
  5. 《算法竞赛进阶指南》数论篇
  6. Visual Studio 2008 无法切换到设计视图
  7. [解决]WebLogic跨域访问安全问题
  8. 为什么说阿里巴巴已进化成为一家世界级的科技公司?
  9. 基于机器视觉的眼镜镜片轮廓提取
  10. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第6节 Lambda表达式_6_Lambda表达式有参数有返回值的...
  11. 解决:macOS下logisim左侧侧边栏被隐藏
  12. UE4 虚幻引擎, 蓝图节点应用笔记(一)
  13. Oracle 客户端下载
  14. 使用Nodejs+puppeteer 批量保存网页为图片或PDF
  15. 传奇手游漏洞获取gm权限_传奇私服漏洞获取gm权限
  16. Scheduler 配置与注意事项
  17. 三星s5pv210核心板全球最低价199元,尽在保定芯灵思
  18. python安卓吾爱_【原创源码】 【无需第三方库】【支持签到 】 Python 吾爱挂机 无提示版...
  19. ballerina 学习二十七 项目k8s部署 运行
  20. 看了这篇Docker指令详解,网友直呼:我收藏了你呢?

热门文章

  1. 如何查看计算机是多少位
  2. Centos+Aria2+AriaNg+Trancers更新
  3. C:谈谈内存分配中的(.data)段和(.bss)段的区别?为什么要分.data段和.bss段?
  4. c语言 程序段 数据段,C语言程序的段
  5. 【航天物流组参赛ReadMe.md】
  6. 分享邮件营销群发的6大技巧!怎么群发邮件效果好?
  7. 黑马送书啦!全体IT技术人的福利~
  8. 研究生入门,如何高效阅读论文
  9. 专科出来的计算机学生,月薪两万是否不切实际?
  10. 图片转为pdf怎么弄?发送图片安全高效的格式