zoukankan      html  css  js  c++  java
  • 两个init方法的区别

    容器创建了Servlet实例后,它将调用实例的init(ServletConfig)方法初始化Servlet.该方法的参数ServletConfig对象包含了在WEB应用程序的部署描述文件中指定的初始化参数。在init(ServletConfig)调用完后,容器将调用init() 方法,之后Servlet就被初始化了。
     
    两者不同定义:
    void init(ServletConfig config)  throws ServletException 
    public void init() throws ServletException
     
    原理如下:
      1、如果用户不需要设置一些初始化操作,那么init()方法的实现可有可无,因为可以从父类GenericServlet中继承得到。
      2、如果用户需要servlet通过从web.xml中读取initialization parameters或者configuration data,那么就需要显式实现init()方法。
      3、GenericServlet 提供两个overloaded形式的方法如下:
        public void init() throws ServletException
        public void init(ServletConfig) throws ServletException
      4、Servlet interface只定义一个init(ServletConfig)方法,而且servlet加载时必须被调用,但只在第一次加载被调用一次。
      5、GenericServlet实现了这个init(ServletConfig)方法,这个方法先保存ServletConfig reference,然后调用init()方法。
      6、如果用户servlet实现init()方法并在其中填充自己需要初始化的信息,这个init()会被GenericServlet中的init(ServletConfig)方法调用,因为ServletConfig                 reference已经被保存,所以你可以访问web.xml中的。
      7、如果用户servlet实现init(ServletConfig),那么就覆盖了GenericServlet(父类)init(ServletConfig)方法,因此,GenericServlet会调用子类的方法,而不会保               存ServletConfig reference,必须执行super.init(config)才能保存ServletConfig reference访问web.xml中的。
      8、所以有两种方法初始化:
      第一种
      public class LoginServlet extends HttpServlet 
      {
          public void init() throws ServletException 
          {
        }
      }
      第二中
      public class LoginServlet extends HttpServlet 
      {
          public void init(ServletConfig config) throws ServletException 
          {
              super.init(config)
          }
      }
      9、servlet初始化正常结束,才能处理处理用户的请求,如果在初始化方法init()中出现错误,那么需要throw a ServletException或者父类的UnavailableException,               这会告诉servlet容器初始化失败,不能处理任何请求。
  • 相关阅读:
    Leetcode Binary Tree Level Order Traversal
    Leetcode Symmetric Tree
    Leetcode Same Tree
    Leetcode Unique Paths
    Leetcode Populating Next Right Pointers in Each Node
    Leetcode Maximum Depth of Binary Tree
    Leetcode Minimum Path Sum
    Leetcode Merge Two Sorted Lists
    Leetcode Climbing Stairs
    Leetcode Triangle
  • 原文地址:https://www.cnblogs.com/yang82/p/6738922.html
Copyright © 2011-2022 走看看