在Servlet中javax.servlet.GenericServlet类
继承自java.lang.Object
实现了Serializable,,servlet ,ServletConfig 三个接口
被继承对象javax.servlet.http.HttpServlet
(这是我们常用的一个类)
但仔细看GenericServlet的API,会发现有两个init方法
void init()
void init(ServletConfig config)
而在Servlet接口中只有一个void init(ServletConfig config)方法
在此做一下解释:
先看一下官方说明:
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.
看一下这两个函数的源码:GenericServlet.class
可以看到有参的init方法又调用了无参的init方法,这是什么原因呢。
补充一句,Tomcat默认调用的是有参的。
如果你曾复写过init()方法,你应该能看出些端详
如果我们在想调用init方法时执行一些操作,那怎么办呢,只要我们复写无参的init方法,tomcat在调用完有参的init方法时调用无参的init方法,这样两个操作都执行了。而且我们也不用写super.init();试想一下,如果没有无参的init方法,那我们复写有参的init方法时忘记了些super.init(config)方法,那么config就不能初始化了,而这样设计即使我们不调用super的方法,也不会出问题。何乐而不为呢!
个人见解,欢迎批评指正!
分享到:
相关推荐
Servlet详解 Servlet详解 Servlet详解
JSP开发Servlet重写init()方法实例详解 写一个Servlet时,有时需要我们重写该Servlet的初始化方法,然后,究竟是重写init(ServletConfig config),还是重写init(),这是个问题。要明了这一点,首先要知道Servlet的...
Servlet详解.pdf f
Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类。Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.http.HttpServlet,并实现 Servlet 接口的抽象类专门用来处理 HTTP 请求。
HttpServlet 的Servlet的详解
里面有关于jsp/servlet的所有内置方法,有方法名,方法注释,讲解得非常详细
servlet生命周期详解
servlet过滤器详解
java web 之servlet详细介绍 servlet的原理、接口
servlet/jsp深入详解源代码
这是Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用这个方法。在这个方法中可以读取web.xml文件中Servlet过滤器的初始化参数。 b、doFilter(ServletRequest,ServletResponse,FilterChain)...
Servlet Session机制详解,如题,详细描述Session的原理,及使用方法,附部分代码
Servlet JSP深入详解 基于Tomcat的Web开发
servlet/jsp深入详解 基于tomcat的web开发
JavaBean与servlet的关系详解
Servlet JSP深入详解 基于Tomcat的Web开发4
Servlet JSP深入详解 基于Tomcat的Web开发3
其中包括两个用于所有 Servlet 的基本软件包:javax.servlet 和 javax.servlet.http。可从sun公司的Web站点下载 Java Servlet 开发工具。 下面主要介绍javax.servlet.http提供的HTTP Servlet应用编程接口。 ...