首页 > 其他分享 >servlet 与 jsp的加载过程

servlet 与 jsp的加载过程

时间:2023-03-27 19:31:37浏览次数:43  
标签:容器 生命周期 init 调用 jsp servlet 加载



彻底搞清楚servlet和jsp的加载过程


我们在书本上学习到的一般都是说servlet的生命周期,很少有介绍jsp的生命周期,今天我就结合我的感受,为大家说一下关于jsp的生命周期。

首先,先回顾一下servlet的生命周期的过程。servlet的生命周期分为以下几个步骤,
第一,加载并实例化,
第二,初始化,
第三,服务,
第四,销毁。
容器启动的时候,会加载servlet的class,并new出这个对象,然后,当用户请求这个servlet的时候,容器会调用init方法初始化这个servlet,这也是整个生命周期中只会调用一次的方法,然后,会调用service方法,由这个方法调用doGet或doPost方法来响应用户,然后,容器在可用资源紧张或是长期没有对Servlet发出请求的情况下,会销毁这个servlet。但是有时候,当我们的init方法中的程序需要运行很长时间的时候,为了加快响应,我们可以在web.xml中的servlet中加入load-on-startup选项,这样就会在容器启动的时候调用init方法,而请求的时候就直接进入服务,节省了响应时间。清楚了servlet生命周期,现在说一下jsp的生命周期。也分为几个步骤,第一,jsp转译成servlet,第二,servlet编译为class文件,然后和servlet相同。但是,jsp不同于servlet,servlet也是一个java类,所以当我们创建一个servlet的时候,java编译器可以编译这个java文件并生成class文件。而jsp必须要依赖于容器才能被转译,jsp在容器启动前是不可能被转译的,也就更谈不到后面的步骤了。因此jsp的生命周期应该是在容器启动后,当请求第一次到来,开始第一步,以后依次执行。还有一种情况就是也可以在映射此jsp的时候加上load-on-startup选项,这时,容器在启动的时候就会执行转译,编译的工作,并会调用init方法。总之,一般情况下,我们很少去映射jsp文件,因为现在基于mvc的过程中,大多是映射servlet,而jsp只是用于显示而不是处理请求。以上分析也说明了为什么第一次访问基于java网站的时候会比较慢,因为如果jsp会去执行一大堆动作,而如果直接访问servlet就好说多了。

标签:容器,生命周期,init,调用,jsp,servlet,加载
From: https://blog.51cto.com/u_16034393/6152979

相关文章

  • 使用alloc_chrdev_region/register_chrdev_region/cdev注册字符设备和使用class在驱动
    前言在旧版本中使用register_chrdev函数注册字符设备,该函数只需给定主设备号即可。一旦确认了主设备号,该主设备号下的所有次设备号全部都没有用,并且在驱动加载成功后还需......
  • 直播平台搭建,JS实现页面下拉加载数据操作
    直播平台搭建,JS实现页面下拉加载数据操作前端页面代码如下,我用的PHP,HTML页面应该就行,主要是在id="ph"的div内加载数据: <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0......
  • 预加载图片
    第一种: <script> functionpreload(path,img,callback) { for(vari=0;i<img.length;i++) { varsrc=path+img[i] img[i]=document.createElemen......
  • Servlet进阶开发
    Servlet进阶内容概述Cookie和Session的引入Cookie和Session技术的目的:为了解决http协议是无状态的。http协议无状态的意思是,浏览器发起请求(请求中一般是需要携带数据的),服务......
  • Http Xml Servlet
    Servlet概述访问网站时,我们都是基于WebBrowser/Server这种模式,简称BS框架。Servlet是JavaServlet的简称,称为小服务程序或服务连接器,用java编写的服务器端程序,具......
  • 类加载内存分析
    packageedu.wtbu;publicclassDemo01{publicstaticvoidmain(String[]args){Aa=newA();System.out.println(A.m);/*1.加......
  • 关于 Web 应用的 Above-the-Fold Loading 加载机制
    Above-the-FoldLoading是一种网页加载技术,可以让网页的上半部分尽快地显示在屏幕上,让用户能够更快地看到网页的内容,提高用户体验。具体来说,Above-the-FoldLoading会优......
  • Above-the-Fold Loading 加载机制在 Spartacus Storefront 里的应用
    Angular应用默认情况下,Component组件总是被积极渲染,不管组件是否在用户的viewports中。这可能对性能带来负面影响,但可以通过评估视口与组件来进行优化——Viewports......
  • Above-the-Fold Loading 加载机制在 Spartacus Storefront 里的应用
    Angular应用默认情况下,Component组件总是被积极渲染,不管组件是否在用户的viewports中。这可能对性能带来负面影响,但可以通过评估视口与组件来进行优化——Viewports......
  • 关于 Web 应用的 Above-the-Fold Loading 加载机制
    Above-the-FoldLoading是一种网页加载技术,可以让网页的上半部分尽快地显示在屏幕上,让用户能够更快地看到网页的内容,提高用户体验。具体来说,Above-the-FoldLoading会优先......