`
yznxing
  • 浏览: 369988 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

servlet specification,init方法~~~

    博客分类:
  • java
阅读更多

在前面一篇文章 “【新手记录】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查东西靠谱。

 

 

 

1
2
分享到:
评论
3 楼 sidneyHere 2012-05-09  
非常好
不过,load-on-startup不设置或者为负数,应该是表示容器自行决定初始化时机。
2 楼 yznxing 2010-12-23  
iq527 写道

那看源码会不会更靠谱些 



呵呵,应该是的。 不够习惯先看specification。

从那之后就没去看这个源码了。。。
你看过了吗?正好可以分享下~~~

呵呵~~~
1 楼 iq527 2010-12-23  

那看源码会不会更靠谱些 

相关推荐

    Java Servlet Specification2.4

    - **初始化**:容器调用 init() 方法对 Servlet 进行初始化。 - **服务**:当客户端发送请求时,容器调用 service() 方法处理请求。 - **销毁**:容器调用 destroy() 方法释放 Servlet 占用的资源。 ##### 4.2 请求...

    servlet-3-1-specification.pdf

    Servlet接口定义了多个生命周期方法,如init(), service(), destroy()等。Servlet容器调用这些方法来处理请求。开发者可以通过重写这些方法来实现自定义的请求处理逻辑。 6. 请求处理方法与实例数量 文件提到...

    Servlet Specification-2_5

    ### Servlet Specification 2.5 知识点解析 #### 一、Servlet 规范概述 - **版本信息**:此文档为 Java™ Servlet 规范的第 2.5 版本(Maintenance Release 6),发布日期为 2007 年 8 月 8 日。 - **版权信息**:...

    servlet 资料,servlet 中文版api

    `servlet函数介绍.doc`可能包含了一些关键Servlet方法的详细解释和示例,例如`init()`, `service()`, `doGet()`, `doPost()`等。 总的来说,Servlet API是构建动态Web应用的基础,掌握了Servlet的原理和API,就能...

    Servlet规范

    - **初始化**:当Servlet容器首次加载Servlet时,会调用`init()`方法进行初始化,该方法只被调用一次。 - **执行**:每次客户端发送请求到Servlet时,Servlet容器会调用`service()`方法处理请求,此方法内部根据请求...

    servlet api jar

    1. **Servlet接口**:这是所有Servlet的基础,它定义了Servlet的基本行为,如`init()`用于初始化Servlet,`service()`用于处理请求,以及`destroy()`用于清理资源。 2. **GenericServlet**:这是一个抽象类,实现了...

    servlet源码包

    初始化时,Servlet容器(如Tomcat)会调用Servlet的`init()`方法;服务期间,Servlet容器会根据请求调用`service()`方法;当Servlet不再需要时,会调用`destroy()`方法。 7. **多线程模型**:Servlet容器通常会创建...

    servlet3.0 规范pdf 包含javadoc

    3. **生命周期回调方法**:Servlet 3.0提供了新的生命周期回调方法,如`init(ServletConfig config)`被`@PostConstruct`注解的方法取代,`destroy()`方法被`@PreDestroy`注解的方法替代,简化了代码并增强了可维护性...

    servlet总复习

    - 初始化:调用`init()`方法进行初始化,只在Servlet实例创建时执行一次。 - 服务:对于每个请求,Web容器创建一个线程,调用`service()`方法,该方法会根据请求方法(GET、POST等)转发到相应的`doGet()`或`...

    javax.servlet jar

    2. **GenericServlet**: 这是一个抽象类,实现了Servlet接口,提供了通用的生命周期方法,如`init()`和`destroy()`。它还包含了一个`service()`方法,可以根据请求类型分派到特定的`doGet()`或`doPost()`方法。 3. ...

    servletapi

    2. **初始化**:加载后,容器会调用`init()`方法进行初始化,通常用于配置和准备Servlet。 3. **服务**:对于每个客户端请求,容器都会创建一个`ServletRequest`和`ServletResponse`对象,然后调用Servlet的`service...

    mvc框架开发租房网站

    Servlet生命周期包括初始化、服务、销毁三个阶段,开发者可以通过重写`init()`, `service()`, 和`destroy()`方法来控制各个阶段的行为。Servlet的工作模式通常涉及客户端向服务器发送请求,服务器创建或获取Servlet...

    英文版JAVA学习教程

    - **Servlet接口:** 定义了Servlet必须实现的方法,如`init()`、`service()`和`destroy()`等。 - **配置参数:** Servlet可以通过部署描述符中的配置参数进行自定义设置。 - **过滤器:** 允许开发者创建过滤器来...

    百度2014校园招聘笔试试题-技术类软件研发.doc

    当服务器启动或用户首次请求时,Servlet会被加载并初始化,这通常调用`init()`方法。接着,每次用户请求时,`service()`方法会被调用来处理请求。当服务器关闭或需要释放资源时,`destroy()`方法执行,用于清理资源...

    什么是portal.pdf

    JSR168(Java Specification Request 168)是 Sun Microsystems 在 2003 年发布的标准,定义了 Portlet 的接口和行为,确保不同厂商的 Portal 产品之间可以互操作。这一规范定义了 Portlet 与 Portlet 容器之间的...

    论文研究-基于GridSphere的网格门户设计与实现.pdf

    Portlet生命周期中的每个阶段都有不同的方法对应:init()方法在Portlet实例化时被调用,destroy()方法在Portlet被销毁时被调用。Portlet服务的开发需要遵循GridSphere提供的PortletService接口。Portlet可以拥有多个...

    2021-2022计算机二级等级考试试题及答案No.18339.docx

    - **解析**:在Servlet的生命周期中,当Servlet首次被加载时,服务器会调用`init`方法对其进行初始化。因此,正确答案是D。 #### 10. 浏览器选择 - **题目描述**:目前我国使用较广泛的浏览器是? - **解析**:在...

Global site tag (gtag.js) - Google Analytics