1. servlet的生命周期。 Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet的生命周期通过javax.servlet.Servlet接口中的init()、service()和destroy()方法来表示。
Servlet的生命周期包含了下面4个阶段:
(1)加载和实例化
Servlet容器负责加载和实例化Servlet。当Servlet容器启动时,或者在容器检测到需要这个Servlet来响应第一个请求时,创建Servlet实例。当Servlet容器启动后,它必须要知道所需的Servlet类在什么位置,Servlet容器可以从本地文件系统、远程文件系统或者其他的网络服务中通过类加载器加载Servlet类,成功加载后,容器创建Servlet的实例。因为容器是通过Java的反射API来创建Servlet实例,调用的是Servlet的默认构造方法(即不带参数的构造方法),所以我们在编写Servlet类的时候,不应该提供带参数的构造方法。
(2)初始化
在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象。初始化的目的是为了让Servlet对象在处理客户端请求前完成一些初始化的工作,如建立数据库的连接,获取配置信息等。对于每一个Servlet实例,init()方法只被调用一次。在初始化期间,Servlet实例可以使用容器为它准备的ServletConfig对象从Web应用程序的配置信息(在web.xml中配置)中获取初始化的参数信息。在初始化期间,如果发生错误,Servlet实例可以抛出ServletException异常或者UnavailableException异常来通知容器。ServletException异常用于指明一般的初始化失败,例如没有找到初始化参数;而UnavailableException异常用于通知容器该Servlet实例不可用。例如,数据库服务器没有启动,数据库连接无法建立,Servlet就可以抛出UnavailableException异常向容器指出它暂时或永久不可用。
(3)请求处理
Servlet容器调用Servlet的service()方法对请求进行处理。要注意的是,在service()方法调用之前,init()方法必须成功执行。在service()方法中,Servlet实例通过ServletRequest对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用ServletResponse对象的方法设置响应信息。在service()方法执行期间,如果发生错误,Servlet实例可以抛出ServletException异常或者UnavailableException异常。如果UnavailableException异常指示了该实例永久不可用,Servlet容器将调用实例的destroy()方法,释放该实例。此后对该实例的任何请求,都将收到容器发送的HTTP 404(请求的资源不可用)响应。如果UnavailableException异常指示了该实例暂时不可用,那么在暂时不可用的时间段内,对该实例的任何请求,都将收到容器发送的HTTP 503(服务器暂时忙,不能处理请求)响应。
(4)服务终止
当容器检测到一个Servlet实例应该从服务中被移除的时候,容器就会调用实例的destroy()方法,以便让该实例可以释放它所使用的资源,保存数据到持久存储设备中。当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法。在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收。如果再次需要这个Servlet处理请求,Servlet容器会创建一个新的Servlet实例。
在整个Servlet的生命周期过程中,创建Servlet实例、调用实例的init()和destroy()方法都只进行一次,当初始化完成后,Servlet容器会将该实例保存在内存中,通过调用它的service()方法,为接收到的请求服务。下面给出Servlet整个生命周期过程的UML序列图
2.怎么让一个servle随系统启动而启动。
在Web-xml文件进行配置
- 大小: 24.6 KB
分享到:
相关推荐
以下将详述一些重要的面试技巧以及常见的Java面试题目,帮助求职者更好地准备面试。 一、面试技巧 1. 自我介绍:简洁明了地介绍自己的教育背景、工作经验和主要技能。强调与应聘职位相关的项目经验和成就。 2. ...
Java就业面试题目大全是针对Java开发者准备的面试和笔试资源集合,它涵盖了广泛的问题和知识点,旨在帮助求职者提升在面试中的竞争力。这份大全每半个月更新一次,确保内容与时俱进,覆盖最新的技术和行业趋势。 ...
### Java面试趣味题目解析 #### 第一组题目解析 **1. 如何利用烧绳方法计时一个小时十五分钟?** 解答:对于这个问题,首先要明白一根不均匀的绳子从头燃烧到尾需要一个小时的时间。要实现计时一个小时十五分钟,...
总的来说,这份资源包是一个全面的Java面试准备工具,它能帮助求职者系统地复习Java技术,理解面试题目的考察点,并掌握如何有效地展示自己的项目经验和技能。无论是对于初入职场的新人还是有一定经验的开发者,它都...
【标题】:“C++与Java面试题(综合)” 这篇资料集合了C++和Java两个主要编程语言的面试题目,适合准备技术面试的求职者。综合性的面试题库旨在覆盖这两个语言的基础概念、核心特性、高级用法以及编程实践。 ...
这些知识点是SCJP认证考试的重点,通过解答压缩包中的面试题目,可以检验自己对这些知识的掌握程度,并针对性地进行复习。对于打算从事Java开发工作的人来说,SCJP认证不仅可以提升个人技能,也是展示专业能力的一个...
5. **模拟面试**:提供一系列模拟面试题目及答案,帮助求职者熟悉面试流程和应对策略。 6. **简历撰写指导**:简历是求职的第一步,书中可能会有关于如何撰写一份吸引人注意的简历的建议。 综上所述,《Java程序员...
Java作为一门广泛应用的编程语言,其面试题目往往能精准反映应聘者的技术深度与广度。《Java面试宝典(2012.6)》是一份宝贵的资源,针对面试中出现频率最高的题库进行了整理,下面我们将逐一解析其中的关键知识点。...
尽管文档中未直接列出具体的Java面试题目,但根据文档的精神,我们可以推测一些常见的Java面试题类型及解答策略: - **基础知识**: 包括Java的基本语法、数据类型、面向对象特性等。 - **高级特性**: 如多线程、...
`JAVA面试宝典.doc`通常会包含常见Java面试问题和答案,这些问题可能涵盖核心Java、JVM(Java虚拟机)、多线程、并发、设计模式、框架(如Spring、MyBatis)等方面。面试者需要对这些领域有扎实的理解,并能清晰地...
- **面试题目的类型**:可能包括基础知识、算法设计、项目经验等方面的问题。 - **准备方法**:建议系统复习Java基础,了解最新的技术趋势,同时加强实战经验的积累,以应对各种类型的面试题。 综上所述,以上几个...
在准备Java面试的过程中,了解和掌握相关知识点是至关重要的。以下是一些基于“java面试经验”这个主题,结合描述和标签的重要知识点的详细说明: 1. SQL练习:SQL(Structured Query Language)是数据库查询和管理...
"abc.doc"文档可能包含了上述各个领域的具体面试题目和解答,对于准备Java面试的开发者来说,这是一份宝贵的参考资料。通过深入学习和理解这些知识点,不仅可以应对面试,还能提升个人的编程能力和解决问题的能力,...
Java面试题大全,是每一位Java开发者在求职过程中必备的参考资料,涵盖了从基础到高级的各种面试知识点。这份资源集合了多个文档...通过系统学习和解答这些题目,不仅可以提高面试成功率,还能提升个人的Java技术水平。
Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性、健壮性和安全性。在软件开发领域,尤其是IT行业的招聘...通过深入学习和解答这些题目,开发者不仅能提升个人技能,还能为面试做好充分准备。
【描述】"700道JAVA面试题 超详细" 暗示了这个资料包中的面试题目不仅数量众多,而且细节丰富。这意味着每个问题很可能都伴随着详尽的解释或答案,帮助学习者深入理解Java编程的各个方面,包括但不限于语法、数据...
Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。为了在激烈的竞争中脱颖而出,掌握Java的核心概念和技术至...因此,深入学习并实践这些Java面试笔试知识点,是提升个人技能和竞争力的关键。
“JAVA面试题解惑系列.pdf”这本书应该会详细剖析以上各个知识点,并给出具体的面试题解析和解答技巧,帮助读者在面试中脱颖而出。对于Java开发者来说,这样的资源是非常宝贵的,不仅能在面试前进行自我检验,也能在...
"神州面试题.txt"、"oracle分页.txt"、"金山笔试.txt"等文件分别包含了特定公司或场景的面试题目,这些题目可能涉及Oracle数据库的分页查询技巧、金山软件的笔试题目以及神州数码的面试问题,通过分析和解答这些题目...
Java语言作为全球最广泛使用的编程语言之一,以其跨平台、面向对象的特点深受开发者喜爱。《Java语言程序设计第8版》是一本深入...无论是准备面试、进行个人项目,还是提升职业能力,这都将是一份不可或缺的学习资料。