`

Servlet为什么有两个init方法

阅读更多

package com.bjsxt;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestInitServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		resp.setContentType("text/html;charset=GBK");     
		PrintWriter out = resp.getWriter();
		
		out.println(this.getServletConfig().getServletName());

		java.util.Enumeration params = this.getServletConfig()
				.getInitParameterNames();   
		for (; params.hasMoreElements();) {
			String name = params.nextElement().toString();
			String value = this.getServletConfig().getInitParameter(name);
			out.println(value);
		}
		out.close();  
	}

}



  <servlet>
    <servlet-name>TestInitServlet</servlet-name>
    <servlet-class>com.bjsxt.TestInitServlet</servlet-class>
	    <init-param>
			<param-name>name</param-name>
			<param-value>小王</param-value>
	    </init-param>
		<init-param>
			<param-name>gender</param-name>
			<param-value>男</param-value>
		</init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>TestInitServlet</servlet-name>
    <url-pattern>/servlet/TestInitServlet</url-pattern>
  </servlet-mapping>
  输出:TestInitServlet 小王 男

有些朋友会发现在GenericServlet为什么要有两个init方法呢?
public void init()
  A convenience method which can be overridden so that there's no need to call super.init(config).

void init(ServletConfig config)
  Called by the servlet container to indicate to a servlet that the servlet is being placed into service.
如果不提供init()方法的话,我们如果重写init(config)又忘记写super.init(config)了的话,就会出错
实际上就是怕程序员忘记写super.init(config)
现在提供了init()方法了它说so that there's no need to call super.init(config).
分享到:
评论

相关推荐

    java servlet 两个小例子

    这个"java servlet 两个小例子"的压缩包显然包含了两个基础的Servlet应用实例,适合初学者用来学习和理解Servlet的工作原理。让我们深入探讨一下Servlet的基本概念以及如何通过这两个例子进行学习。 Servlet是一个...

    Servlet过滤器使用

    这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。 b、doFilter(ServletRequest,ServletResponse,FilterChain)...

    Servlet接口及方法

    该接口提供了两个主要方法:`forward`和`include`。 ##### 1. forward方法 ```java public void forward(ServletRequest request, ServletResponse response) throws ServletException, IOException; ``` **作用...

    servlet temple

    其中包括两个用于所有 Servlet 的基本软件包:javax.servlet 和 javax.servlet.http。可从sun公司的Web站点下载 Java Servlet 开发工具。 下面主要介绍javax.servlet.http提供的HTTP Servlet应用编程接口。  ...

    JSP开发Servlet重写init()方法实例详解

    然而,在`GenericServlet`抽象类中,我们看到了两个`init()`方法:一个带参数,一个不带参数。`HttpServlet`继承自`GenericServlet`,但并没有提供自己的`init()`实现。在`GenericServlet`中,`init(ServletConfig ...

    servlet-api.jar

    `GenericServlet`和`HttpServlet`是Servlet接口的两个常见实现。`GenericServlet`是一个抽象类,提供了通用的Servlet功能,而`HttpServlet`则进一步专门化,专为处理HTTP协议的请求。 2. **Servlet生命周期**:...

    com.oreilly.servlet

    3. **HttpServletRequest和HttpServletResponse接口**:这两个接口是Servlet API中的核心部分,分别代表了HTTP请求和响应。它们提供了访问请求头、参数、属性以及设置响应状态码、内容类型和数据的方法。 4. **...

    servlet源码 servlet-api-src javax.servlet.Servlet源码

    这个接口定义了两个主要方法:`init()`和`service()`。`init()`方法在Servlet实例被创建并准备处理请求之前调用,用于初始化Servlet。在这里,开发者可以进行一些一次性设置,如加载配置信息或建立数据库连接。`...

    用于servlet程序的开发的servlet-jar包

    4. **HttpServletRequest** 和 **HttpServletResponse**:这两个接口分别代表了HTTP请求和响应对象,它们提供了处理HTTP请求头、获取请求参数、设置响应状态码和输出数据的方法。 5. **Servlet生命周期**:包括加载...

    servlet教程ppt讲解

    当服务器启动或第一次接收到Servlet请求时,会调用Servlet的`init()`方法进行初始化,这个方法接收一个`ServletConfig`对象,其中包含了Servlet的配置信息。然后,每当有请求到达,Servlet容器会调用`service()`方法...

    servlet中方法执行次序及API简介(init,service,doservice,doget等)

    - **javax.servlet.RequestDispatcher**:负责请求转发和重定向,常用的方法有forward()和include()。 - **javax.servlet.ServletConfig**:在Servlet初始化时,由容器传递给Servlet,包含了Servlet的配置信息。 - *...

    Servlet基础知识总结

    6. **处理请求**:Web容器创建一个`HttpServletRequest`对象和一个`HttpServletResponse`对象,并调用Servlet的`service()`方法,将这两个对象作为参数传递进去。 7. **执行业务逻辑**:在`service()`方法内部,根据...

    Servlet API(html版与chm中文版两个)

    总之,Servlet API是Java Web开发的重要基石,无论你是初学者还是经验丰富的开发者,这两个版本的文档都能为你提供宝贵的参考资料,帮助你在实际项目中高效地使用Servlet技术。记得时常查阅和实践,提升你的Web开发...

    servlet线程安全问题

    这样,当两个或多个线程同时访问同一个 Servlet 时,可能会发生多个线程同时访问同一资源的情况,数据可能会变得不一致。 Servlet 的线程安全问题主要是由于实例变量使用不当而引起的。例如,在一个 Servlet 中定义...

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    - 在传统的Java Web项目中,通常将`javax.servlet.jar`和`javax.servlet.jsp.jar`添加到项目的类路径中,这可以通过在`WEB-INF/lib`目录下放置这两个jar包实现。 - 使用Maven或Gradle等构建工具时,可以在pom.xml...

    Servlet-Servlet生命周期

    - **doGet() / doPost()**:这两个方法分别用来处理HTTP GET和POST请求。开发者需要在其中编写具体的业务逻辑代码。 - **destroy()**:当Servlet被卸载或服务器停止时,此方法将被调用。用于清理资源,如关闭数据库...

    servlet生命周期详解

    然后,容器调用Servlet的`service()`方法,将这两个对象作为参数传递。 `service()`方法是Servlet处理请求的核心,它根据请求类型(如GET、POST等)调用对应的`doGet()`或`doPost()`方法。如果自定义了`service()`...

    servlet 源码

    这两个接口,`javax.servlet.http.HttpServletRequest`和`javax.servlet.http.HttpServletResponse`,分别代表了HTTP请求和响应。它们提供了处理HTTP特定属性的方法,如获取请求参数、设置响应头、写入响应体等。 ...

    Servlet技术入门 Servlet技术入门Servlet技术入门

    Servlet的实现通常基于两个基础类:GenericServlet和HttpServlet。GenericServlet实现了Servlet接口,但更适合非HTTP协议的请求。HttpServlet是GenericServlet的子类,专门处理HTTP请求,提供了更具体的方法,如...

Global site tag (gtag.js) - Google Analytics