Servlet life cycle

init()

    init方法是初始化参数服务的。
只要servlet在web.xml文件中配置了,
那么一定会执行init方法。
servlet实例只创建一次,所以init初始化函数只在第一次请求时调用一次。
    有时候希望在servlet首次载入时,执行复杂的初始化任务,但并不想每个请求都重复这些任务的时候,用init()方法他在servlet初次创建时被调用,之后处理每个用户的请求时,则不在调用这个方法。因此,他主要用于一次性的初始化,和applet的init方法相同。

由于servlet初始化参数的使用非常依赖于部署描述文件(web.xml),该文件可存放servlet所需要的起始参数以及web应用程序的结构数据。容器启动的时候会根据web.xml中的配置去调用Servlet中的init方法。在用户请求的时候去执行doPost or doGet方法。当servlet容器读取web.xml文件内容后。可以将这些起始参数封装成一个对象并在调用init方法时传递个servlet,这个对象就是ServletConfig对象所以我们可以在Servlet内覆写init方法,并通过ServletConfig对象来取得某些初始参数。

以init参数的名称为参数,调用ServletConfig的getInitParameter方法。返回值就是init参数的值。


config.getInitParameter() vs req.getParameter()

ServletRequest中的public String getParameter( String name )


          它用来获取客户端(.html)通过get或post方法等传递过来的值,是从客户端传递过来的,一般指的是客户端提


          交的表单组件的值(eg:  <form action="servlet/AddServlet" method=GET )


ServletConfig中的public void String getInitParameter( String name )


          它用来获取Servlet的配置文件(web.xml)的初始化参数的信息,也就是我们自己的web应用程序根目录下的WEB-


          INF目录下的web.xml文件中的初始化参数信息。

         init() 源码

 

 

原文地址:https://www.cnblogs.com/yunxiblog/p/5199707.html