在前面一篇文章 “【新手记录】servlet的初始
化init方法什么时候被调用?
”中用实例验证了下servlet的init方法何时被调用,虽然有了测试结果。
不过还是感觉不放心,于是到sun官方网站看了下servlet的specification。
得到了肯定的答复:
首先是J2EE api里对servlet的init方法的说明:
init
void init(ServletConfig config)
throws ServletException
Called by the servlet container to indicate to a servlet that the servlet is being placed into service.
The servlet container calls the init method exactly once after instantiating the servlet. The init method must complete successfully before the servlet can receive any requests.
The servlet container cannot place the servlet into service if the init method
Throws a ServletException
Does not return within a time period defined by the Web server
然后又看了下Java™ Servlet Specification Version 2.5 MR6的详细说明
The load-on-startup element indicates that this
servlet should be loaded (instantiated and have
its init() called) on the startup of the web
application. The optional contents of these
element must be an integer indicating the order in
which the servlet should be loaded. If the value
is a negative integer, or the element is not
present, the container is free to load the servlet
whenever it chooses. If the value is a positive
integer or 0, the container must load and
initialize the servlet as the application is
deployed. The container must guarantee that
servlets marked with lower integers are loaded
before servlets marked with higher integers. The
container may choose the order of loading of
servlets with the same load-on-start-up value
If the value is a negative integer, or the element is not present, the container is free to load the servlet
whenever it chooses. If the value is a positive
integer or 0, the container must load and initialize the servlet as the application is deployed.
如果是负数,或者没有标识load-on-startup参数,这个就有容器自己去选择是否加载了。如果是正数或者0,
那么容器在应用部署的时候就必须要初始化这个servlet。
好吧,不写或者为负数还是有意外的啊!看来还是找specification查东西靠谱。
分享到:
相关推荐
- **初始化**:容器调用 init() 方法对 Servlet 进行初始化。 - **服务**:当客户端发送请求时,容器调用 service() 方法处理请求。 - **销毁**:容器调用 destroy() 方法释放 Servlet 占用的资源。 ##### 4.2 请求...
Servlet接口定义了多个生命周期方法,如init(), service(), destroy()等。Servlet容器调用这些方法来处理请求。开发者可以通过重写这些方法来实现自定义的请求处理逻辑。 6. 请求处理方法与实例数量 文件提到...
### Servlet Specification 2.5 知识点解析 #### 一、Servlet 规范概述 - **版本信息**:此文档为 Java™ Servlet 规范的第 2.5 版本(Maintenance Release 6),发布日期为 2007 年 8 月 8 日。 - **版权信息**:...
`servlet函数介绍.doc`可能包含了一些关键Servlet方法的详细解释和示例,例如`init()`, `service()`, `doGet()`, `doPost()`等。 总的来说,Servlet API是构建动态Web应用的基础,掌握了Servlet的原理和API,就能...
- **初始化**:当Servlet容器首次加载Servlet时,会调用`init()`方法进行初始化,该方法只被调用一次。 - **执行**:每次客户端发送请求到Servlet时,Servlet容器会调用`service()`方法处理请求,此方法内部根据请求...
1. **Servlet接口**:这是所有Servlet的基础,它定义了Servlet的基本行为,如`init()`用于初始化Servlet,`service()`用于处理请求,以及`destroy()`用于清理资源。 2. **GenericServlet**:这是一个抽象类,实现了...
初始化时,Servlet容器(如Tomcat)会调用Servlet的`init()`方法;服务期间,Servlet容器会根据请求调用`service()`方法;当Servlet不再需要时,会调用`destroy()`方法。 7. **多线程模型**:Servlet容器通常会创建...
3. **生命周期回调方法**:Servlet 3.0提供了新的生命周期回调方法,如`init(ServletConfig config)`被`@PostConstruct`注解的方法取代,`destroy()`方法被`@PreDestroy`注解的方法替代,简化了代码并增强了可维护性...
- 初始化:调用`init()`方法进行初始化,只在Servlet实例创建时执行一次。 - 服务:对于每个请求,Web容器创建一个线程,调用`service()`方法,该方法会根据请求方法(GET、POST等)转发到相应的`doGet()`或`...
2. **GenericServlet**: 这是一个抽象类,实现了Servlet接口,提供了通用的生命周期方法,如`init()`和`destroy()`。它还包含了一个`service()`方法,可以根据请求类型分派到特定的`doGet()`或`doPost()`方法。 3. ...
2. **初始化**:加载后,容器会调用`init()`方法进行初始化,通常用于配置和准备Servlet。 3. **服务**:对于每个客户端请求,容器都会创建一个`ServletRequest`和`ServletResponse`对象,然后调用Servlet的`service...
Servlet生命周期包括初始化、服务、销毁三个阶段,开发者可以通过重写`init()`, `service()`, 和`destroy()`方法来控制各个阶段的行为。Servlet的工作模式通常涉及客户端向服务器发送请求,服务器创建或获取Servlet...
- **Servlet接口:** 定义了Servlet必须实现的方法,如`init()`、`service()`和`destroy()`等。 - **配置参数:** Servlet可以通过部署描述符中的配置参数进行自定义设置。 - **过滤器:** 允许开发者创建过滤器来...
当服务器启动或用户首次请求时,Servlet会被加载并初始化,这通常调用`init()`方法。接着,每次用户请求时,`service()`方法会被调用来处理请求。当服务器关闭或需要释放资源时,`destroy()`方法执行,用于清理资源...
JSR168(Java Specification Request 168)是 Sun Microsystems 在 2003 年发布的标准,定义了 Portlet 的接口和行为,确保不同厂商的 Portal 产品之间可以互操作。这一规范定义了 Portlet 与 Portlet 容器之间的...
Portlet生命周期中的每个阶段都有不同的方法对应:init()方法在Portlet实例化时被调用,destroy()方法在Portlet被销毁时被调用。Portlet服务的开发需要遵循GridSphere提供的PortletService接口。Portlet可以拥有多个...
- **解析**:在Servlet的生命周期中,当Servlet首次被加载时,服务器会调用`init`方法对其进行初始化。因此,正确答案是D。 #### 10. 浏览器选择 - **题目描述**:目前我国使用较广泛的浏览器是? - **解析**:在...