首页 > 其他分享 >全面理解servlet

全面理解servlet

时间:2023-09-14 12:05:54浏览次数:37  
标签:容器 color servlet 方法 理解 green 全面 Servlet


[color=green]1. Servlet的生命周期?[/color]
Servlet是一种可以在Servlet容器中运行的组件,那么理所当然就应该有一个从创建到销毁的过程,这个过程我们可以称之为Servlet生命周期。Servlet的生命周期可以分为加载、实例化、初始化、处理客户请求和卸载五个阶段,体现在方法上主要是init()、service()和destroy()三个方法。生命周期的具体说明如下:
*
Servlet容器完成加载Servlet类和实例化一个Servlet对象
*
init()方法完成初始化工作,该方法由Servlet容器调用完成
*
service()方法处理客户端请求,并返回响应结果
*
destroy()方法在Servlet容器卸载Servlet之前被调用,释放一些资源

[color=green]2. Servlet的实例是在生命周期什么时候创建的? 配置servlet最重要的是什么?[/color]
Servlet实例是在servlet第一次在容器中被加载的是时候创建的, Init()方法是用来配置这个servlet实力的,这个方法在servlet的生命周期中只被调用一次,所以应该把所有servlet生命周期中的配置操作都写在这个方法法里面。

[color=green]3. 为什么不在Servlet中写一个构造(Contructor)方法?[/color]
容器会自动为Servlet写一个无参的构造方法

[color=green]4. 我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢?[/color]
容器会自动为Servlet写一个无参的构造方法,容器是用Class.forName(className).newInstance()来创建servlet的实例的。

[color=green]5. 当容器调用servlet的destory()方法的时候,servlet会马上销毁么? 如果当时这个servlet正在执行其他任务或者线程呢?[/color]
是的, 当容器调用servlet的destory()方法的时候,servlet会马上销毁,但是容器在调用destory()方法之前,会等servlet的service()方法结束剩余的任务。

[color=green]6. 用ServletRequest和ServletContext调用ReqestDispatcher有什么区别?[/color]
在用ServletRequest调用RequestDispatcher的时候可以用相对URL, 但是ServletContext不行。

[color=green]7. 为什么在用ServletRequest.getRequestDispatcher()的时候可以用相对URL而用ServletContext.getRequestDispatch()的时候不可以?[/color]
因为ServletRequest包含当前的request path,可以用当前的request path去计算URL,但是ServletContext不包含当前的request path。

标签:容器,color,servlet,方法,理解,green,全面,Servlet
From: https://blog.51cto.com/u_16261339/7468604

相关文章

  • RBFS简单理解
    论文引用Sharma,DishaandSanjayKumarDubey.“ComparativeStudyofRBFS&ARBFSAlgorithm.”IOSRJournalofComputerEngineering10(2013):105-110.前言论文中的伪代码可能有错误贴一份写的比较清楚点的帖子算法思路在h函数保证一致性的情况下,第一次扩展到n时......
  • 动态路由协议篇:小白也能轻松理解
    在网络世界中,路由协议扮演着至关重要的角色。它们负责确定数据包在网络中的最佳传输路径,以确保数据能够安全、快速地到达目的地。而在这些路由协议中,动态路由协议因其灵活性和高效性而备受关注。接下来将带大家了解什么是动态路由协议,以及如何让小白也能轻松理解。什么是动态路由协......
  • GZip Servlet Filter
    AGZipServletFiltercanbeusedtoGZipcompresscontentsenttoabrowserfromaJavawebapplication.Thistextwillexplainhowthatworks,andcontainsaGZipServletFilteryoucanuseinyourownJavawebapplications.Ifyoud......
  • var let 经典面试题(理解作用域)
    1 let是块级作用域,每次输出的时候要找的i不是同一个i,是各自块作用域的i,是不同的i,在第一个块作用域里i的值是0,第二个是1,以此类推,所以第一个console出来的值是不同的,是01234当单独的输出语句输出i的时候,它的作用域并没有i,所以它会报错,所以第二个console出来的值是iis......
  • Maven Scope理解
    1.compile:默认值他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去2.test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译和执行,不会被打包,例如:junit3.runtime:表示被依赖项目无需参与项目的编译,不过后期......
  • 会充电的CANoe-完成高效全面的充电系统测试,让新能源汽车说走就走
    随着中国新能源汽车的高速发展,越来越多的国内车企出海与外国汽车巨头同台竞技。2022年,在供应链缺芯少电的背景下,中国新能源汽车的渗透率还是超过了25%,连续八年为全球最大的新能源汽车市场。这也使得充电需求不断增大。当前,全球并没有形成统一的充电标准并且电动汽车充电领域涉及的......
  • 深入理解 @PostConstruct 注解及其在 Java 开发中的应用
    深入理解@PostConstruct注解及其在Java开发中的应用本文将深入探讨Java中的@PostConstruct注解,介绍其作用、使用方法和常见应用场景。我们将详细解释注解的生命周期和执行顺序,以及如何正确使用@PostConstruct注解来进行初始化操作。通过本文的学习,读者将对@PostConstru......
  • Servlet
    一、Servlet继承结构1.概述 tomcat服务器提供了Servlet规范的实现。我们写的代码要想被服务器调用,也必须遵守Servlet规范。自定义的Servlet类并没有去直接实现Servlet接口,是因为该接口中方法较多,Servlet接口有它的一系列实现类,我们继承实现类即间接的实现了Servlet接......
  • 纯C++代码理解Qt中的信号和槽函数
    槽函数的调用是一个多步骤的过程:1.连接(Connect)首先,通过使用QObject::connect()函数来建立信号和槽之间的连接。QObject::connect(sender,SIGNAL(signalName(args)),receiver,SLOT(slotName(args)));这里的sender和receiver是QObject派生的对象,而signalName和slotName则分......
  • 我不理解,Android开发找工作为什么要这么难?
    前言今天算是有点感触,捞到一份简历,中国科学技术大学毕业,38岁,当过互联网大厂,小厂Android技术负责人,重新找工作,面试机会都没有给,hr直接被拒绝了。面试真的会越来越难吗?这个主意因人而异吧,因为现在也是正处于金九银十的黄金时期,能不能找到工作,关键还是在于面试,然后就是招聘信息中的......