init方法是在Servlet实例化之后执行的,并且只执行一次。
一.先说init(ServletConfig)中参数ServletConfig,代表的是配置信息。即在web.xml中配置的信息,比如:
<servlet>
<servlet-name>RDSDispatchServlet</servlet-name>
<display-name>RDSDispatchServlet</display-name>
<servlet-class>flex.rds.server.servlet.FrontEndServlet</servlet-class>
<init-param>
<param-name>useAppserverSecurity</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>
在程序中可以用this.getServletConfig()方法得到ServletConfig的实例,然后用ServletConfig的相应方法 可以得到ServletConfig的名字(getServletName)和配置参数的名字(getInitParameter("name"))或者 名字枚举(getInitParameterNames()),并且通过参数名字得到相应的参数值。具体方法参见API。
二.再说说init方法,从源码中我们不难发现:Servlet接口里面只有init(ServletConfig),这是供tomcat调用的。GenericServlet类里面有成员变量ServletConfig,init(ServletConfig)方法和init()方法:
private transient ServletConfig config;
public void init(ServletConfig config) throws ServletException{
this.config=config;
this.init();
}
public void init() throws ServletException{
}
现在一切都很明了了,当容器(tomcat)帮忙调用init(ServletConfig config)并且给传过来一个参数config,这个方法把参数对象的引用指向类的成员变量this.config,并且调用类的 this.init()方法。如果我们在写Servlet类时只要重写init(ServletConfig config)就可以了,但是init()不就成了多余的了吗?实际上init()方法是为了防止程序员在写Servlet类重写 init(ServletConfig config)时忘记写super.init(ServletConfig config),这样就容易造成出现空指针异常。而这就要求我们最好不要重写init(ServletConfig config)。Servlet的init方法
相关推荐
JSP开发Servlet重写init()方法实例详解 写一个Servlet时,有时需要我们重写该Servlet的初始化方法,然后,究竟是重写init(ServletConfig config),还是重写init(),这是个问题。要明了这一点,首先要知道Servlet的...
服務器就會分配一個線程來服務這個http請求,web容器會檢查是否有與此http url映射對應的servlet,如果沒有servlet容器會根據web.xml配置文件加載對應的servlet,并創建此servlet的實例,調用servlet init方法進行...
本实验报告的主要目的是掌握 Servlet 应用,熟悉 web 开发的 MVC 模式,了解 servlet 的工作流程和作用,并掌握 servlet 的方法 init()、destory()、doGet()、doPost()。 一、实验目的 1. 掌握 Servlet 应用,熟悉...
- **javax.servlet.Servlet**:Servlet的基接口,定义了init(), service(), destroy()等生命周期方法。 - **javax.servlet.GenericServlet**:实现了Servlet接口的抽象类,提供了空的生命周期方法实现,方便自定义...
init方法 ```java public void init(ServletConfig config) throws ServletException; ``` **作用:** 初始化Servlet实例,通常用于配置环境变量、加载资源文件等工作。该方法在Servlet实例化之后、首次调用`...
在这个特定的场景中,我们关注的是如何在Servlet的`doGet`方法中进行字符编码的转换,特别是将数据从一种编码格式转换为UTF-8。 首先,让我们了解字符编码的基本概念。字符编码是将字符(如字母、数字和符号)转换...
`init()`方法在Servlet实例化后首次调用,用于初始化Servlet;`service()`方法处理每个到来的请求;而`destroy()`方法在Servlet不再使用时调用,用于释放资源。 接下来,我们探讨Servlet容器模型。Servlet容器,如...
`init()`方法只会在Servlet的生命周期中被调用一次,主要用于加载资源、创建数据库连接等初始化操作。完成初始化后,Servlet便处于待命状态,准备接收客户端的请求。 #### 二、Servlet的请求处理 当客户端发送请求...
- `init(ServletConfig config)`: 这是在Servlet被加载后,由Servlet容器(如Tomcat)调用的一次性初始化方法。在这里,开发者可以进行配置读取、资源加载等初始化工作。如果在`init()`方法中抛出`...
然后调用`init()`方法进行初始化,`service()`方法处理每个请求,最后在不再需要Servlet时调用`destroy()`方法。 2. **Servlet配置**:在Web应用的`web.xml`部署描述符中,我们可以配置Servlet,包括映射URL模式、...
init 方法用于初始化 Servlet,doGet 和 doPost 方法用于处理 GET 和 POST 请求,destroy 方法用于释放资源。在我们的示例中,我们将编写一个简单的 HelloWorldServlet,它将在浏览器中打印出 "hello world!"。 在...
`init()`方法在Servlet实例被创建并准备处理请求之前调用,用于初始化Servlet。在这里,开发者可以进行一些一次性设置,如加载配置信息或建立数据库连接。`service()`方法是Servlet处理请求的核心,它根据请求类型...
- 初始化:当Servlet首次被请求或者在web.xml中配置了`load-on-startup`时,Servlet容器会调用Servlet的`init()`方法进行初始化。 - 服务:每当有新的请求到来,Servlet容器创建一个Servlet实例,然后调用`service...
5. **调用init()方法**:如果这是Servlet实例首次被创建,Web容器会调用其`init()`方法来初始化该实例。 6. **处理请求**:Web容器创建一个`HttpServletRequest`对象和一个`HttpServletResponse`对象,并调用Servlet...
Servlet容器(如Tomcat)会在第一次请求时加载Servlet并调用init()方法,之后每次请求都会调用service()方法,最后在容器关闭或Servlet不再需要时调用destroy()方法。 5. **Servlet配置**:Servlet的配置通常在web....
2. 服务阶段:在 init 方法调用后,Servlet 将调用 service 方法,该方法用于处理请求和响应。 3. 销毁阶段:在服务阶段结束后,Servlet 将调用 destroy 方法,该方法用于释放资源和销毁 Servlet 实例。 三、...
缺省的 init() 方法设置了 Servlet 的初始化参数,并用它的 ServletConfig 对象参数来启动配置, 因此所有覆盖 init() 方法的 Servlet 应调用 super.init() 以确保仍然执行这些任务。在调用 service() 方法之前,应...